Что такое Definition of Done и Definition of Ready?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Definition of Done и Definition of Ready в Agile разработке
Это два критически важных документа в Agile-команде, которые определяют качество и готовность работы на разных этапах. Они работают как контрольный список качества и предотвращают множество проблем.
Definition of Ready (DoR)
Definition of Ready — это набор критериев, которые user story должна удовлетворять ДО начала спринта (перед тем, как разработчики начнут кодить).
Цель: Убедиться, что требование достаточно хорошо сформулировано, чтобы разработчики могли его реализовать без постоянных уточнений.
Типичные критерии DoR:
- Описание истории: User story написана по формату As a... I want... So that...
- Acceptance Criteria: Четкие критерии приёма, по которым QA поймёт, готово ли работает
- Уточнены требования: Нет неясных моментов, все stakeholders согласны
- Дизайн/макеты: Если нужны UI изменения — макеты подготовлены дизайнером
- Зависимости определены: Известны связи с другими историями
- Размер оцен: История получила story points от команды, понимаемы размер работы
- Приоритет установлен: Product Owner определил приоритет
- Тестовые данные подготовлены: Если нужны специальные данные для тестирования
- API контракты согласованы: Если будет интеграция с другими сервисами
Definition of Done (DoD)
Definition of Done — это критерии, по которым feature считается полностью завершённой и готовой к production.
Цель: Убедиться, что код качественный, протестирован, задокументирован и может быть безопасно развёрнут.
Типичные критерии DoD:
Код:
- Код написан и рецензирован (code review пройден)
- Все комментарии из code review адресованы
- Код соответствует style guide команды
- Нет дублирования кода (DRY принцип)
- Нет hardcoded значений (use configuration)
Тестирование:
- Unit тесты написаны и проходят (минимум 80% coverage)
- Integration тесты написаны и проходят
- QA провел functional тестирование
- Edge cases протестированы
- Регрессионное тестирование пройдено
Документация:
- Код задокументирован (docstrings, комментарии)
- API документация обновлена (если меняется API)
- User documentation подготовлена
- Release notes обновлены
Интеграция:
- Код залит в main/master ветку
- CI/CD pipeline прошёл успешно
- Нет конфликтов с другим кодом
- Нет регрессии в скорости
Операционал:
- Развёртывание на staging окружение прошло успешно
- Smoke тесты на staging пройдены
- Логирование и мониторинг настроены
- Алерты и notifications настроены
Разница между DoR и DoD
| Аспект | DoR | DoD |
|---|---|---|
| Когда | ДО спринта | В КОНЦЕ спринта |
| Кто проверяет | Product Owner, BA | Разработчики, QA |
| Что проверяет | Качество требований | Качество реализации |
| Если не выполнено | История не входит в спринт | Работа не считается сделанной |
Почему это важно
DoR + DoD = качество на входе + качество на выходе
- Без DoR: Разработчики половину спринта уточняют требования, теряют время
- Без DoD: Код попадает в production с багами, недокументирован, медленный
- С DoR + DoD: Предсказуемая скорость разработки, высокое качество, меньше переделок
Типичные ошибки при внедрении
- Слишком строгие критерии — команда медленнее работает. Нужен баланс между качеством и скоростью.
- DoR/DoD как наказание — люди нарушают их в тайне. Лучше это культура, чем правила.
- Забывают обновлять — на первом спринте подходило, но за год требования изменились. Нужен ревью каждый квартал.
- Разные DoD для разных историй — создаёт путаницу. Один DoD для всей команды.
Вывод: Definition of Ready и Definition of Done — это якоря качества, которые помогают команде двигаться быстро и надёжно. Без них Agile становится хаосом.