Автономная проверка завершена и комплексное тестирование началось.
Спецификации утверждены.
Спецификации реализуемых сценариев составлены.
Требования к очередной итерации утверждены.
Все сведения о проекте, представленные в контрольной точке 2, к моменту прихода к третьей контрольной точке должны быть согласованы для утверждения. Для больших и сложных проектов данный момент определяется формально, для него заданы отчетные материалы, которые утверждаются. В более простых случаях этого не требуется, тем не менее веха, знаменующая окончание аналитического этапа проекта (итерации), существует независимо от формальной стороны дела. Ее отслеживание просто необходимо менеджеру в качестве момента, когда подводятся первые итоги проекта (итерации).
Начало этапа конструирования связывается с декомпозицией решаемых проектом (итерацией) задач и с построением архитектуры системы.
Коль скоро архитектура определена, пусть даже лишь в общих чертах, появляется фронт работ для разработчиков подсистем. Соответственно, у руководителей команд разработчиков появляется сфера ответственности для текущей итерации. Менеджерские обязанности в проекте, которые становятся главными в этой точке, — оформление подготовленных для реализации сценариев к утверждению. Как и в предыдущем случае, данная контрольная точка вполне может быть явно не выделена, но это не означает, что работа над трансформацией сценариев в архитектуру растворяется в проекте.
Эта контрольная точка обозначает окончание этапа конструирования. Архитектура для очередной итерации утверждена и зафиксирована в виде заданий для разработчиков подсистем и их руководителей, от которых требуется создание или модернизация наборов классов проекта, относящихся к их сферам ответственности.
Помере продвижения этапа программирования к завершению возникает момент, когда требуется комплексная проверка работоспособности системы. Он означает начало этапа оценки, поскольку с этого момента появляется возможность проверить предварительные суждения о проекте (итерации) на практике.
Часто говорят, что для проектов, разрабатываемых по методикам быстрого развития, нет нужды выделять этап конструирования (см., например, [3]). Как следствие, контрольные точки 3, 4 и 5 сливаются. Все, что надо сделать в проекте в связи с требованиями кочередной итерации, приурочивается к контрольной точке 6. К тому же в этом подходе не разделяются автономная и комплексная проверка результатов, поскольку каждая новая возможность системы с самого начала интегрируется с уже реализованными возможностями. Как следствие, автономная разработка остается лишь на уровне продумывания того, каким образом встроить новую возможность в складывающийся архитектурный каркас.
Если иметь в виду мероприятия, которые предполагается осуществлять при прохождении указанных точек, то методы быстрого развития действительно их игнорируют. Однако соответствующие процессы, о которых только что шла речь, отменить не удается. Разработчики в любом случае вынуждены заботиться и о точном специфицировании того, что требуется реализовать, и об архитектуре системы в целом. По существу, экономия времени достигается, когда слияние контрольных точек не противоречит, например, сложности проекта, перспективам его развития и т.д., и именно за счет того, что ликвидируется сдерживающий регламент развития системы. К сожалению, это далеко не всегда оправданно.
7. Тестирование завершилось, начата подготовка новой итерации.Эта контрольная точка отмечает окончание этапа программистских работ, определенных текущей итерацией. Программистские работы продолжаются как деятельность, связанная с пополнением базового окружения проекта, которое мы выделяем как относительно самостоятельный этап проекта, вложенный в этап оценки, и обычно завершающийся вместе с ним (контрольная точка 10). Эти работы подразделяются на два вида:
• выделение общих лишь для данного проекта переиспользуемых компонентов (его целесообразно выполнить до расщепления жизненного цикла — контрольная точка 9);
• выделение общих, не привязанных к проекту переиспользуемых компонентов (целесообразно начинать эти работы, когда программный рабочий продукт итерации рассматривается как готовое приложение, — контрольная точка 9, и завершать к моменту передачи системы на распространение — контрольная точка 10).
Итеративное развитие проекта обеспечивается сбором сведений для новой итерации, которая начинается в рассматриваемой контрольной точке.