Книга Эдварда Йордона «Путь камикадзе» представляет собой полное руководство по выживанию в безнадёжных проектах, предназначенное для разработчиков программного обеспечения. Практически каждому разработчику ПО и менеджеру приходится сталкиваться с проектами, характеризующимися никуда не годными персоналом, планом и бюджетом, т.е. проектами, обречёнными на неудачу. В условиях реинжиниринга корпораций безнадёжные проекты становятся «стилем жизни» многих организаций. Книга Эдварда Йордона является руководством по решению следующих проблем: выживание в проектах, обречённых на неудачу; достижение оптимальных соглашений во время переговоров; управление персоналом и расстановка приоритетов; выбор средств и технологий; определение момента, когда уже пора выйти изпроекта. Эдвард Йордон применяет свою уникальную технологию и интуицию менеджера к наихудшим вариантам софтверных проектов, показывая, как максимально повысить шансы на успех, или, по крайней мере, вывести вашу карьеру из-под удара. Шаг за шагом Йордон проходит все стадии жизненного цикла проекта, учит менеджеров и разработчиков правильно вести себя с заказчиками и оптимально использовать доступные ресурсы, включая людей, средства, процессы и технологию. Учитесь проявлять необходимую гибкость при проведении переговоров, расставлять осмысленные приоритеты и… вовремя выходить из проекта. Если вам когда-либо требовалось совершить невозможное, «Путь камикадзе» – ваша книга.
ПРЕДИСЛОВИЕ
Думаю, что вас заинтриговало название этой книги, и вы решили заглянуть в неё, чтобы посмотреть, о чем там написано. Но, к сожалению, вы, как обычно, ужасно заняты и не уверены, найдётся ли у вас время на чтение ещё одной книги об управлении софтверными проектами.
Особенно
, если в ней идёт речь о некоем идеальном мире, в котором здравомыслящие мужчины и женщины хладнокровно принимают благоразумные решения относительно бюджета, графика и ресурсов вашего проекта.
Тем не менее, можно заметить, что мы живём в отнюдь не идеальном мире, и существует вероятность того, что в вашем проекте вам придётся взаимодействовать с людьми не слишком рационального склада мышления, решения которых трудно назвать хладнокровными или благоразумными. Другими словами, вы участвуете в
безнадёжном
проекте. Самое замечательное, что можно сказать о названии этой книги, заключается в отсутствии какой-либо необходимости объяснять его. Каждый раз, когда я упоминаю его в присутствии моих друзей и коллег, они отвечают мне со смехом: «Послушай, ты ведь говоришь именно о
моем
проекте!»
Такой проект может быть моим проектом, вашим проектом, чьим-либо ещё проектом – мы
все
так или иначе участвуем в безнадёжных проектах. Мне думается, первый вопрос, который вы должны задать самому себе (хотя он может и не возникнуть у вас до самого конца проекта): «Как я позволил вовлечь себя в такой проект?» Я буду обсуждать его в первой главе, поскольку мой опыт в качестве консультанта, наблюдающего множество таких проектов со стороны, говорит о том, что наш мир мог быть гораздо более разумным, если бы большинство из нас имело смелость остановиться и сказать: «Дудки! Я не желаю участвовать в этом безнадёжном проекте!»
Допустим, однако, что возможности хлопнуть дверью не существует – например, очень трудно найти другую работу, или вас приковывает к вашему работодателю своего рода «золотая цепь», отбивающая охоту выйти из проекта. В этом случае следует спросить себя: «Как я могу выжить в этом проекте без ущерба для моего здоровья, психики и достоинства?» Если вы оптимист, для вас может оказаться даже интересно, как вам удастся преодолеть все препятствия на пути завершения безнадёжного проекта в срок и в рамках бюджета. Но если вы уже успели пройти через ряд таких проектов, вы, скорее всего, знаете, что обстоятельства обычно складываются против вас и выживание – это лучше, на что вы можете надеяться.
Проработав в индустрии ПО более 30 лет, я обнаружил, что наша профессия весьма интересно воспринимает безнадёжные проекты. В некоторых областях индустрии ПО, особенно в Силиконовой Долине, такие проекты окружены ореолом славы, как испытание силы духа и стойкости, нечто наподобие покорения Эвереста босиком. Я сам разделял эти убеждения во время моих первых проектов в середине 60-х годов, и не секрет, что такие же взгляды превалируют у следующего поколения, что наводит меня на мысль о постоянстве этого феномена, поскольку технология продолжает развиваться такими же быстрыми темпами, как это было в моё время. Наша индустрия ещё не достигла зрелости. Каждый год появляется новый Эверест и новая масса отчаянных программистов, которые уверены, что смогут пробежать босиком весь путь до вершины.
ГЛАВА 1.
ВВЕДЕНИЕ
Что такое безнадёжные проекты? Почему они существуют? По какой причине здравомыслящие люди соглашаются участвовать в таких проектах?
Для многих закалённых ветеранов эти вопросы – чистая риторика. С точки зрения их опыта, каждый проект – это безнадёжный проект. Почему так происходит? Поведение больших корпораций зачастую выглядит неразумным. Как отмечает эксперт Richard Sargent, «неразумное поведение корпораций заключается в том, что они делают одно и тоже снова и снова, каждый раз ожидая различных результатов». Почему мы участвуем в таких проектах? Как отмечает эксперт Dave Kleist:
Если ответы на эти вопросы кажутся вам очевидными, можете смело переходить к следующей главе. Я и сам начинаю думать, что они очевидны, поскольку меня редко спрашивают, что же я понимаю под «безнадёжным проектом».
1.1 Определение безнадёжного проекта
Под безнадёжным проектом (death march) я понимаю такой проект, параметры которого отклоняются от нормальных значений по крайней мере на 50%. По отношению к софтверным проектам это обычно означает одно или более из следующих ограничений:
1) План проекта сжат более чем наполовину по сравнению с нормальным расчётным планом; таким образом, проект, требующий в нормальных условиях 12 календарных месяцев, приходится выполнять за 6 или менее месяцев. Жёсткая конкуренция на мировом рынке делает такую ситуацию наиболее распространённой.
2) Количество разработчиков уменьшено более чем наполовину по сравнению с действительно необходимым для проекта данного размера и масштаба; таким образом, вместо формирования проектной команды из десяти человек, менеджера проекта убеждают, что достаточно и пяти. Такое представление может быть результатом наивной веры в магические возможности новых CASE-средств или языков программирования удваивать производительность труда разработчиков – несмотря на то, что разработчики не обучались или не имеют практического опыта работы с новой технологией и, скорее всего, с ними никто не советовался по поводу решения использовать новую технологию. На сегодняшний день более общей причиной уменьшения количества разработчиков является сокращение штатов компании в результате реорганизации, реинжиниринга и т.д.
3) Бюджет и связанные с ним ресурсы урезаны наполовину. Зачастую это результат сокращения компании и других противозатратных мер, хотя это может быть и результатом конкурентной борьбы за выгодный контракт. В этой ситуации менеджер проекта в консалтинговой фирме получает из отдела маркетинга следующую информацию: «У нас хорошая новость – мы выиграли тендер, но есть и плохая новость – мы были вынуждены наполовину урезать бюджет, чтобы победить конкурентов». Такое ограничение часто непосредственно влияет на количество нанимаемых разработчиков, однако последствия могут быть и менее явными – например, может быть принято решение привлечь относительно недорогих и неопытных молодых разработчиков вместо опытных дорогостоящих специалистов. Наконец, это может породить атмосферу мелочной экономии, когда менеджер проекта не в состоянии заказать пиццу для своей команды, проработавшей все выходные в офисе.
4) Требования к функциям, возможностям, производительности и другим техническим характеристикам вдвое превышают значения, которые они могли бы иметь в нормальных условиях. Например, проектной команде могут заявить, что они должны по сравнению с конкурентом выжать в два раза больше возможностей из фиксированного объёма RAM или дискового пространства. Или, например, от них могут потребовать, чтобы система поддерживала вдвое большее количество транзакций по сравнению с любой сопоставимой системой. Требования, связанные с производительностью, могут и не повлечь за собой неудачу проекта; в конце концов, всегда можно использовать преимущества более дешёвого и производительного оборудования, а также разработать более совершённый алгоритм или подход к проектированию, чтобы достичь повышения производительности (хотя, при сжатых сроках, могут не помочь и безграничные возможности человеческого мозга). С другой стороны, удвоение функциональных возможностей обычно означает удвоение необходимого объёма работы, что обязательно приведёт к неудаче проекта.
1.2 Категории безнадёжных проектов
Далеко не все безнадёжные проекты одинаковы; помимо ограничений в планах, штатах, бюджете и функциональности, они могут иметь различные масштабы, формы и другие особенности.
Исходя из моего опыта, наиболее важной отличительной характеристикой безнадёжного проекта является его
масштаб
. В зависимости от масштаба можно выделить четыре категории проектов:
5)
небольшие проекты
– проектная команда включает менее 10 человек, работает в исключительно неблагоприятных условиях и должна завершить проект в срок от 3 до 6 месяцев;
6)
средние проекты
– проектная команда включает от 20 до 30 человек, протяжённость проекта составляет 1-2 года;
7)
крупномасштабные проекты
– проектная команда включает от 100 до 300 человек, протяжённость проекта составляет 3-5 лет;
1.3 Почему существуют безнадёжные проекты?
Если вы задумываетесь о том, что происходит в вашей организации, нетрудно понять, почему существуют безнадёжные проекты. Как отмечает Scott Adams [2]:
Наверно, слишком тягостно представить себе, что вы идиот, окружены идиотами и руководят вами идиоты. Наверно, вы рассматриваете как оскорбление даже саму возможность такого предположения. На этот случай в табл. 1.1 приведён более детальный список причин, порождающих безнадёжные проекты.
Хотя эти причины могут показаться очевидными, они все равно заслуживают обсуждения – поскольку они могут выставить ваш безнадёжный проект таким безумным и иррациональным, что в нем абсолютно нет смысла принимать участие. Действительно, даже не имея явных причин, подобных перечисленным в табл. 1, следует серьёзно подумать, хочется ли вам следующие несколько месяцев (или лет), участвуя в таком проекте (далее в этой главе мы поговорим на эту тему).
1.3.1 Политика, политика, политика
Многие разработчики ПО клянутся, что не дадут втянуть себя в политику, поскольку они сделали вывод, что политические игры – это не их дело, и, кроме того, они считают все связанное с политикой отвратительным. Увы, уйти от политики невозможно; как только в какое-либо совместное предприятие войдут двое или более человек, тут же появится политика.
Однако, когда в большом, сложном проекте политика начинает доминировать, он скорее всего выродится в безнадёжный проект. Вспомните моё определение безнадёжного проекта: сроки, штат, бюджет или ресурсы на 50-100% меньше, чем следует.
Откуда берутся эти ограничения
? Как будет видно из дальнейшего обсуждения, существует много возможных объяснений, тем не менее, в большинстве случаев ответ весьма прост: «Политика». Это может быть война между двумя менеджерами в вашей организации, либо проект может быть намеренно провален в качестве мести менеджеру, который наступил не на тот мозоль, да ещё в неподходящее время. Количество таких ситуаций бесконечно.
Вряд ли найдёшь таких политиков, которые прояснили бы вам реальное положение вещей; тем не менее, если вы технический специалист, не будет лишним спросить вашего менеджера, не является ли весь проект политической спекуляцией. Даже если политика вам не нравится, или вы в ней новичок, внимательно выслушайте ответ менеджера. Вы не глупы и не настолько наивны. Если у вас есть шестое чувство, что в проекте доминируют малоприятные политические игры, вероятно, так оно и есть; и, если ваш непосредственный начальник отделывается односложным или неопределённым ответом, вы должны сами сделать для себя выводы.
Что если ваш менеджер открыто соглашается с вами? Что если он отвечает: «Да, на самом деле весь этот проект не более, чем ожесточённая схватка между вице-президентом Смитом и вице-президентом Джонсом»? Если это так, почему же тогда сам менеджер участвует в этом проекте? Для этого, как сказано ниже в подразд. 1.4, может быть множество причин; но причины, заставляющие менеджера участвовать в проекте, совсем не обязательно должны заставлять и
1.3.2 Наивные представления маркетинговых служб, высшего руководства, менеджеров проекта и др.
Наивность часто связана с неопытностью, поэтому не удивительно, когда люди, не имеющие представления о трудоёмкости и длительности создания нужной им системы, принимают нереалистичные решения. В самом худшем варианте это может привести к тому, что мой коллега Том ДеМарко называет «истерическим оптимизмом», когда все поголовно в организации бездумно верят, что сложный проект, ничего подобного которому они никогда не делали, можно как-нибудь сделать за девять месяцев, хотя реалистичная оценка его продолжительности – три года.
Наивность и оптимизм, как мы видим, присущи также и техническим специалистам. Однако, вообразим на минуту, что именно ваши менеджер, отдел маркетинга или конечный пользователь несут ответственность за чересчур оптимистичный план или бюджет. Как они отреагируют, когда в конечном счёте поймут чрезмерную оптимистичность первоначальных оценок? Захотят ли они продлить срок разработки, увеличить бюджет и спокойно согласиться с тем, что все не так просто, как они себе представляли? Скажут ли они вам и вашим коллегам спасибо за героические усилия? Если это так, то самым важным для вас может оказаться заменить классическую каскадную модель жизненного цикла ПО на подход RAD, чтобы сразу после реализации первой версии прототипа системы можно было получить реалистичную оценку плана, бюджета и ресурсов.
Тем не менее, в большинстве безнадёжных проектов такого рода рациональная коррекция курса в середине проекта невозможна. Так может случиться, например, если главный менеджер наивно пообещал что-либо заказчику и считает, что дело чести – выполнять своё обязательство, несмотря ни на что. Самое худшее – когда человек, принимающий на себя обязательства, вполне осознает происходящее (в особенности такие дела всплывают наружу, когда после празднования по поводу заключения нового контракта с очередным доверчивым пользователем менеджер по маркетингу признается менеджеру проекта за кружкой пива: «Послушай, мы никогда бы не заключили этот контракт, если бы сказали клиенту, сколько времени потребует проект
На последнее замечание особенно трудно возразить, если оно исходит от вашего босса или менеджера, который выше вас на два или три уровня. Предполагается, что вся оценка планов и бюджета является предметом переговоров (которые будут детально обсуждаться в главе 3). В то же время ваш менеджер ведёт себя в некоторой степени наивно, если он, будучи недовольным «раздуванием» плана и бюджета, полагает, что вы сможете завершить проект в смехотворно короткий срок, принятый без вашего ведома. Такой срок может быть установлен и под влиянием менталитета «Морского Корпуса», который обсуждается в подразд. 1.3.5. Наконец, принятие отделом маркетинга смехотворного плана и бюджета может быть результатом политических игр, о которых говорилось ранее; менеджера по маркетингу вряд ли особенно волнует реалистичность предлагаемого им плана и бюджета, поскольку его основная цель – получить комиссионное вознаграждение или доставить удовольствие своему боссу.
Представим себе, что наш безнадёжный проект – это результат «наивности в чистом виде», свободной от политики или каких-либо других злонамеренных воздействий. Главный вопрос заключается в следующем: что делать? Как было отмечено выше, определяющим фактором является вероятность того, что лица, принимающие решения, пересмотрят свои бюджеты и планы, когда станет очевидной невыполнимость взятых на себя первоначально обязательств. Трудно предсказать заранее, произойдёт это или нет, однако небесполезно было бы оглядеться вокруг себя и посмотреть, что же происходит в подобной ситуации с другими безнадёжными проектами. (Если это первый такой проект, который когда-либо осуществлялся в вашей компании, значит, вы в самом деле – белое пятно на карте!)
1.3.3 Наивный оптимизм юности: «Мы сможем сделать это за выходные!»
Несмотря на то, что руководство компании, как правило, является удобной мишенью для критики за множество нелепых решений, связанных с безнадёжными проектами, технические специалисты тоже не такие уж невинные агнцы. Несомненно, во многих случаях высшее руководство, к счастью, осознает свою неопытность в вопросах оценки и планирования сложных проектов. Оно обязательно будет консультироваться относительно продолжительности проекта с каким-нибудь технократом-сорвиголовой, которого, может быть, только неделю как назначили на высокую руководящую должность.
И, если этот технократ честолюбив и полон юношеского оптимизма (что напоминает юношеские фантазии относительно бессмертия, всемогущества и всеведения), он, скорее всего, ответит: «Нет проблем! Мы можем покончить с этой ерундой за выходные!» Высококвалифицированный программист (правда, здесь больше подходит определение «хакер») твёрдо уверен, что может разработать
любую
систему за выходные. Такие незначительные мелочи, как документирование, отладка, тестирование и проработка пользовательского интерфейса, настолько скучны, что нечего о них и говорить.
Если вы как раз именно такой чересчур оптимистичный программист и при этом ответственны за оценку параметров проекта, то, скорее всего, не представляете себе, что вы делаете. Вероятно, вы прочли последний абзац, немедленно оскорбились и проворчали: «Черт возьми! Я
в самом деле
могу разработать любую систему за выходные!» Господи, благослови вас; может статься, вы и преуспеете. В любом случае, что бы вы не услышали от старого пердуна вроде меня, вряд ли это изменит ваше мнение.
Однако, если вы – закалённый в битвах ветеран и замечаете, что вас почти втянули в безнадёжный проект, поскольку какой-то молодой и наивный технический менеджер взял на себя смехотворно оптимистичные обязательства относительно плана, бюджета и ресурсов, то что же вам остаётся делать? По-моему, самое лучшее – спасаться бегством. Когда до таких менеджеров дойдёт, что они пытаются прыгнуть выше головы, они впадают в состояние коллапса, что выражается в непредсказуемом поведении или полной беспомощности. В большинстве случаев им никогда не приходилось прежде иметь дело с такими большими и сложными проблемами, которые невозможно решить ни гениальным умом, ни грубой силой (например, кодируя без перекуров 48 часов в выходные). В любом случае, когда проект не уложится в срок, для них, наверняка, будет весьма неприятно услышать от вас: «А я ведь тебя предупреждал!».
1.3.4 Менталитет первопроходцев у неопытных предпринимателей
Я не просто наблюдал такие проекты со стороны, а сам участвовал в них, причём иногда отвечал за развёртывание работ. Когда я писал эту книгу, случилось так, что любая начинающая компания со словом «Java» в своём названии или названии её продукта, могла получить такой начальный капитал, что не знала, что с ним делать. Но в общем случае начинающие компании недоукомплектованы специалистами и менеджерами, не имеют достаточного финансирования и слепо верят в свои шансы на успех. Так и должно быть, поскольку предусмотрительный и консервативный менеджер никогда не подумает о создании новой компании без тщательного планирования и крупной суммы на банковском счёте на случай непредвиденных расходов.
Итак, по определению, высокий процент проектов, связанных с начинающими компаниями – это безнадёжные проекты. Большая их часть заканчивается крахом как самих проектов, так и компаний вместе с ними. Се ля ви – такова судьба почти всех начинаний в области высоких технологий (особенно в США). Будучи воспитан в таких условиях, я думаю, что это вполне нормально (моя позиция подкрепляется также тем, что я достаточно удачно завершил несколько таких начинаний). Несомненно, такой сценарий развития событий часто является одним из
положительных
мотивов для начинания безнадёжного проекта, что в дальнейшем будет детально обсуждаться в подразд. 1.4.
Далеко не каждый знаком с культурой и средой начинающих компаний. Если последние 20 лет вы работали в каком-нибудь дряхлеющем государственном учреждении, окружённые пишущими на КОБОЛе зомби (то же самое можно сказать и про большинство банков, страховых и телефонных компаний), и буквально только что вследствие даунсайзинга, аутсорсинга или реинжиниринга оказались на работе в начинающей фирме, вряд ли у вас имеются какие-либо идеи относительно вашей перспективы. Безнадёжные проекты имеют место и в больших корпорациях, но там в штат проекта, как правило, включаются разные лишние люди из
«Ночи Живых Мертвецов»
. В безнадёжных проектах начинающих компаний обстановка совершенно другая, она подобна напору адреналина.
В то же время начинающие компании часто страдают разновидностью наивного оптимизма, о котором я уже говорил. Многие начинающие компании основываются технарями-сверхэнтузиастами, убеждёнными, что их новая технология сделает их богаче Билла Гейтса; другие основываются гениями маркетинга, убеждёнными, что смогут продавать доверчивым эскимосам холодильники с возможностями Internet. Оптимизм важен для любого начинающего предприятия, его успех может зависеть от деятельности, которой ранее никто не занимался. Но даже самая агрессивная и оптимистичная компания вынуждена подчиняться основным законам физики и математики. Если вы оказались вовлечёнными в безнадёжный проект начинающей компании, проверьте, существует ли какой-нибудь план достижения успеха, или все это предприятие – воздушный замок.
1.4 Почему люди участвуют в безнадёжных проектах?
В предыдущем разделе шла речь о том, что организации начинают и/или допускают существование безнадёжных проектов по вполне определённым причинам. Мы можем с ними соглашаться или не соглашаться, можем сочувствовать тем, кого постиг неожиданный кризис, но, в конце концов, должны принять их безоговорочно.
Однако это вовсе не означает, что мы как индивидуумы обязаны лично участвовать в безнадёжных проектах. В своей книге я в основном исхожу из предположения, что вы
будете
участвовать в безнадёжном проекте, хотя в дальнейшем я советую в определённых обстоятельствах отказаться от участия. И в большинстве случаев это лучше всего сделать в самом начале проекта. Когда вам говорят, что вас решили включить в такой проект в качестве менеджера или технического специалиста, следовало бы ответить: «Благодарю покорно! Я лучше постою в стороне». Если же для вашей внутрикорпоративной культуры такой ответ неприемлем, вы почти всегда оставляете за собой право сказать: «Благодарю покорно! Я лучше уволюсь».
Очевидно, некоторые разработчики и, вероятно, ещё в большей степени менеджеры возразят, что такой вариант им практически не подходит. Далее мы вкратце поговорим на эту тему, а сейчас важно отметить, что это одна из нескольких возможных «негативных» причин участия в безнадёжном проекте; в этом нет ничего особенно хорошего, но, возможно, альтернативы ещё хуже.
С другой стороны, некоторые разработчики (и менеджеры)
с радостью
соглашаются участвовать в таких проектах; спрашивается, почему же (не считая наивных оптимистов) нормальный здравомыслящий человек добровольно соглашается участвовать в проекте, где ему, скорее всего, придётся работать 14 часов в день, 7 дней в неделю и год или два без отпуска?
Наиболее распространённые причины приведены в табл. 1.2, ниже они будут подробно обсуждаться.
1.4.1 Риск высок, но вознаграждение тоже
Наилучший пример данной ситуации – это работа в начинающей компании, которая обсуждалась в подразд. 1.3.4. Если вы заверите участников проекта, что его успех принесёт компании всеобщую известность, а их самих сделает миллионерами, то они с радостью будут работать до изнеможения. Конечно, они могут отдавать себе отчёт в рискованности этой затеи, но, поскольку многие верят, что они всемогущи и бессмертны, они не обратят особого внимания на риск.
В самом деле, если принимать во внимание влияние западной культуры (особенно в США), то вовсе не удивительно наблюдать, как молодые программисты готовы добровольно участвовать в безнадёжных проектах. Мы не устаём повторять, что успех кинозвёзд, рок-певцов, выдающихся спортсменов и олимпийских чемпионов, а также лидеров в софтверном бизнесе, объясняется их колоссальной энергией, огромной работоспособностью и готовностью принести свою личную жизнь в жертву успеху. Мы никогда не слышали о том, чтобы успех могли принести хитрость и двуличность, сомнительные сделки и противозаконная деятельность. И нам не часто приходится слышать, что удачу приносит умение оказаться в нужном месте в нужное время. Например, Билл Гейтс, определённо, представляет собой книжный образ удачливого бизнесмена; однако, если бы группа руководителей IBM не появилась бы в Сиэттле, чтобы взглянуть на операционную систему для ПК, и если бы Гейтс не оказался под рукой в то время, как IBM не смогла дождаться результата от своего первоначального подрядчика, кто знает, где была бы Microsoft сегодня?
И ещё один момент: мы не слишком много знаем о реальных последствиях тех «жертв», которые обычно требует безнадёжный проект – жертв, связанных с физическим и психическим здоровьем, человеческими взаимоотношениями. Все это кажется неважным для 22-летнего специалиста и для необщительных интровертов, которые полностью поглощены работой на компьютерах. С другой стороны, несколько удивляет, что среди 40– и 50-летних тоже оказываются добровольные участники безнадёжных проектов; ведь они не только знают, что большинство таких проектов обречено на провал, но и убедились (на своём же горьком опыте!), что бессмысленно жертвовать своей семейной жизнью и хорошими отношениями с детьми.
В конце концов, это личный выбор каждого, и он зависит от системы ценностей. Я не в состоянии больше говорить на тему о том, что хорошо и что плохо. Я только хотел бы подчеркнуть, что я совсем не так уж негативно отношусь к участию в безнадёжных проектах, как можно подумать из сказанного выше. Хотя я думаю, что я не так наивен, как 30 лет назад, меня все ещё привлекают возможности предпринимательства. Поманите меня достаточно привлекательным соотношением риска и вознаграждения, и я брошусь в ещё один безнадёжный проект.
Между прочим, иногда вознаграждение является чисто психологическим, а не денежным. Как отмечает Sharon March Roberts:
1.4.2 Синдром покорителей Эвереста
Почему люди штурмуют такие опасные горы, как Эверест, несмотря на риск и мучения? Почему они участвуют в марафонских забегах и доводят себя до физического изнеможения в многоборье? Потому что этим они бросают вызов окружающим. Ещё больше возбуждает, если ты пытаешься совершить то, что до тебя никто не смог сделать. Например, из пяти миллиардов людей на планете только один может сказать: «Я был первым человеком, ступившим на Луну». Кто-то может подумать, что даже сама попытка совершить нечто подобное – это безумие и эгоизм, а другие, наоборот, хотели бы бросить вызов всем преградам в надежде завоевать славу и общественное признание. Как заметил недавно в своём письме ко мне консультант Al Christians:
Существует много занятий, вызывающих подобное удивление. Работа шахтёра, ковбоя, лесоруба, пилота-истребителя, подводника и даже мойщика окон высотных зданий имеет массу отрицательных моментов, которые гораздо более серьёзны, чем в проектировании ПО, и, тем не менее, в каждой из этих профессий есть люди, которые не мыслят себя вне её.
То же самое можно сказать и про безнадёжные софтверные проекты. У меня была возможность посетить разработчиков проекта Macintosh в конце 1983 г., за несколько месяцев до официального объявления продукта, и я был просто поражён их энергией. Помимо прочих причин, побуждающих их долго и интенсивно работать, имея дело с маниакальной личностью Стива Джобса, участники команды были абсолютно уверены (отчасти благодаря харизме Джобса), что Macintosh должен произвести революцию в персональных вычислениях. Они были вполне счастливы.
С точки зрения такой перспективы даже проваленные безнадёжные проекты могут выглядеть довольно значительными. В эту категорию попадает бесчисленное множество проектов в Силиконовой Долине, зачастую после прожигания десятков миллионов долларов. Несмотря на то, что их провал влечёт за собой банкротство целых компаний, разводы, язвенные болезни, нервные расстройства и многое другое, люди, участвовавшие в таких проектах, все ещё с гордостью говорят о своём опыте. «Я работал над созданием операционной системы в корпорации Go!, это была настоящая революция в программном обеспечении!», – скажет закалённый ветеран охваченному благоговением стажёру.
1.4.3 Наивность и оптимизм молодости
Наша индустрия достаточно молода, и многие из наиболее претенциозных и вызывающих проектов выполняются и возглавляются людьми, которым нет ещё и 30 лет. Для безнадёжного проекта не ничего необычного, если все технические специалисты в проектной команде моложе 25 лет. Они напоминают мне пилотов-истребителей, призванных в Военно-Воздушные Силы во время Второй Мировой и вьетнамской войн: такие же молодые идеалисты, абсолютно убеждённые, что они могут
все
. Как отметил David Maxwell:
Разумеется, огромная самоуверенность выручает такие команды в ситуациях, когда обычные проектные команды терпят поражение. Тот факт, что наиболее успешные продукты – от Lotus 1-2-3 до Netscape Navigator – были разработаны небольшими командами в условиях, неприемлемых для нормальных людей, уже стал фольклором в нашей индустрии. Когда такие проекты заканчиваются успешно, они приносят проектной команде известность и славу; даже когда они проваливаются, то зачастую позволяют всем участникам извлечь для себя важные уроки (хотя для организации в целом последствия могут быть катастрофическими!).
Важно отметить, что наивность и оптимизм молодости обычно сочетаются с огромной энергией, целеустремлённостью и отсутствием таких помех, как семейные отношения. Безусловно, все это не является прерогативой одной лишь только молодости, однако гораздо чаще можно встретить 22-летнего программиста, который готов и жаждет участвовать в безнадёжном проекте со 100-часовой рабочей неделей в течение года или двух, чем 35-летнего женатого программиста с двумя детьми и весьма умеренной склонностью к покорению горных вершин. Молодой программист, готовый участвовать в безнадёжном проекте, а также относительно молодой менеджер проекта, дающий оптимистические обещания начальству, как бы утверждают: «Разумеется, мы обеспечим успех этого проекта и сокрушим все препятствия на своём пути!»
Мне не хотелось бы высказывать какое-либо серьёзное суждение по этому поводу, потому что это бессмысленно. Как уже было отмечено выше, наша индустрия привлекает молодых, и я не думаю, что ситуация изменится в ближайшие несколько лет. Я также не думаю, что молодёжь может лишиться своего оптимизма, энергии и способности сосредотачиваться на решении проблем. Что касается их наивности …, ничего не поделаешь, эта болезнь проходит только с возрастом.
1.4.4 Альтернатива – безработица
Поскольку мы
действительно
работаем в индустрии молодых оптимистов, и наша индустрия непрерывно (и временами довольно быстро) развивается по крайней мере последние 30-40 лет, я всегда удивлялся, когда участники безнадёжных проектов приводили мне этот довод.
С другой стороны нужно учитывать, что в таких условиях профессиональные знания довольно быстро обесцениваются. В самом деле, за последнее десятилетие произошли такие огромные изменения, что наша профессия, как и многие другие профессии «белых воротничков», накопила значительный опыт даунсайзинга, реинжиниринга и аутсорсинга. В целом уровень занятости в индустрии ПО постоянно растёт, но при этом не надо забывать, что спрос на программистов С++ растёт быстрее, чем падает спрос на программистов КОБОЛа (правда, мои коллеги напомнили мне, что такой спрос ещё существует в связи с проблемой 2000 года и необходимостью преобразования множества программ, написанных на КОБОЛе. Тем не менее, я уверен, что после 1-го января 2000 года перспективы программистов КОБОЛа существенно ухудшатся). Кроме того, большие IS/IT-организации, которые превратились в огромные бюрократические монстры с тысячами сотрудников, оказались частично подверженными реинжинирингу и даунсайзингу; их высшее руководство может быть не готовым к сокращению технических специалистов, но зачастую сокращает менеджеров среднего звена, администраторов и обслуживающий персонал.
Все это приобретает особое значение в безнадёжных проектах. Вполне возможно, что нехватка людей в проектной команде является следствием общего сокращения штатов разработчиков ПО, предпринятого руководством. И, аналогично, сокращение вдвое срока разработки может быть следствием реинжиниринга под лозунгом: организация должна работать вдвое продуктивнее, чем прежде (что в переводе на командный язык означает «Работать усерднее! Работать быстрее!»). Кстати, эта ситуация
гораздо
более характерна для Северной Америки, чем для стран Западной Европы, где мне удалось побывать. Только в Северной Америке увлекаются таким «радикальным» реинжинирингом, что масса сотрудников увольняется с работы. По этим же причинам (с учётом культурных традиций, социальной политики и законов) количество безнадёжных проектов в этих странах существенно меньше. Служащие, особенно в Западной Европе, гораздо больше защищены от сверхурочной работы и ревностно отстаивают свои права на отпуск, выходные, личное время и др. Хорошо это или плохо – это тема для отдельного разговора.
Поскольку реинжиниринг не является темой данной книги, мне не хотелось бы давать какие-либо комментарии по поводу стратегий реинжиниринга, предпочитаемых менеджментом. В данном случае важно то, что многие технические специалисты и менеджеры ощущают скрытую угрозу, когда проекты выполняются в такой обстановке. Довольно часто бывает, что несогласие с какими-либо установками проекта означает для них увольнение с работы. Для 22-летнего неженатого программиста в этом нет ничего страшного, а для 35-летнего менеджера проекта, обременённого семьёй и долгами, увольнение может стать серьёзной проблемой. Что же касается 45-летнего программиста, вся квалификация которого – КОБОЛ и CICS, то проблема ещё серьёзнее. Несмотря на молодость нашей индустрии, она существует достаточно долго для того, чтобы было найти даже 55– и 60-летних программистов, которые вынуждены изо всех сил держаться за свою работу, пока не получат законное право на пенсию.
Для людей среднего возраста и более старших характерна привязанность к своему месту жительства, поскольку их супруги работают в том же городе, либо дети могут учиться только в местных школах, либо совесть не позволяет покинуть своих старых родителей и других членов семьи. Это не является проблемой, если рынок труда достаточно велик, однако каждый, кто сегодня живёт в Пукипси, Нью-Йорк, хорошо знает, о чем я говорю. Люди, живущие в Редмонде, Вашингтон, вероятно, могли сталкиваться с такими же неприятными проблемами 5, 10 или 20 лет назад.