Ответ
Definition of Ready (DoR) и Definition of Done (DoD) — это два критических соглашения в Agile, которые определяют качество работы на разных этапах.
Definition of Ready (DoR)
Критерии, которым должна соответствовать задача (User Story), прежде чем команда возьмет её в работу.
Цель: Убедиться, что задача понятна, реализуема и готова для эффективной разработки. Это входной фильтр.
Типичные критерии DoR:
- ✅ Требования четко сформулированы и приняты Product Owner.
- ✅ Критерии приемки (Acceptance Criteria) определены и измеримы.
- ✅ Задача оценена (стори поинты или часы).
- ✅ Дизайн/макеты готовы (если применимо).
- ✅ Зависимости от других задач или команд выявлены и разрешены.
- ✅ Задача может быть выполнена одним спринтом.
Definition of Done (DoD)
Список обязательных действий, которые должны быть выполнены, чтобы задача считалась полностью завершенной и готовой к поставке.
Цель: Гарантировать целостность и качество инкремента продукта. Это выходной фильтр.
Типичные критерии DoD:
- ✅ Код написан и соответствует стандартам команды.
- ✅ Код прошел ревью (peer review).
- ✅ Все автоматические тесты (unit, integration) написаны и проходят.
- ✅ Ручное тестирование (QA) завершено успешно.
- ✅ Код замержен в основную ветку (main/master).
- ✅ Документация (комментарии, README) обновлена.
- ✅ Функциональность развернута на staging-окружении (если применимо).
Ключевое отличие
- DoR проверяется ПЕРЕД началом работы над задачей в спринте. Если DoR не выполнен, задача не берется в бэклог спринта.
- DoD проверяется ПОСЛЕ завершения работы. Если DoD не выполнен, задача не считается сделанной, даже если код написан.
Ответ 18+ 🔞
А, слушай, про эти ваши DoR и DoD! Ну, это ж классика, как «Муму» у Тургенева, только без утопления собаки, но с тем же драматизмом, блядь.
Вот представь картину: стоит команда, как Герасим немой, и смотрит на кучу задач. А задачи эти — как те щенки, непонятно, живые или нет. Так вот, Definition of Ready (DoR) — это как проверка, блядь: а дышит ли этот щенок-задача вообще? Можно его в работу брать, или он ещё соплей обмазан?
DoR — это входной фильтр, ёпта. Чтоб не получилось как в той истории: «О, задача простая!» — начинаем делать, а там, сука, дизайнов нет, требования — пизда полная, а от другой команды жди ответа до второго пришествия. DoR говорит: «Мужики, стопэ. Эта история готова к тому, чтобы её ебашить?».
Типичные критерии DoR, на которые надо смотреть, как ядрёна вошь:
- Требования не просто написаны, а их Product Owner прочитал и не сказал «чё за хуйню вы тут написали?».
- Критерии приемки есть, и они не «ну чтобы работало», а конкретные шаги, которые можно проверить. «Кнопка должна быть зелёной» — это критерий. «Кнопка должна вызывать чувство глубокого удовлетворения» — это, блядь, уже не критерий, а пиздёж.
- Задачу оценили. Не «ой, да это на полчаса», а по-честному, с обсуждением.
- Дизайн готов. Не «в голове у Васька есть», а в Фигме, чтоб тыкать пальцем.
- Зависимости выявлены. Не «ой, а мы и не знали, что бэкенд ещё про это не думал!».
- Задача влезет в спринт. Не такая, что «перекинется на следующий», а именно сделается. А то вечный «овердохуища работы на два спринта в один запихнули».
Если хоть один пункт — хуй, а не пункт, задача в спринт не идёт. Всё. Как Герасим сказал бы: «Мууу» (в смысле, «нет»).
А теперь, Definition of Done (DoD) — это уже трагедия в финале, но со счастливым концом, если всё сделать правильно. Это когда ты уже вроде всё сделал, код написал, но задача — не сделана. Потому что DoD — это священный список «а что ещё надо сделать, чтоб не было стыдно».
DoD — это выходной фильтр, ёбаный в рот. Это когда ты не можешь сказать «я сделал», пока не выполнил ВСЁ из списка. Иначе это как сказать «я постирал», а вещи в стиралке мокрые лежат, сука.
Типичные критерии DoD, без которых — пиздец и позор:
- Код написан? Написан. А стандарты кода соблюдены? Или там один сплошной говнокод, как после бурной ночи?
- Код прошёл ревью? Не просто «Васька глянь», а нормально, с комментами.
- Тесты написаны и проходят? Все, блядь, а не только один, который ты запустил, чтоб совесть отделать.
- Ручное тестирование пройдено? QA не нашёл багов, от которых глаза на лоб лезут?
- Код в основной ветке? Не валяется в какой-то левой ветке, про которую все забыли.
- Документация обновлена? Чтоб через месяц не гадать, что эта функция делает и зачем ей параметр
isFucked. - На staging задеплоено (если надо)? Чтоб показать заказчику не скриншот, а реально работающую хрень.
Так в чём разница, блядь? Она же очевидна!
Представь себе спринт — это такой забег.
- DoR — это проверка на старте: а кроссовки ты надел? А номер прикрепил? А маршрут изучил? НЕТ? НАХУЙ ИДИ, НЕ ГОТОВ.
- DoD — это проверка на финише: а дистанцию всю пробежал? А чип финишный зарегистрировал? А не срезал путь через кусты? НЕТ? НЕ ЗАСЧИТАНО, ИДИ ДОБЕГАЙ, ПИДОРАС ШЕРСТЯНОЙ.
DoR — это «готовы ли мы начать?». DoD — это «точно ли мы закончили?».
Если DoR — хуйня, то начинаешь делать непонятно что, и спринт превращается в ад, где все орут друг на друга. Если DoD — хуйня, то вроде как сделали, а продукт — сырой, бажный кусок говна, который нельзя показывать людям.
Вот и вся философия, блядь. Два простых списка, которые спасают от хаоса и чувства глубокого профессионального неудовлетворения. А без них — это как Герасим без Муму: вроде сила есть, а нихуя не можешь объяснить.