Письмо 05 - Высокий уровень риска и ненадёжность инвестиций

С повышением сложности проекта неминуемо растёт продолжительность каждой стадии разработки и количество взаимосвязей между частями проекта, количество которых тоже увеличивается. Фредерик Брукс показал, что продолжительность возрастает нелинейно. Большие проблемы вызываются и тем фактом, что реально увидеть и оценить проект в работе можно только на стадии тестирования, то есть после завершения таких значительных стадий, как стадии анализа, проектирования и разработки. Столь запоздалая оценка создаёт значительные проблемы, если выявляются ошибки анализа и проектирования. Проект возвращается на предыдущие стадии и процесс разработки повторяется.

Однако возвраты на предыдущие стадии могут вызываться не только ошибками, но и по причине того, что предметная область изменилась, изменились требования заказчика, или изменились представления разработчиков. Возвращение проекта на доработку не снимает проблемы того, что предметная область может снова измениться к тому моменту, когда будет готова следующая версия проекта. Фактически это означает, что процесс разработки «зациклился», не доходя до стадии эксплуатации. Расходы на проект непрерывно растут, а появление готового продукта постоянно откладывается.

Наконец, с ростом сложности проекта увеличивается негативный вклад каждой из перечисленных ранее проблем, таких как, информационная перенасыщенность, трудности администрирования, хроническая аритмия, психологический климат и пр. Как результат, преодоление суммы этих возросших проблем может оказаться столь трудным делом, что окажется неосуществимым.

Всё это в совокупности позволяет утверждать, что сложные проекты, разрабатываемые по методике waterfall, имеют повышенный уровень риска. Этот вывод подтверждается практикой: незавершённых проектов, к сожалению, существенно больше, нежели завершённых успешно. В свою очередь, повышенный риск и нарушение графиков разработки создают основу для ухудшения отношений между заказчиками и разработчиками.

Сайт Alexus Software Development