- •Эдвард Йордан «Смертельный марш» Полное руководство для разработчика программного обеспечения по выживанию в безнадежных проектах
- •Глава 1. Введение 6
- •Глава 2. Политика 29
- •Глава 1. Введение
- •1.1 Определение безнадежного проекта
- •1.2 Категории безнадежных проектов
- •1.3 Почему существуют безнадежные проекты ?
- •1.3.1 Политика, политика, политика
- •1.3.2 Наивные представления маркетинговых служб, высшего руководства, менеджеров проекта и др.
- •1.3.3 Наивный оптимизм юности: «Мы сможем сделать это за выходные!»
- •1.3.4 Менталитет первопроходцев у неопытных предпринимателей
- •1.3.5 Менталитет «Морского Корпуса»(Marine Corps):Настоящиепрограммисты не нуждаются в сне!
- •1.3.6 Высокая конкуренция, порожденная глобализацией рынков
- •1.3.7 Высокая конкуренция, вызванная появлением новых технологий
- •1.3.8 Сильное воздействие неожиданных правительственных решений
- •1.3.9 Неожиданный и/или незапланированный кризис
- •1.4 Почему люди участвуют в безнадежных проектах?
- •1.4.1 Риск высок, но вознаграждение тоже
- •1.4.2 Синдром покорителей Эвереста
- •1.4.3 Наивность и оптимизм молодости
- •1.4.4 Альтернатива - безработица
- •1.4.5 Возможность будущей карьеры
- •1.4.6 Альтернатива - банкротство или прочие разные бедствия
- •1.4.7 Возможность победить бюрократию
- •1.4.8 Месть
- •1.5 Заключение
- •Глава 2. Политика
- •2.1 Идентификация «игроков», вовлеченных в проект
- •2.1.1 Владелец
- •2.1.2 Заказчики
- •2.1.3 Акционеры
- •2.1.4 Заинтересованные лица
- •2.1.5 Защитники
- •2.2 Определение сущности проекта
- •2.3 Отношение участников к проекту
- •2.4 Заключение
- •Глава 3. Переговоры
- •3.1 Нормальные переговоры
- •3.2 Допустимые компромиссы
- •3.3 Переговорные игры
- •3.4 Стратегии переговоров
- •3.5 Что делать в случае провала переговоров
- •Глава 4. Человеческий фактор в безнадежных проектах
- •4.1 Кадровые вопросы
- •4.2 Лояльность, отношение, мотивация и вознаграждения
- •4.2.1 Стимулирование участников проекта
- •4.2.2 Сверхурочная работа
- •4.3 Значение коммуникации
- •4.4 Проблемы формирования проектной команды
- •4.5 Условия работы
- •4.6 Заключение
- •Глава 5. Процессы
- •5.1 Концепция «triage»
- •5.2 Важность управления требованиями
- •5.3Sei, iso-9000. Формальные процессы против неформальных
- •5.4 «Достаточно хорошее» программное обеспечение
- •5.5 Наилучшая практика и наихудшая практика
- •5.6 Принцип «ежедневной сборки проекта»
- •5.7 Управление рисками
- •5.8 Заключение
- •Глава 6. Технология и средства
- •6.1 Минимально необходимый набор средств
- •6.2 Средства и процессы
- •6.3 Риск выбора новых средств
- •6.4 Заключение
- •Глава 7. Безнадежные проекты как образ жизни
- •7.1 Почему безнадежные проекты становятся нормой
- •7.2 Учреждение «культуры» безнадежных проектов
- •7.3 Обучение участников безнадежных проектов
- •7.4 Концепция «военных игр»
- •7.5 Заключение
4.6 Заключение
Талантливых исполнителей, сплоченной команды и хороших условий для работы все же недостаточно, чтобы гарантировать успех безнадежного проекта. С другой стороны, их отсутствие почти наверняка гарантирует провал проекта. Как будет ясно из следующих двух глав, хорошо организованные процессы разработки и хорошая технология также являются важными составляющими успеха; однако, все же самая главная составляющая - это люди. Как сказал Рональд Рейган: «Окружите себя самыми лучшими людьми, которых вы только сможете найти, передайте им в руки власть и не мешайте им».
Литература к главе:
Tom DeMarco, Tim Lister. Peopleware. Dorset Publishing, 1987.
Frederick Herzberg. One More Time: How Do You Motivate Employees? Harvard Business Review, September-October 1987.
John Boddie. Crunch Mode. Englewood Cliffs: Prentice-Hall/Yourdon Press, 1987.
Rob Thomsett. Effective Project Teams: A Dilemma, a Model, a Solution. American Programmer, July-August 1990.
Дополнительная литература:
Larry Constantine. Constantine on Peopleware. Englewood Cliffs, NJ: Prentice Hall, 1995
Watts Humphrey. Managing for Innovating: Leading Technical People. New York: McGraw-Hill, 1987.
Gerald M. Weinberg. Understanding the Professional Programmer. New York: Dorset House, 1988.
Ken Whitaker. Managing Software Maniacs. New York: John Wiley & Sons, 1994.
Глава 5. Процессы
Если вы запомните хотя бы одно слово из данной главы (или вообще из всей книги), то эти словом должна быть приоритетность (triage). Исходя из названия главы, вы можете подумать, что речь в основном пойдет о таких знакомых методологиях, как структурный анализ, или формальных дисциплинах наподобие SEI Capability Maturity Model (CMM), или различных подходах к разработке ПО под общим названием RAD (Rapid Application Development). Все это важные и нужные вещи, но самое главное заключается в том, что в безнадежном проекте вам не хватит времени на то, чтобы удовлетворить все потребности пользователя. Если вы будете строить все свои процессы и методы, исходя из этого непреложного факта, то у вас появятся шансы на успех; если же вы начнете проект, будучи уверенными, что к кодированию нельзя приступать до тех пор, пока все диаграммы потоков данных, полученные в результате структурного анализа, не будут утверждены пользователем, то вы определенно потерпите неудачу.
Это не означает, что нам следует игнорировать все методологии и стратегии, связанные с процессами (я поговорю о них позже в этой главе); но моя мысль, как вы можете убедиться, заключается в том, что они, безусловно, должны быть частью общей корпоративной стратегии, однако их не следует навязывать команде безнадежного проекта в отчаянных попытках избежать его провала. В данной ситуации применима концепция приоритетности - испытывая нехватку времени и ресурсов, команда безнадежного проекта откажется от тех методов, которые она сочтет бесполезными или несущественными (например, детальные мини-спецификации в структурном анализе), и примет на вооружение только самые полезные для нее методы. Аналогично, менеджер проекта, располагающий весьма малым временем для чтения данной главы, предпочтет прочесть наиболее важную информацию и пропустить остальное; я построил обсуждение в данной главе, исходя именно из этих соображений.