Проектное управление в IT
Языки и фреймворки

Водопад (Waterfall)

Время прочтения: 5 мин
Оглавление

История

Каскадная модель Waterfall была предложена в 1970 году Уинстоном Ройсом в статье «Managing the Development of Large Software Systems» и стала одним из первых системных подходов к разработке программного обеспечения. Однако, идеи, лежащие в основе Waterfall, были представлены еще раньше, в 1956 году, в работе Ганта и Пола. Таким образом, Уинстон Ройс и его коллеги не являются разработчиками подхода Waterfall, но их работа внесла значительный вклад в его популяризацию и распространение.

Описание

Методология Waterfall – это традиционный и проверенный временем подход к управлению проектами, в основе которого лежит последовательное выполнение четко определённых этапов. Каждый этап завершается полностью перед переходом к следующему, что обеспечивает высокий уровень прозрачности, структурированное планирование и строгий контроль над качеством работ.

Такой подход особенно эффективен в проектах, где требования остаются стабильными на протяжении всей реализации, а любые изменения вносятся только через формализованные процедуры. Несмотря на развитие гибких методологий, Waterfall продолжает оставаться востребованным в областях, где важны документированность процессов и предсказуемость конечного результата.

Принципы Waterfall

Методология Waterfall базируется на следующих ключевых принципах:

Линейная последовательность этапов.

Каждый этап проекта должен быть полностью завершён до перехода к следующему. Такая структура способствует ясности распределения обязанностей и служит контрольной точкой для проверки качества выполненной работы ([[PMBOK]] Guide, 6th Edition; Royce, 1970).

Полнота и детальность документирования.

В процессе разработки создаётся обширная документация, охватывающая все этапы – от сбора требований до финальной сдачи проекта. Это обеспечивает прозрачность для всех участников, помогает отслеживать ход выполнения работ и служит основой для обучения и дальнейшей поддержки продукта (IEEE Std 12207; PMBOK Guide, 6th Edition).

Стабильность требований.

На начальных стадиях проекта собираются и фиксируются все требования, что минимизирует вероятность их изменения в дальнейшем. Такой подход снижает неопределённость и обеспечивает чёткое видение конечного результата (Pressman, _Software Engineering: A Practitioner’s Approach_, 7th Edition).

Строгий контроль качества.

Каждый этап сопровождается проверкой и оценкой результатов, что способствует раннему обнаружению ошибок и проблем (ISO 9001:2015; PMBOK Guide, 6th Edition).

Четкое планирование и управление рисками.

Планирование проекта включает определение сроков, ресурсов и бюджетов для каждого этапа. Проактивный анализ возможных рисков и разработка мер по их снижению способствуют успешной реализации проекта (PMBOK Guide, 6th Edition; Kerzner, _Project Management: A Systems Approach to Planning, Scheduling, and Controlling_, 2013).

Этапы разработки

Основные этапы водопадной модели включают:

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

2. Анализ: Проводится подробное изучение собранных требований с целью формирования спецификаций, которые станут основой для дальнейших работ.

3. Проектирование и дизайн: Разрабатывается общая архитектура системы и составляются детализированные планы, определяющие, каким образом будет реализован проект.

4. Разработка: Осуществляется непосредственное создание программного обеспечения или разработка продукта, где реализуются идеи, сформированные на предыдущих этапах.

5. Тестирование: Происходит проверка продукта на соответствие требованиям, выявление и устранение обнаруженных ошибок и дефектов.

6. Внедрение: На этом этапе готовое решение интегрируется в рабочую среду. Проводится настройка системы, обучение пользователей и её запуск, обеспечивая переход к полноценной эксплуатации.

7. Обслуживание: После внедрения осуществляется регулярная поддержка, техническое обслуживание и обновление продукта для поддержания его работоспособности и соответствия требованиям.

Артефакты для работы с Waterfall

Для эффективной реализации проектов в рамках данной методологии используются следующие артефакты:

Подробное техническое задание: Формализованный документ, фиксирующий функциональные/нефункциональные требования проекта, который служит основой для всех последующих этапов.

Диаграмма Ганта: Визуальные представления плана проекта, позволяющие структурировать последовательность этапов, определить сроки выполнения задач и контролировать временные рамки.

Диаграмма Ганта — это инструмент визуализации проектного плана, который позволяет представить последовательность задач и их продолжительность в виде горизонтальных полос на временной шкале. Каждая полоса представляет собой задачу или этап проекта, а их расположение и длина позволяют определить, когда каждая задача должна быть выполнена и как они связаны друг с другом. Диаграмма Ганта помогает визуализировать хронологию и зависимости задач, а также облегчает планирование и контроль выполнения проекта

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

Контрольные точки: Определённые моменты проверки и согласования результатов, позволяющие удостовериться в завершении одного этапа перед переходом к следующему, а также минимизирующие риск накопления ошибок.

Регулярные отчёты о прогрессе: Систематизированные документы, предназначенные для мониторинга выполнения задач и оперативного выявления отклонений от плана.

Тестирование и отладка: Набор процедур по проверке качества продукта на соответствие требованиям и стандартам проекта, проводимых перед переходом к следующему этапу.

Преимущества и недостатки Waterfall

Преимущества

Гарантированное качество и соблюдение сроков. Все участники получают ожидаемый результат, поскольку требования, качество и сроки фиксируются с самого начала.

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

Прозрачность. Четкая последовательность этапов и подробная документация дают команде ясное понимание конечной цели и помогают сосредоточиться на результате.

Недостатки

Бюрократия: Множество формальных процедур и стандартов требует подготовки документации и согласований, что замедляет запуск и реализацию проекта.

Длительный предпроектный аудит: Тщательный анализ требований, оценка рисков и согласование плана занимают много времени, что увеличивает период от идеи до начала работ.

Интенсивные коммуникации: Частые встречи, отчёты и согласования отвлекают команду от основных задач и замедляют принятие решений.

Простои: Задержки при переходе между этапами, особенно при несоответствии результатов ожиданиям, снижают общую эффективность работы.

Высокая стоимость: Дополнительные расходы на формальности, согласования и ожидания существенно увеличивают общий бюджет проекта.

Частые вопросы

В каких проектах использовать Waterfall?

Для данной модели подходят проекты с жесткими сроками и бюджетами, такие как проекты с фиксированной стоимостью. Это особенно подходит, когда заказчик уверен во всех требованиях и не планирует изменения в процессе разработки.

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

Хотя такая последовательность кажется лишенной рисков, на самом деле они существуют. Ведь к моменту запуска проекта, ситуация на рынке может измениться, и продукт с текущими требованиями может стать бесполезным. 

В рамках Waterfall любые изменения оформляются через официальный запрос. Сначала оценивается их влияние на сроки, бюджет и объем работ. Запрос документируется как дополнение к техническому заданию и утверждается всеми заинтересованными сторонами. Только после согласования изменения внедряются в проектный план.

Такой подход помогает минимизировать риски и сохраняет целостность исходного плана, ведь Waterfall предполагает редкое, но строго контролируемое внесение корректировок.

Проектное управление в IT
Языки и фреймворки

JIT-компилятор (Just-In-Time Compiler) — это компилятор, который осуществляет компиляцию программного кода в машинный код во время выполнения программы. В отличие от традиционного компилятора, который выполняет компиляцию перед запуском программы, JIT-компилятор компилирует код в машинный код по мере его необходимости во время работы программы. Это позволяет улучшить производительность программы, так как компиляция кода происходит с учетом текущей среды выполнения.