Распределение времени и объема работ по стадиям

Стадия Время работы, % Объем работы, %
Начальная стадия
Разработка
Конструирование
Ввод в действие

Данное распределение может быть достаточно гибким, оно подчиняется указанным ниже эвристическим правилам.

· Если для определения области действия проекта, изыскания финансирования, изучения рынка или создания первона­чального прототипа нужно значительное время, — увеличи­вается начальная стадия.

· Если отсутствует архитектура, предусматривается примене­ние новых (или незнакомых) технологий и (или) имеются жесткие ограничения производительности, значительное число технических рисков, а персонал большей частью сос­тоит из новичков, — увеличивается стадия разработки.

· Если проект представляет собой разработку второго поколе­ния существующего продукта и в архитектуру не вносятся значительные изменения — уменьшаются стадии разработ­ки и конструирования.

· Если нужно быстро выпустить продукт на рынок (из-за вы­сокой конкуренции) и спланировать постепенное заверше­ние разработки — уменьшается стадия конструирования и увеличивается стадия ввода в действие.

· Если затруднено внедрение, например, при замещении од­ной системы другой без прерывания эксплуатации или при необходимости сертификации (в таких областях, как меди­цинское оборудование, ядерная промышленность или авиа­ционная электроника), — увеличивается стадия ввода в действие.

Следующий важный вопрос «Сколько итераций будет содер­жать каждая стадия?». Прежде чем принять решение по этому воп­росу, нужно рассмотреть продолжительность каждой итерации.

В идеальной ситуации итерация длится от двух до шести не­дель, хотя в действительности это зависит от характера проекта и размера организации-разработчика. Приведем несколько приме­ров.

· Группа из пяти человек может выполнить некоторое плани­рование в понедельник утром, наблюдать за ходом проекта и перераспределять задания во время ежедневных совместных обедов, начать конструирование во вторник, а завершить итерацию в пятницу вечером.

· Если попытаться применить этот сценарий для группы из 20 человек, то это окажется затруднительным. Распределение работы, синхронизация подгрупп и интеграция будут зани­мать больше времени. В этом случае итерация может занять три—четыре недели.

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

Кроме того, влияние оказывают и другие факторы: степень знакомства организации с итерационным подходом, стабиль­ность и уровень развития организации, а также уровень техноло­гической зрелости процессов создания ПО. В табл. 6.20 приведе­на приблизительная оценка длительности итерации, обобщаю­щая результаты, полученные в реальных проектах.

Таблица 6.20

Длительность итерации

Количество строк кода Число сотрудников Длительность итерации
2 недели
1 месяц
3 месяца
8 месяцев

После того как определена приемлемая длительность итера­ции, следует определить число итераций на каждой стадии.

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

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

На стадии конструирования также нужно запланировать не менее одной итерации, при этом количество итераций зависит в основном от реализуемой функциональности (количества вари­антов использования).

На стадии ввода в действие нужна, как минимум, одна итерация, например, для выпуска окончательной версии после бета-версии .

В итоге можно определить три уровня проведения полного цикла разработки (табл. 6.21).

Таблица 6.21

Наши рекомендации