разработчики могут самостоятельно разобраться, как использовать средство, без какого-либо формального обучения; в такую возможность ужасно хочется верить менеджеру проекта и разным другим руководителям, поскольку они считают
Тем не менее, в результате обучения мы
В замечательной статье [1] мой коллега Mellir Page-Jones утверждает, что в разработке ПО существует семь ступеней мастерства; его статья сосредоточена в основном на
Таблица 6.1 Семь ступеней мастерства в разработке ПО
Означает ли весь пессимизм данной главы, что вообще не следует использовать никакие средства? Может быть, просто выбросить всю эту технологию и вернуться к добрым старым клавишным перфораторам? Значит ли это, что технология
Риторический характер этих вопросов преследует цель напомнить, что во всех подобных дискуссиях на первом месте должен стоять здравый смысл. Когда звезды и планеты выстроятся в одну линию, может быть, технология действительно станет палочкой-выручалочкой по крайней мере для одного или двух безнадёжных проектов. Определённо, следует использовать преимущества самых передовых технологий, поскольку они способны усилить наш интеллект и освободить от решения рутинных задач, связанных с разработкой ПО.
В лучшем из всех миров разработчики ПО будут иметь возможность изучать, экспериментировать и практиковаться в работе с мощными средствами без какого-либо риска; естественно, в лучшем случае эти средства уже развёрнуты во всей организации и являются частью её культуры и инфраструктуры. В этом случае нет необходимости затевать какие-либо дискуссии по поводу средств и технологий вообще; остаётся только взять средства – и вперёд в безнадёжный проект.
Причина обсуждения в данной главе – и причина того, что все это имеет самое непосредственное отношение к большинству безнадёжных проектов – заключается в том, что организация использует заурядные средства, или кто-либо верит, что совершенно новая с виду технология, с восторгом объявленная только на прошлой неделе начинающим поставщиком, может каким-то образом спасти дело. Первый сценарий приводит в уныние, однако он достаточно распространён; второй сценарий тоже достаточно распространён по той простой причине, что технологии в нашей области распространяются быстро и неумолимо.
Если бы внедрение новой технологии не оказывало никакого влияния на наши процессы, и не требовало специального обучения и практики, то мы могли бы принять решение, основываясь всего лишь на сопоставлении затрат и выгод. Поскольку природный инстинкт многих руководителей высокого уровня подсказывает им, что любую проблему можно решить с помощью простого финансового вливания, я заметил, что существует тенденция к гораздо большему использованию совершенно новых технологий в безнадёжных проектах, чем в «нормальных». Как я пытался объяснить в данной главе, ирония заключается в том, что новое средство может оказаться последней каплей, переполнившей чашу терпения; таким образом, именно на средство будет возложена ответственность за неудачу проекта.
Итак, используйте любые средства, которые вы сочтёте подходящими для вашего безнадёжного проекта, не обращая внимания на то, какими их считает весь остальной мир: современными или устаревшими. Но не забывайте, что
Литература к главе:
1) Mellir Page-Jones.The Seven Stages in Software Engineering. American Programmer, July-August 1990.
2) Paul G. Basset. Framing Software Reuse: Lessons from the Real World. Upper Saddle River, NJ: Prentice Hall, 1996.
Дополнительная литература:
1) Michael Schrage. No More Teams! Mastering the Dynamics of Creative Collaboration. New York: Doubleday-Dell Publishing Company, 1995.
ГЛАВА 7.
БЕЗНАДЁЖНЫЕ ПРОЕКТЫ КАК ОБРАЗ ЖИЗНИ
На протяжении всей книги я утверждал противоречие, которое нам сейчас необходимо разрешить. С одной стороны, я утверждал, что безнадёжные проекты качественно отличаются от всех остальных «нормальных» проектов, выполняемых организациями-разработчиками. С другой стороны, в главе 1 я отметил, что условия, порождающие безнадёжные проекты – сжатые сроки и бюджет, чрезмерные требования к функциональности – встречаются в сегодняшних организациях все чаще и чаще.
Многие разработчики и менеджеры могут задать вопрос: разумно ли вообще
Я провёл годы в лотерейном бизнесе, где все делается в экстремальных условиях, поскольку это единственный способ существования и развития отрасли. Если вы не желаете работать в таком режиме, то не сможете играть в этой песочнице. Разработчики в данной отрасли мирятся с таким положением, поскольку им доставляет удовольствие добиваться успеха в краткосрочных и в высшей степени интенсивных проектах и получать взамен значительную свободу действий, включая, в частности, двухмесячные отпуска между проектами. Эти команды считают себя элитой, и компании всячески поддерживают такие убеждения.
И, как отмечает Doug Scott:
Руководством движут различные мотивы. Они знают, что риск лишиться своей власти в наши дни особенно велик, и стремятся этого избежать, затевая различные проекты. Они также понимают, что на их выполнение нам потребуется не так уж мало времени из-за различных бюрократические процедур. Они полагают, что если особо обозначить важность конкретного проекта по сравнению с остальными, то эти процедуры можно будет обойти, не предпринимая для этого никаких специальных действий. Они понимают, что не могут привлечь к этой работе самых лучших специалистов; они также понимают, что самые лучшие технологии могут помочь в том случае, если они не потребуют длительного цикла обучения, что, в свою очередь, лишает возможности использовать такие технологии в данном проекте. Или наоборот, они верят шумной рекламе и считают, что новые технологии чудесным образом окажутся вполне зрелыми, свободными от ошибок, и их тотчас же сможет понять каждый.
Однако, если безнадёжные проекты являются нормой, следует ли тогда называть их