Назначение
Definition of Done (DoD) — общий чек-лист «готово» для каждой истории. Главный смысл: устранить разное понимание «готово» («у меня работает» ≠ «можно выпускать»). «Почти готово» = не готово. DoD — «выходной фильтр» (в отличие от DoR — «входного»): пока не выполнен, история не закрыта. Один стандарт качества для всей команды.
Подробный шаблон (типовой DoD)
# Definition of Done
История готова, когда:
- [ ] Код написан и соответствует конвенциям проекта.
- [ ] Тесты добавлены и зелёные (юнит + где нужно интеграционные).
- [ ] Code review пройдено.
- [ ] Все критерии приёмки выполнены.
- [ ] Для веб-флоу — браузерный прогон пройден (Playwright).
- [ ] Соседнее не сломано (регресс/проверки зелёные).
- [ ] Документация / release notes обновлены.
- [ ] Смержено / задеплоено.
В Laskoff OS правило жёсткое: verify зелёный + браузер-тест пройден + отчёт = закрыто. Иначе задача не закрыта. Это DoD, встроенный в конвейер.
Пример 1 — DoD выполнен
# История «Сохранение в избранное» — проверка по DoD
- [x] Код по конвенциям, в обёртке IndexedDB-слоя.
- [x] Тесты: добавление/удаление/персист — зелёные.
- [x] Review пройдено (1 замечание исправлено).
- [x] Критерии приёмки: все 4 выполнены.
- [x] Браузерный прогон: клик → избранное → перезагрузка → осталось — ок.
- [x] Регресс поиска/рендера карточек — зелёный.
- [x] Доки обновлены, смержено.
✅ ЗАКРЫТО.
Пример 2 — DoD НЕ выполнен
# История «Автонарезка» — проверка по DoD
- [x] Код написан, работает на демо.
- [ ] Тесты на краевые случаи (короткое видео, сбой STT) — отсутствуют. ❌
- [ ] Браузерный прогон не делался («на веру»). ❌
- [ ] Регресс загрузки видео не проверен. ❌
⛔ НЕ ЗАКРЫТО, несмотря на «работает на демо». Действие: дописать тесты краёв, прогнать в браузере, проверить регресс — затем закрывать.
Чек-лист качества (самого DoD)
- Критерии бинарны (да/нет), без «вроде готово».
- Одинаковы для всей команды (один стандарт).
- Включают проверку, что не сломали соседнее (регресс).
- Для веба — обязательный реальный браузерный прогон.
- Реалистичны и соблюдаются всегда (DoD, который нарушают, бесполезен).
Частые ошибки
- «Работает у меня» = готово. → DoD требует тестов, ревью, браузерного прогона, регресса.
- «Почти готово». → Бинарно: либо все пункты, либо не закрыто.
- Пропустили регресс. → «Починил одно — сломал другое»; проверь соседнее.
- DoD для галочки. → Если систематически нарушают, качество падает; соблюдать всегда.
- Путают с DoR. → DoD — на выходе (можно закрывать), DoR — на входе (можно начинать).