Стадия | Время работы, % | Объем работы, % |
Начальная стадия | ||
Разработка | ||
Конструирование | ||
Ввод в действие |
Данное распределение может быть достаточно гибким, оно подчиняется указанным ниже эвристическим правилам.
· Если для определения области действия проекта, изыскания финансирования, изучения рынка или создания первоначального прототипа нужно значительное время, — увеличивается начальная стадия.
· Если отсутствует архитектура, предусматривается применение новых (или незнакомых) технологий и (или) имеются жесткие ограничения производительности, значительное число технических рисков, а персонал большей частью состоит из новичков, — увеличивается стадия разработки.
· Если проект представляет собой разработку второго поколения существующего продукта и в архитектуру не вносятся значительные изменения — уменьшаются стадии разработки и конструирования.
· Если нужно быстро выпустить продукт на рынок (из-за высокой конкуренции) и спланировать постепенное завершение разработки — уменьшается стадия конструирования и увеличивается стадия ввода в действие.
|
|
· Если затруднено внедрение, например, при замещении одной системы другой без прерывания эксплуатации или при необходимости сертификации (в таких областях, как медицинское оборудование, ядерная промышленность или авиационная электроника), — увеличивается стадия ввода в действие.
Следующий важный вопрос «Сколько итераций будет содержать каждая стадия?». Прежде чем принять решение по этому вопросу, нужно рассмотреть продолжительность каждой итерации.
В идеальной ситуации итерация длится от двух до шести недель, хотя в действительности это зависит от характера проекта и размера организации-разработчика. Приведем несколько примеров.
· Группа из пяти человек может выполнить некоторое планирование в понедельник утром, наблюдать за ходом проекта и перераспределять задания во время ежедневных совместных обедов, начать конструирование во вторник, а завершить итерацию в пятницу вечером.
· Если попытаться применить этот сценарий для группы из 20 человек, то это окажется затруднительным. Распределение работы, синхронизация подгрупп и интеграция будут занимать больше времени. В этом случае итерация может занять три—четыре недели.
· Если же группа будет состоять из 40 человек, то только неделя уйдет на прохождение указаний от руководства к исполнителям. Нужны промежуточные уровни управления; кроме того, достижение общего понимания целей потребует большей формальности и документирования. В этом случае разумной продолжительностью итерации будет уже три месяца.
Кроме того, влияние оказывают и другие факторы: степень знакомства организации с итерационным подходом, стабильность и уровень развития организации, а также уровень технологической зрелости процессов создания ПО. В табл. 6.20 приведена приблизительная оценка длительности итерации, обобщающая результаты, полученные в реальных проектах.
Таблица 6.20