В этой книге ветеран индустрии программных средств Эд Салливан делится найденными в результате нелегкого труда принципами, приемами и методиками разработки коммерческого ПО. В книге раскрыты фундаментальные принципы, позволяющие выпускать качественные программы в срок в любых обстоятельствах. Вы узнаете о реальном опыте успешной разработки коммерческого ПО в начинающей компании, о том, как выбрать нужных специалистов, инструментальные средства разработки, настроить технологию, планировать и выполнять проект, своевременно обнаруживая и решая возникающие проблемы.
Только начав читать книгу, вас поражает восторженное предисловие. В нем Джон Роббинс, сослуживец автора, во всевозможных эпитетах превозносит и автора и написанную им книгу. Замечу, данный факт настораживает, правда только по началу.
Содержание книги в обычном понимании достаточно стандартное. В книге описываются проблемы в организации работы команды разработчиков программного обеспечения. Однако, в данной книге есть своя изюминка. Автор необычным образом расставил акценты. Он не замыкается на описании методологии, а приводит целый ряд советов, которые могут помочь при решении или предотвращении тех или иных проблем. В книге приводится очень точная ассоциация по поводу принципов работы менеджера проекта. Проект представляется в виде самолета, который должен двигаться по заданному курсу, однако, постоянно отклоняется от него. На пути самолета возникает множество помех: боковой ветер, грозовые облака и т.д. Однако, при отклонении от курса пилот возвращает самолет на заданный курс. Тем самым движение самолета подвержено колебаниям, правда, в определенных границах. Менеджер проекта также как и пилот осознает курс проекта, проводит постоянный мониторинг (не отклонился ли проект от курса) и действует, если проект выходит из-под контроля.
Автор четко дает понять, что основой любого проекта является команда. Каждая команда состоит из целого ряда специалистов, и каждый из них является важным для успеха проекта. Менеджер проекта с самого начала должен уделять особое внимание команде. Он должен создать работоспособную команду, поддерживать ее на протяжении всего проекта и, по возможности, не дать ей распасться после окончания работы над проектом. Советы автора по данной проблематике основаны на его богатом практическом опыте, поэтому, как мне кажется, заслуживают вашего внимания.
Удивительно, как подробно в данной книге описаны процессы бета-тестирования, производства кандидатов на выпуск и окончания работ. По мнению автора, эти процессы, часто упускаются из виду менеджерами проектов, хотя данные процессы имею ключевое значение, для удачного выпуска программного продукта. На протяжении всей книги автор неоднократно заостряет внимание читателя возможностями автоматизации того или иного процесса, будь то планирование, описание требований, сборка или тестирование. Он утверждает, что без использования автоматизированных средств проект будет задыхаться, а в большинстве случаев будет невозможен положительный результат.