Введение в методологии разработки

В рамках изучения основ проектного менеджмента рассматриваются ключевые методологии разработки программного обеспечения. Они делятся на три группы: линейные, итерационные (спиральная модель) и унифицированные процессы, которые являются предшественниками Agile.

Линейные модели процессов

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

Модель Waterfall (Водопад)

  • Это базовый линейный процесс, где этапы (требования, дизайн, разработка, тестирование) выполняются строго последовательно.
  • Преимущества: Позволяет быстро приступить к созданию продукта, минимизирует изменения в середине работы, уделяет большое внимание документации.
  • Недостатки: Невозможность вернуться к предыдущей фазе, низкая вовлечённость клиента в процесс, который видит результат только в конце.

Модель V-разработки

  • Похожа на Waterfall, но делает акцент на верификации — проверке соответствия каждого этапа предыдущему (тестирование соответствует дизайну, дизайн — спецификациям и т.д.).
  • Сохраняет все основные недостатки Waterfall, включая позднее получение результата клиентом.

Модель Pila (Пила)

  • Улучшает взаимодействие с клиентом за счёт разделения задач на клиентские и задачи команды разработчиков. Эти задачи пересекаются на протяжении всего процесса.
  • Позволяет собирать обратную связь от клиента своевременно, а не только в конце.
  • Остаётся линейной моделью и по-прежнему плохо адаптируется к изменениям.

Линейные модели хорошо подходят для производственного вида ПО с чёткими, неизменными спецификациями (например, следование ГОСТ), где процесс отточен и не требует постоянного анализа.

Итерационные (циклические) модели

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

Спиральная модель

  • Была представлена Барри Боэмом в 1986 году. Процесс визуализируется как спираль, проходящая через четыре квадранта (этапы) за одну итерацию.
  • Позволяет команде и заказчику просматривать и оценивать продукт в конце каждой итерации, внося необходимые корректировки.
  • Недостаток: Требует большого количества информации для планирования длительных итераций и оценки рисков.

Итерационные модели, в отличие от линейных, предполагают, что за один цикл создаётся не 100% готового продукта, а лишь его часть (например, 20%). Полная готовность достигается после серии итераций.

Унифицированный процесс (Unified Process)

Эта модель базируется на спиральной, являясь итерационной, и уже близка к Agile. Развитие происходит постепенно, с акцентом на архитектуру продукта.

Ключевые особенности:

  • Состоит из последовательных фаз, но внутри фаз работа может вестись параллельно (например, проектирование архитектуры и написание тестов).
  • Фазы процесса: Начало, Разработка (создание прототипа), Постройка (программирование), Передача продукта.
  • Внутри фаз работа ведётся небольшими итерациями (аналогия со спринтами в Scrum).
  • На начальной фазе оценивается жизнеспособность продукта, его стоимость и риски, но сама разработка не ведётся.

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

Заключение

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

  1. Линейные (Waterfall, V-модель, Pila): Просты, последовательны, но негибки.
  2. Спиральная модель: Вводит цикличность и оценку после каждой итерации.
  3. Унифицированный процесс: Итерационная модель с параллельной работой внутри фаз, предвестник Agile.

Следующим шагом после унифицированного процесса являются полноценные Agile-методологии, такие как Scrum и Kanban.