Руководство по Agile · Основы Agile
Жизненный цикл Agile-разработки: 6 фаз простыми словами
Жизненный цикл Agile-разработки — это последовательность этапов, через которые проходит продукт, создаваемый по Agile-методам: от первой идеи через повторяющиеся короткие итерации, каждая из которых даёт рабочий результат, к релизу, поддержке и в итоге выводу из эксплуатации. В отличие от линейного жизненного цикла, этап создания повторяется многократно, и каждый проход формируется обратной связью.
Главное
- Жизненный цикл Agile проходит от концепции и запуска через повторяющиеся итерации к релизу, сопровождению и выводу из эксплуатации.
- Планирование, создание и тестирование проходят вместе в каждой итерации, а не в отдельных фазах.
- Выпускайте ранние инкременты, чтобы получать обратную связь, и планируйте мощность на работы по сопровождению.
- Единой официальной модели нет, поэтому адаптируйте названия фаз под свой контекст.
Что такое жизненный цикл Agile
Жизненный цикл описывает, как работа движется от идеи к готовому продукту. В Waterfall жизненном цикле каждая фаза (требования, проектирование, создание, тестирование, развёртывание) проходит один раз, по порядку. В Agile планирование, проектирование, создание и тестирование происходят вместе внутри каждой короткой итерации, а продукт растёт инкрементами. Фазы ниже описывают путь продукта в целом; бо́льшая часть времени приходится на фазу итераций.
Шесть фаз
| Фаза | Что происходит | Типичные результаты |
|---|---|---|
| 1. Концепция | Определение возможности, пользователей и желаемого результата; решение, стоит ли её изучать | Формулировка проблемы, примерное содержание, решение «продолжать / не продолжать» |
| 2. Запуск (Inception) | Формирование команды, согласование видения продукта, создание первоначального бэклога, настройка инструментов и сред | Видение продукта, первые бэклог продукта, рабочее соглашение команды |
| 3. Итерации (конструирование) | Планирование, создание, тестирование и проверка небольших порций ценности в повторяющихся спринты или непрерывном потоке | Рабочие протестированные инкременты; обратная связь; обновлённый бэклог |
| 4. Релиз | Финальные проверки, документация и обучение, затем развёртывание для пользователей | Выпущенный продукт или набор функций |
| 5. Сопровождение (эксплуатация) | Поддержка пользователей, исправление дефектов и постоянное улучшение продукта, обычно в последующих итерациях | Исправления, улучшения, эксплуатационные данные |
| 6. Вывод из эксплуатации | Вывод продукта из эксплуатации, перенос пользователей и данных, прекращение поддержки | План вывода из эксплуатации, архивированные данные |
Как проходит одна итерация
- Планирование: команда выбирает из бэклога элементы наибольшей ценности и согласует цель итерации.
- Проектирование и создание: разработчики, тестировщики и дизайнеры работают над каждым элементом вместе, а не передают работу по цепочке.
- Тестирование: тестирование идёт непрерывно, поэтому каждый элемент соответствует критериям готовности (Definition of Done) , прежде чем считаться завершённым.
- Обзор: команда показывает рабочий результат заинтересованным сторонам и собирает обратную связь.
- Рефлексия: на ретроспективе команда договаривается об одном-двух улучшениях своего способа работы.
- Адаптация: обратная связь и новая информация обновляют бэклог, и начинается следующая итерация.
Разобранный пример: приложение для бронирования
Сеть фитнес-клубов хочет, чтобы клиенты записывались на занятия онлайн.
- Концепция (1 неделя): менеджер продукта подтверждает, что бронирование по телефону отнимает у персонала около 20 часов в неделю, и ставит цель перевести большую часть бронирований в онлайн.
- Запуск (2 недели): команда из шести человек формируется, пишет видение и создаёт 40 пользовательских историй , сгруппированных в четыре эпика.
- Итерации (6 двухнедельных спринтов): 1-й спринт даёт простое расписание занятий; 2-й добавляет запись и отмену; последующие спринты добавляют листы ожидания, напоминания и оплату.
- Релиз: после 3-го спринта базовая версия запускается в двух пилотных залах; после 6-го — во всех клубах сети.
- Сопровождение: команда сохраняет меньшую мощность для исправлений и новых функций на основе данных об использовании.
- Вывод из эксплуатации: спустя годы приложение заменяют новой платформой для клиентов, а старые данные о бронированиях переносят.
Жизненный цикл Agile и традиционный SDLC
| Традиционный (каскадный) SDLC | Жизненный цикл Agile | |
|---|---|---|
| Порядок работы | Фазы проходят один раз, последовательно | Фазы создания повторяются в коротких итерациях |
| Требования | Фиксируется заранее | Развиваются в приоритизированном бэклоге |
| Тестирование | Отдельная фаза ближе к концу | Непрерывно, внутри каждой итерации |
| Поставка | Один релиз в конце | Частые инкременты, нередко выпускаемые рано |
| Изменения | Контролируется через формальные управление изменениями | Ожидаются и поглощаются через бэклог |
| Участие клиента | В основном в начале и в конце | Постоянно, на каждом обзоре |
См. Agile или Waterfall для более полного сравнения.
Типичные ошибки
- Спринты-мини-водопады: весь дизайн в одном спринте, всё создание в следующем, а всё тестирование после него.
- Пропуск этапа запуска: начало спринтов без общего видения, из-за чего бэклог теряет направление.
- Отсутствие релизов: создание множества инкрементов, которые придерживают до одного большого запуска, теряя обратную связь, на которой держится Agile.
- Забытая мощность на сопровождение: планирование каждого спринта так, будто работы по поддержке нет.
- Игнорирование вывода из эксплуатации: старые продукты продолжают работать без владельца и плана.
Бесплатные шаблоны по этой теме
Частые вопросы
Каковы фазы жизненного цикла Agile-разработки?
Распространённая модель включает шесть фаз: концепция, запуск, итерации (конструирование), релиз, сопровождение (эксплуатация) и вывод из эксплуатации.
Совпадает ли жизненный цикл Agile с SDLC?
Жизненный цикл разработки ПО (SDLC) — общий термин для этапов создания программного обеспечения. Жизненный цикл Agile — один из способов реализации SDLC, при котором этапы создания повторяются в коротких итерациях.
Какая фаза жизненного цикла Agile-разработки длится дольше всего?
Фаза итераций, потому что команда повторяет её много раз, часто продолжая и после первого релиза.
Сколько длится итерация в жизненном цикле Agile-разработки?
Обычно от одной до четырёх недель. Многие команды используют двухнедельные спринты.
Есть ли в жизненном цикле Agile-разработки фаза проектирования?
Отдельной фазы нет. Проектирование идёт непрерывно внутри каждой итерации, а часть высокоуровневого проектирования выполняется на этапе запуска.
Где проходит тестирование в жизненном цикле Agile?
Внутри каждой итерации. Работа не считается завершённой, пока она не протестирована и не соответствует критериям готовности (Definition of Done).
Является ли Scrum жизненным циклом Agile-разработки?
Scrum — это фреймворк для проведения фазы итераций. Он не определяет фазы концепции, релиза и вывода из эксплуатации; см. что такое Scrum.
Можно ли выпускать релизы до конца жизненного цикла Agile?
Да, и это даже поощряется. Выпуск ранних инкрементов позволяет быстрее получить реальную обратную связь от пользователей.
Что происходит на этапе запуска в жизненном цикле Agile?
Команда формируется, согласует видение продукта, настраивает инструменты и среды и создаёт первоначальный бэклог продукта.
Как Kanban вписывается в жизненный цикл Agile?
Kanban-команды заменяют фиксированные итерации непрерывным потоком работы, но общий путь от концепции до вывода из эксплуатации тот же; см. что такое Kanban.
Используют ли жизненный цикл Agile команды вне разработки ПО?
Да. Маркетинговые, креативные и другие команды используют ту же идею коротких циклов, дающих пригодные к использованию результаты и обратную связь; см. применим ли Agile только к разработке ПО.