Что такое Definition of Done?
Комментарии (2)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое Definition of Done (DoD)?
Definition of Done (DoD) — это чёткий, согласованный и измеримый список критериев, которым должна соответствовать любая рабочая единица продукта (например, пользовательская история, задача или функциональность), чтобы считаться полностью завершённой и готовой к передаче заказчику или релизу. Это фундаментальное понятие в гибких методологиях (Scrum, Kanban), которое обеспечивает общее понимание качества и завершённости работы всей командой (разработчики, тестировщики, аналитики, владелец продукта).
Если говорить простыми словами, DoD — это чек-лист для команды. Пока все пункты этого списка не выполнены, задача не может быть помечена как «Готово» (Done). Это предотвращает ситуацию, когда разработчик считает задачу завершённой после написания кода, тестировщик — после прогона тестов, а аналитик — после проверки логики, но в итоге функциональность оказывается неинтегрированной, недокументированной или неразвёрнутой на стенде.
Ключевые цели и преимущества внедрения DoD
- Единое понимание «Готовности»: Устраняет разночтения между членами команды и заинтересованными сторонами. Все знают, что значит «сделано».
- Повышение предсказуемости: Спринт за спринтом команда поставляет функциональность, соответствующую одному и тому же стандарту качества. Это позволяет владельцу продукта надёжно планировать релизы.
- Контроль качества на ранних этапах: Критерии DoD (например, «код проверен коллегой», «прошли все автотесты») встраивают практики обеспечения качества непосредственно в процесс разработки, а не оставляют их на потом.
- Снижение технического долга: Пункты вроде «код рефакторинга», «обновлена документация API» или «устранены нарушения статического анализа» предотвращают накопление некачественного кода.
- Прозрачность и доверие: Заказчик и стейкхолдеры точно знают, что получат продукт, соответствующий всем оговорённым критериям.
Пример Definition of Done для бэкенд-микросервиса
Вот как может выглядеть типичный DoD для команды, разрабатывающей backend-функциональность.
# Definition of Done для пользовательской истории (Пример)
- [ ] **Критерии приемки (Acceptance Criteria)** полностью выполнены и проверены.
- [ ] **Код** написан, соответствует внутренним стандартам оформления (code style).
- [ ] **Проведён код-ревью** как минимум одним коллегой, все замечания исправлены.
- [ ] **Модульные и интеграционные тесты** написаны, проходят успешно (покрытие >80%).
- [ ] **Статический анализ кода** (SonarQube, ESLint) не показывает новых критических нарушений.
- [ ] **Ручное тестирование** проведено тестировщиком на тестовом стенде, баги исправлены.
- [ ] **Документация** обновлена: README, Swagger/OpenAPI-спецификация, комментарии к публичным методам.
- [ ] **Функциональность развёрнута** на staging-окружении и интегрирована со смежными сервисами.
- [ ] **Нефункциональные требования** (производительность, безопасность) проверены.
- [ ] **Артефакты сборки** (docker-образ) загружены в реестр, версия протегирована в Git.
Как работать с DoD на практике: роль Project Manager / Scrum Master
- Создание и эволюция: PM/Scrum Master фасилитирует workshop по созданию первого варианта DoD. Важно, чтобы его выработала вся команда, а не спустило сверху руководство. DoD — это живой документ, который регулярно пересматривается (обычно в конце спринта на ретроспективе) и улучшается.
- Соблюдение и напоминание: PM следит, чтобы команда не «проскальзывала» мимо критериев под давлением дедлайнов. Он задаёт вопросы: «Эта история соответствует нашему DoD? Все ли пункты выполнены?».
- Визуализация: DoD должен быть всегда на виду — на вики-странице, на доске в Confluence, висять на стене в командном пространстве.
- Разрешение конфликтов: Если возникают разногласия по трактовке критериев, PM помогает команде прийти к консенсусу и при необходимости уточнить формулировки.
Отличие DoD от Критериев Приемки (Acceptance Criteria)
Это частый источник путаницы.
- Acceptance Criteria (AC) — это специфичные для конкретной пользовательской истории условия, описывающие что должно делать приложение с точки зрения пользователя. («Когда пользователь нажимает кнопку "Сохранить", система показывает сообщение "Успешно"»).
- Definition of Done — это общие для всех историй в проекте технические и процессуальные критерии, описывающие как и в каком качестве работа должна быть выполнена. (Код отревьюен, протестирован, задокументирован).
Итог: Definition of Done — это не формальность, а мощный инструмент управления качеством и ожиданиями. Он превращает расплывчатое понятие «готово» в объективную, измеримую реальность, что является краеугольным камнем успешной и предсказуемой ИТ-разработки. Без чёткого DoD команда рискует постоянно накапливать «почти готовую» работу, что в итоге приводит к срывам сроков, низкому качеству продукта и недовольству заказчика.