ПОСТОЯННАЯ ИНТЕГРАЦИЯ

ПОСТОЯННАЯ ИНТЕГРАЦИЯ

В результате итерационной разработки первой появляется архитектура, что допускает использование интеграции в качестве вида деятельности по верификации, осуществляемого на стадии проектирования, и позволяет обнаруживать и исправлять ошибки проектирования на ранних стадиях жизненного цикла. Такой подход исключает интеграцию типа «большого взрыва» в конце проекта за счет постоянной интеграции на протяжении всего проекта. На рис. 15.1 показаны различия между кривой прогресса благополучного современного проекта и кривой обычного традиционного проекта, представленной на рис. 1.2. Подход с упреждающей разработкой архитектуры стимулирует начало интеграции на стадии проектирования путем создания демонстрационных версий. Демонстрации не могут избавить от дефектов проектирования; напротив, они способствуют их появлению именно на стадии разработки, когда их можно эффективно исправлять в контексте целей жизненного цикла. Таким образом, удается избежать кошмара интеграции в конце процесса, позднего латания дыр и «втискивания» исправлений в ПО. В результате разработка получается более устойчивой и удобной в сопровождении.
Постоянная интеграция, присущая итерационной разработке, позволяет глубже постигнуть проблемы качества. Характеристики системы, которые во многом зависят от архитектуры (производительность, устойчивость к отказам, удобство сопровождения), становятся понятными на более ранних стадиях процесса, когда их еще можно подкорректировать, не рискуя установленными затратами и сроками. Кривая затрат, характерная для успешных проектов с итерационной разработкой, существенно отличается от опыта традиционных процессов.
Таблица 15.1 показывает отличие современного процесса с точки зрения распределения затрат по рабочим процессам. Эта таблица представляет собой комбинацию таблицы 1.1 (типичное распределение для традиционного процесса) и таблицы 10.1 (стандартное распределение для современного процесса).
Рис. 15.1. Вид кривой прогресса современного проекта.
Таблица 15.1.
Различия в распределении затрат по рабочим процессам между традиционным и современным подходом
Рабочие процессы
Затраты традиционного процесса
Затраты современного процесса
Управление
5%
10%
Среда
5%
10%
Требования
5%
10%
Проектирование
10%
15%
Реализация
30%
25%
Оценка : .
40% . ::
:
;
г
25% ■
Внедрение
5%
5%
Итого
100%
100%
По моему опыту, главным фактором, определяющим успех современного процесса, являются затраты на оценку и тестирование на протяжении жизненного цикла. В традиционных проектах, характеризующихся неэффективной интеграцией и поздним обнаружением существенных ошибок, на интеграцию и тестирование тратится до 40% и более от суммарных ресурсов. Современные проекты, использующие зрелый итерационный процесс, позволяют получать конечный продукт, затрачивая на эти виды деятельности всего лишь около 25% от общего бюджета.