Короткие итерации и обратная связь
Что это такое
Итерация — фиксированный короткий период, обычно от одной до четырёх недель, в конце которого у команды есть что-то работающее и что-то узнанное. Короткие итерации превращают ценности agile в повседневное поведение: они ограничивают, как долго может прожить неверное допущение.
Почему это важно
Цена ошибки растёт вместе со временем до того, как кто-нибудь о ней узнает: двухнедельный цикл означает, что максимальные невозвратные потери на одно неверное допущение — две недели работы, тогда как релиз раз в два квартала означает два квартала, обнаруженные в худший момент. Короткие итерации ещё и делают план самоисправляющимся: вместо одного большого прогноза, который либо сбылся, либо нет, вы получаете двадцать шесть маленьких.
Ключевые идеи
В цикле четыре такта, и последний — суть
Решение, построение, показ тому, кто может отреагировать, корректировка. Пропустите показ — и у вас короткий водопад.
День 1-2 решить: взять самый маленький пункт, который стоит выпустить
День 3-8 построить: работающий продукт, интегрированный, готовый к выпуску
День 9 показать: реальному пользователю или стейкхолдеру, способному отреагировать
День 10 скорректировать: изменить бэклог по тому, что узнали
Длина итерации — это догадка о вашей неопределённости
Короткие циклы нужны там, где требования неясны; однако при хорошо понятой работе и дорогой сборке выгоднее длинный. Фиксированные две недели по догме тратят деньги на стабильном продукте и дают ложное спокойствие на нестабильном.
Завершайте, а не начинайте
Итерация, которая заканчивается пятью пунктами на восьмидесяти процентах, не поставила ничего: осмысленной границу цикла делает именно ограничение незавершённой работы.
Выпускайте или показывайте, но не только демонстрируйте
Показ инкремента, который работает, в реальной среде — свидетельство. Презентация об инкременте будущего спринта — нет.
Измерьте стабильность цикла, потом улучшайте его
Отслеживайте, какая доля плана пережила итерацию. Если она стабильно низкая, либо пункты слишком крупные, либо команду постоянно отвлекают; и то и другое — вывод о процессе, а не о старании.
Практика
Проведите одну итерацию по четырём тактам
Спланируйте одну недельную итерацию с четырьмя тактами, вписанными в календарь: решить, построить, показать, скорректировать.
Готово, когда: показ состоялся с кем-то, кто может отреагировать, и бэклог изменился по его итогу.
Измерьте выживание плана
Запишите, что было запланировано и что фактически завершено, для двух итераций.
Готово, когда: у вас есть число того, какая доля плана выжила, и одно предложение, называющее, что её сдвинуло.
Частые ошибки
- Демонстрация без того, кто может отреагировать — такт обратной связи пропущен, и короткий цикл не приносит пользы; исправить: пригласите пользователя или стейкхолдера с полномочиями.
- Длинные итерации с церемониями agile — изменения остаются дорогими; исправить: сократите цикл, прежде чем настраивать что-либо ещё.
- Перенос незаконченных пунктов — ничего не поставлено, и прогресс неизмерим; исправить: ограничьте незавершённую работу и завершайте.
- Обязательства по содержимому спринта — план становится обещанием, и узнавание наказывается; исправить: прогнозируйте и пересматривайте.
- Игнорирование доли выживания — повторяющиеся отвлечения остаются невидимыми; исправить: измеряйте запланированное против сделанного каждый цикл.
Что читать дальше
- Ценности и принципы (04-product-process/02-agile-methodology/01-values-and-principles) — ценности, которые реализуют эти циклы.
- Методология Agile (04-product-process/02-agile-methodology) — трек, который закрывает эта глава.
- Scrum (разработка ПО) (04-product-process/10-scrum-software-development) — фреймворк, который формализует этот цикл.
- Kanban (04-product-process/11-kanban) — альтернатива, когда работа приходит непредсказуемо.