Думаю, что вас заинтриговало название этой книги, и вы решили заглянуть в неё, чтобы посмотреть, о чем там написано. Но, к сожалению, вы, как обычно, ужасно заняты и не уверены, найдётся ли у вас время на чтение ещё одной книги об управлении софтверными проектами. Особенно, если в ней идёт речь о некоем идеальном мире, в котором здравомыслящие мужчины и женщины хладнокровно принимают благоразумные решения относительно бюджета, графика и ресурсов вашего проекта.
Тем не менее, можно заметить, что мы живём в отнюдь не идеальном мире, и существует вероятность того, что в вашем проекте вам придётся взаимодействовать с людьми не слишком рационального склада мышления, решения которых трудно назвать хладнокровными или благоразумными. Другими словами, вы участвуете в безнадёжном проекте. Самое замечательное, что можно сказать о названии этой книги, заключается в отсутствии какой-либо необходимости объяснять его. Каждый раз, когда я упоминаю его в присутствии моих друзей и коллег, они отвечают мне со смехом: «Послушай, ты ведь говоришь именно о моем проекте!»
Такой проект может быть моим проектом, вашим проектом, чьим-либо ещё проектом – мы все так или иначе участвуем в безнадёжных проектах. Мне думается, первый вопрос, который вы должны задать самому себе (хотя он может и не возникнуть у вас до самого конца проекта): «Как я позволил вовлечь себя в такой проект?» Я буду обсуждать его в первой главе, поскольку мой опыт в качестве консультанта, наблюдающего множество таких проектов со стороны, говорит о том, что наш мир мог быть гораздо более разумным, если бы большинство из нас имело смелость остановиться и сказать: «Дудки! Я не желаю участвовать в этом безнадёжном проекте!»
Допустим, однако, что возможности хлопнуть дверью не существует – например, очень трудно найти другую работу, или вас приковывает к вашему работодателю своего рода «золотая цепь», отбивающая охоту выйти из проекта. В этом случае следует спросить себя: «Как я могу выжить в этом проекте без ущерба для моего здоровья, психики и достоинства?» Если вы оптимист, для вас может оказаться даже интересно, как вам удастся преодолеть все препятствия на пути завершения безнадёжного проекта в срок и в рамках бюджета. Но если вы уже успели пройти через ряд таких проектов, вы, скорее всего, знаете, что обстоятельства обычно складываются против вас и выживание – это лучше, на что вы можете надеяться.
Проработав в индустрии ПО более 30 лет, я обнаружил, что наша профессия весьма интересно воспринимает безнадёжные проекты. В некоторых областях индустрии ПО, особенно в Силиконовой Долине, такие проекты окружены ореолом славы, как испытание силы духа и стойкости, нечто наподобие покорения Эвереста босиком. Я сам разделял эти убеждения во время моих первых проектов в середине 60-х годов, и не секрет, что такие же взгляды превалируют у следующего поколения, что наводит меня на мысль о постоянстве этого феномена, поскольку технология продолжает развиваться такими же быстрыми темпами, как это было в моё время. Наша индустрия ещё не достигла зрелости. Каждый год появляется новый Эверест и новая масса отчаянных программистов, которые уверены, что смогут пробежать босиком весь путь до вершины.
Тем не менее, в другом сегменте нашей индустрии такие проекты рассматриваются как серьёзные неудачи. Мы все бываем завалены статистикой, говорящей о срыве планов, перерасходе бюджета, ошибках в ПО, раздражённых пользователях и полных провалах проектов. Эксперты, консультанты и методологи постоянно твердят нам, что причиной всех этих неудач является использование неверных методов (или вообще никаких методов), или неправильных средств, или неправильных способов управления проектом. Иными словами, безнадёжные проекты существуют потому, что мы такие бестолковые или некомпетентные.
Если вы общаетесь с покрытыми шрамами, закалёнными в боях ветеранами-разработчиками, которые прошли через пару безнадёжных проектов и поняли, что на самом деле нет ничего забавного в покорении Эвереста босиком, вы наверняка услышите: «Постойте! Я вовсе не бестолковый! Безусловно, мне хотелось бы использовать правильные методы, средства и способы управления проектом. Но моё высшее руководство и мои пользователи вряд ли позволят мне сделать это. Причина смехотворности проектных планов заключается в том, что с самого первого дня, когда мы ещё не успели получить хотя бы малейшее представление о проекте, нам их уже продиктовали сверху!» Вывод: безнадёжные проекты существуют потому, что высшее руководство – это бессовестные негодяи, а наши пользователи наивны и безрассудны.
Без сомнения, в этом есть некоторая доля правды. Управляя нашими проектами, мы совершаем множество глупых ошибок, наше высшее руководство увлекается смехотворными политическими играми и наши пользователи предъявляют к нам непомерно высокие требования. Я убеждён, что это в основном объясняется высоким темпом изменений в окружающем мире, а также обычным неуважением каждого нового поколения к советам и опыту предыдущего поколения. Зачем сегодняшнему поколению Java-ориентированных фанатиков уделять хотя бы какое-нибудь внимание советам моего поколения, которое обладает 30-летней давности опытом программирования в автокоде и на ассемблере? И как сегодняшнее поколение пользователей в бизнесе может узнать, какое Web-приложение для них наиболее приемлемо, если они знают только об использовании их предшественниками онлайновых систем на мэйнфреймах с символьными, монохромными и немыми терминальными интерфейсами?