Значение предсказуемости по сравнению с другими желательными атрибутами проекта
Организации, занимающиеся разработкой программного обеспечения, и люди, ведущие собственные проекты, пытаются достичь ряда целей. Вот лишь некоторые из них. Срок. Кратчайший возможный срок для реализации заданной функциональности с заданным уровнем качества.
Бюджет. Минимальные затраты на реализацию заданной функциональности за заданное время. Функциональность. Максимальный набор возможностей при доступном времени и затратах.
Относительные приоритеты этих общих целей (а также других, более специфических) зависят от проекта. Разработки на базе динамических методологий обычно отдают предпочтение динамичности, повторяемости, надежности, устойчивости и наглядности (Cockburn 2001, McConnell 2002). Модель СММ института SEI обычно фокусируется на целях эффективности, улучшаемое™, предсказуемости, повторяемости и наглядности.
Во время дискуссий с руководством я часто спрашиваю: «Что для вас важнее: возможность изменять решения относительно функциональности или заранее известные затраты, сроки и функциональность?» По крайней мере 8 раз из 10 мне отвечают: «заранее известные затраты, сроки и функциональность» — другими словами, предсказуемость. Другие эксперты в области разработки программного обеспечения также отмечали это явление (Moseman 2002, Putnam and Myers 2003).
После этого я часто говорю: «Допустим, я могу предложить вам результаты проекта, аналогичные варианту № 1 или варианту № 2 на рис. 3.4. Также будем считать, что вариант № 1 означает, что проект будет завершен за предполагаемый срок в 4 месяца, но он может быть сдан как на один месяц раньше, так и на 4 месяца позже. С другой стороны, вариант № 2 означает, что проект будет завершен в срок 5 месяцев (вместо 4), но я могу гарантировать, что отклонение составит не более недели. Какой вариант вы предпочтете?:
8 7
6 5
Возможные сроки завершения проекта 4 (в месяцах)
В
»