В чем разница между DoD (Definition of Done) и DoR (Definition of Ready) в методологиях разработки?

Ответ

DoR (Definition of Ready) и DoD (Definition of Done) — это контрольные списки, которые команда QA и разработки использует для управления качеством и предсказуемостью процесса.

Definition of Ready (DoR) — «Готово к работе»

Это критерии, которым должна соответствовать задача (тикет, user story) перед тем, как команда возьмет ее в работу в спринт. Цель — избежать недопонимания и простоев.

Пример критериев DoR для задачи от QA-специалиста:

  1. Требования: Имеется четкое, непротиворечивое описание (User Story с Acceptance Criteria).
  2. Дизайн/Макеты: UI/UX макеты утверждены и доступны.
  3. Техническая ясность: Задача оценена, архитектурные решения обсуждены, зависимости известны.
  4. Готовность к тестированию: Определены тестовые сценарии, известны необходимые тестовые данные и доступ к средам.

Definition of Done (DoD) — «Готово к сдаче»

Это обязательный набор критериев, которые должны быть выполнены, чтобы задача считалась полностью завершенной и потенциально готовой к релизу. Это единый стандарт качества для всей команды.

Пример критериев DoD с точки зрения QA:

  1. Код: Код написан, проходит статический анализ, проверен в code review и слит в основную ветку.
  2. Тестирование:
    • Все acceptance criteria подтверждены.
    • Выполнено функциональное тестирование (позитивные/негативные сценарии).
    • Проведено регрессионное тестирование затронутых областей.
    • Проверена интеграция со смежными системами.
    • Выполнено нефункциональное тестирование (по необходимости): производительность, безопасность, UX.
  3. Документация: Обновлены тест-кейсы, документация для пользователей или API.
  4. Сборка и деплой: Код успешно собран на CI/CD, развернут на тестовой среде и прошел smoke-тесты.

Итог: DoR — это входные критерии для начала работы, DoD — выходные критерии для ее завершения. Их соблюдение помогает команде, и особенно QA, работать эффективно и минимизировать количество дефектов и переделок.

Ответ 18+ 🔞

Слушай, давай разберем эту тему без соплей, как есть. Все эти DoR и DoD — это не просто бумажки для начальства, это реально спасательный круг, чтобы не вышло как всегда: взяли хуйню в работу, а потом неделю сидим и ебёмся с неясностями.

Definition of Ready (DoR) — «Готово к работе» или «Можно уже начинать, а не сосать?»

Это, блядь, такой чек-лист. Если по нему всё ок — задача зрелая, её можно брать в спринт и не бздеть. Если нет — это просто пиздопроёбина, которая всех затормозит. Цель — чтобы не было вот этого вечного «ой, а мы не договорили» и «ой, а дизайна нет».

Чего хочет QA от DoR (чтобы не охуеть потом):

  1. Требования. Чтобы было не просто «сделай красиво», а нормальная User Story с внятными критериями приёмки (Acceptance Criteria). Без этого — доверия ебать ноль, будем гадать на кофейной гуще.
  2. Дизайн/Макеты. Чтобы эти макеты были не в голове у дизайнера, а доступны и, главное, утверждены. А то начнём делать, а потом: «О, тут кнопку надо перенести, это неудобно». Ёпта, ядрёна вошь!
  3. Техническая ясность. Разработчики уже прикинули, как это делать? Зависимости ясны? А то выяснится, что нужен API от команды Васи, а Вася в отпуске до следующего года.
  4. Готовность к тестированию. Сразу понятно, что тестировать, на каких данных и есть ли доступ к нужной среде. Чтобы не получилось, что фича готова, а тестовый стенд лежит или данных нет — сиди, мудак, жди.

Короче, DoR — это фильтр на входе. Не выполнен — задача даже не должна попадать в спринт, иди, допиливай. Экономит всем время и нервы, честно.


Definition of Done (DoD) — «Готово к сдаче» или «Отстаньте все, мы закончили!»

А вот это уже святое. Это не «я код написал, всё, пошёл пить кофе». Это железный список того, что должно быть сделано, чтобы задачу можно было с чистой совестью считать завершённой и хоть сейчас выпускать в прод. Это наш общий стандарт, договорённость на берегу.

Что входит в DoD для QA (иначе ни хуя себе будет):

  1. Код. Он не просто написан. Он прошёл ревью, статический анализ и слит в основную ветку. Не валяется где-то в отдельной ветке «feature/vasya-pupkin-temp».
  2. Тестирование. Вот тут, бля, самое мясо:
    • Все Acceptance Criteria из DoR — подтверждены. То, что хотели, — получили.
    • Сделано полноценное функциональное тестирование: и так работает, и эдак, и если ввести хуйню — упадёт красиво, как и планировалось.
    • Затронутый регресс проверен. Чтобы новая кнопка не сломала логин на сайте.
    • Интеграция проверена. Если мы тянем данные от другого сервиса, то он отвечает, а не показывает 500 Internal Server Error.
    • По необходимости — проверена производительность, безопасность и прочая не функциональщина.
  3. Документация. Тест-кейсы обновлены, если что-то поменялось. Если меняли API — описание к нему тоже. Чтобы через месяц не орать «а как это должно работать?».
  4. Сборка и деплой. Код автоматически собрался на CI/CD, задеплоился на тестовый стенд и прошёл smoke-тест. То есть он вообще живой и дышит.

Итог, чувак:

  • DoR — это «готово, чтобы начать». Не выполнил — даже не суйся, иди додумывай. Это экономит время и убирает волнение ебать в начале спринта.
  • DoD — это «готово, чтобы сдать». Не выполнил — задача не закончена, сиди дальше, допиливай. Это гарантия, что в прод не попадёт сырой, недоделанный пиздец.

Когда и то, и другое работает — команда как часы. Ну, почти. По крайней мере, скандалов на ровном месте становится овердохуища меньше.