Цикл разработки и его этапы

Каскадный цикл

В процессе создания программного обеспечения используются семь основных видов жизненных циклов. Типичный цикл разработки программного обеспечения называется «каскадным» и выглядит следующим образом.

Каскадный цикл разработки
01 Этапы Подготовка Сбор и обработка требований. Предварительное планирование этапов работ, сроков, ресурсов и стоимости.
02 Проектирование программного обеспечения Проектирование Получение технических заданий, разработка спецификаций. Партнер получает документальное изложение своих требований и планы проведения работ.
03 Разработка под конфигурацию Создание
  • Дизайн — получение графических макетов, визуальных форм, разработка интерфейсов. Создание индивидуального стиля.
  • Кодирование — написание исходного кода.
  • Тестирование — проверка программы на соответствие всем предъявляемым к ней требованиям.
  • Документирование — передача накопленных знаний пользователям и другим разработчикам.
04 Техподдержка Поддержка
  • Внедрение — установка программного обеспечения, обучение пользователей.
  • Сопровождение — исправление выявленных ошибок, поддержка пользователей.

Гибкий цикл

Второй из наиболее распространенных — гибкий цикл разработки (Agile), позволяющий без негативных последствий изменять направление деятельности, вносить дополнительные задания, требовать детальной проработки узких мест.

Гибкий цикл разработки

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

Гибкий цикл разработки
01 Планирование Планирование Постановка целей спринта и выбор действий для их реализации, распределение имеющихся ресурсов.
02 Разработка под конфигурацию Разработка Практическое решение задач для достижения целей спринта.
03 Качество сборки продукта Тестирование Аккумулирование итоговой информации в целях контроля выполнения задач спринта. Анализ ошибок и причин отклонений от плана. Поиск путей исправления оплошностей.
04 Управление проектом Демонстрация Представление заказчику готовой части ПО.
05 Диск в коробке и корпус Внедрение По требованию возможно использование ПО в качестве самостоятельного продукта.

Сравнение

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

Сравнение каскадного и гибкого циклов разработок

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

Гибкий цикл Каскадный цикл
Не требуется детальное ТЗ. Необходимо детально проработанное ТЗ по ГОСТу.
Договор оказания услуг. Договор подряда.
Оплачивается фактически потраченное время. В стоимость работ закладывается запас на случай непредвиденных трудозатрат.
На старте нет точного понимания бюджета, оценка примерная. Точная стоимость и срок указываются в договоре.
Начать разработку можно сразу после подписания договора. Потребуется время на написание и согласование технического задания.
Легко изменить то или иное требование к реализации, если они утратили актуальность или изменилось видение проекта. Для изменения требований к реализации нужно подписать дополнительное соглашение.
Стоимость проекта ниже. Стоимость проекта выше.

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

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