Definition of Ready (DoR) — это входной фильтр: согласованный командой список условий, при которых задачу можно брать в работу. Понятна цель, есть критерии приёмки, нет блокеров, задача оценена и достаточно мелкая. Definition of Done (DoD) — выходной фильтр: список условий, при которых задача реально готова, а не «почти готова». Код написан, ревью пройдено, тесты зелёные, документация обновлена, выкачено. Оба — это общая планка качества на всю команду, а не личное мнение каждого. Они убивают главную болезнь — задачи в состоянии «осталось чуть-чуть» неделями. Аналитик особенно отвечает за DoR: чаще всего именно его работа определяет, готова ли задача войти.
Любимая фраза, которую я ненавижу: «ну там почти готово, осталось чуть-чуть». В одной команде у нас половина доски висела в «почти готово» по две недели. Разберёшься — и каждый под «готово» понимал своё: разработчик считал, что готово, когда код написан; тестировщик — когда проверено; продакт — когда выкачено в прод. Все правы, все спорят, задача стоит. Полечилось это не мотивацией, а одним документом: командным определением того, что значит «готово». С этого дня «почти готово» перестало быть статусом.
DoR и DoD — это два таких документа на двух концах работы. Они звучат как бюрократия, но на деле это просто общий язык: команда один раз договаривается, что значит «можно брать» и «сделано», и перестаёт спорить об этом на каждой задаче.
Definition of Ready: можно ли брать в работу
DoR отвечает на вопрос «готова ли задача войти в спринт». Это входной фильтр перед разработкой: пока задача его не прошла, её не берут, как бы ни хотелось. Смысл — не пускать в работу сырое, потому что сырая задача либо встанет на полпути, либо будет сделана не то.
Типовой DoR — короткий список условий. Он у каждой команды свой, но костяк похож:
- Цель понятна. Ясно, зачем задача и какую проблему решает (то самое «зачем», без которого разработчик не примет ни одного решения на развилке).
- Есть критерии приёмки. Прописаны проверяемые условия, по которым поймём, что задача сделана. Без них непонятно, что вообще считать готовым.
- Нет блокеров. Не ждём чужого решения, доступа, ответа от смежной команды. Всё, что нужно для старта, на месте.
- Оценена. Команда посмотрела и понимает объём — а значит, внутри нет огромного неизвестного.
- Достаточно мелкая. Влезает в спринт. Если не влезает — её сначала декомпозируют.
DoR — это в первую очередь зона аналитика
Посмотрите на список: понятная цель, критерии приёмки, отсутствие неизвестного, нужный размер — это ровно то, за что отвечает аналитик. Если задача не проходит DoR, чаще всего недоделана именно аналитическая часть. Поэтому DoR — это, по сути, ваш личный чек-лист «отдал ли я задачу в работу в нормальном виде или подкинул разработчику головоломку». Критерии приёмки здесь — ключевой пункт, про них отдельно в записи user story и критерии приёмки.
Definition of Done: что значит «готово»
DoD отвечает на вопрос «можно ли сказать, что задача сделана». Это выходной фильтр: пока задача его не прошла, она не «готова», даже если код написан и «вроде работает». Смысл — чтобы «готово» значило одно и то же для всех, а не зависело от того, кого спросить.
Типовой DoD тоже список, и он шире, чем кажется новичку — «написал код» это только первый пункт:
- Код написан и соответствует критериям приёмки задачи.
- Код-ревью пройдено — другой разработчик посмотрел и согласовал.
- Тесты написаны и зелёные — автоматические проверки на месте и проходят.
- Протестировано — тестировщик прошёл по критериям приёмки, включая ошибки и граничные случаи (как это устроено — в записи про тестирование для аналитика).
- Документация обновлена — если поменялся контракт API или поведение, это отражено.
- Выкачено — изменения доехали до нужного окружения (стенд или прод).
Ключевая мысль: «готово» — это не «разработчик закончил печатать». Между «код написан» и «пользователь этим пользуется» лежит половина списка выше, и пропуск любого пункта — это и есть то самое «почти готово», которое потом всплывает багом в проде.
Чем DoR отличается от DoD
Их легко перепутать по названию, но это два разных шлагбаума на разных концах работы. Сведём в таблицу.
| Definition of Ready | Definition of Done | |
|---|---|---|
| Когда применяется | До старта работы (вход) | После работы (выход) |
| Отвечает на вопрос | Можно ли это брать? | Это действительно сделано? |
| Что проверяет | Готовность требований к разработке | Готовность результата к выпуску |
| Главный ответственный | Аналитик (постановка задачи) | Команда целиком |
| Что ловит | Сырые, недодуманные задачи | Задачи в состоянии «почти готово» |
Простая мнемоника: DoR — это про то, что задача готова войти, DoD — про то, что результат готов выйти. Вход и выход одного и того же конвейера.
Кто за что отвечает
Оба определения — командные: их пишут и согласовывают вместе, иначе планка снова станет личным мнением каждого. Но акценты разные.
За DoR в первую очередь отвечает аналитик, потому что готовность задачи к работе — это в основном готовность требований: цель, критерии приёмки, отсутствие неизвестного, нужный размер. Если в работу регулярно уходит сырое — это сигнал, что аналитик пропускает свой шлагбаум.
За DoD отвечает вся команда, потому что «готово» собирается из вкладов всех ролей: код от разработчика, проверка от тестировщика, ревью от другого разработчика, выкатка от девопса. Аналитик здесь не главный, но участвует — например, его критерии приёмки и есть та линейка, по которой тестировщик меряет «протестировано».
Чек-лист, который не соблюдают, хуже, чем его отсутствие
Самая частая ошибка — написать красивый DoR/DoD, повесить на стену и забыть. Тогда он только раздражает: формально есть, фактически игнорируется. Определение работает, только если команда реально не берёт задачу без DoR и реально не закрывает без DoD. Лучше короткий список из трёх пунктов, который соблюдают, чем идеальный из пятнадцати, который обходят. Начните с малого и дополняйте, когда поймаете грабли, на которые наступили.
Зачем это вообще нужно
Без общих определений каждый меряет своей линейкой, и из этого растут три беды. Первая — вечное «почти готово»: задача висит, потому что для одного она сделана, для другого нет. Вторая — работа в корзину: разработчик взял сырую задачу, сделал, а оказалось не то — потому что цель была непонятна на входе. Третья — баги в проде из пропущенных шагов: «забыли протестировать ошибки», «забыли обновить документацию» — ровно те пункты, что должны были быть в DoD.
DoR и DoD лечат всё три одним приёмом — делают планку явной и общей. Это дешёвый инструмент: пара списков, согласованных один раз, экономят команде десятки споров «а это готово или нет».
Откуда это взялось
Оба понятия выросли из Scrum-сообщества. Definition of Done старше и важнее — идея «общего понимания, что значит готово» обсуждалась scrum-практиками ещё в 2000-х, а в официальное руководство по Scrum DoD вошёл позже как обязательный артефакт. Definition of Ready появился как зеркальное дополнение в конце 2000-х — начале 2010-х: команды заметили, что мало договориться про выход, надо договориться и про вход, иначе в спринт сыплется сырьё. Любопытно, что DoR в официальном Scrum Guide так и не закрепили — его считают полезной практикой, но не обязательной, в отличие от DoD. Поэтому в разных командах DoR выглядит очень по-разному, а кое-где его осознанно не вводят, чтобы не превращать вход в бюрократический барьер.
Частые вопросы
Что такое Definition of Ready?
Definition of Ready (DoR) — это согласованный командой список условий, при которых задачу можно брать в работу: понятна цель, есть критерии приёмки, нет блокеров, задача оценена и достаточно мелкая, чтобы влезть в спринт. Это входной фильтр перед разработкой — пока задача его не прошла, её не берут. За DoR в первую очередь отвечает аналитик, потому что готовность задачи — это в основном готовность требований.
Что такое Definition of Done?
Definition of Done (DoD) — это согласованный командой список условий, при которых задача считается действительно готовой, а не «почти готовой»: код написан и прошёл ревью, тесты написаны и зелёные, задача протестирована по критериям приёмки, документация обновлена, изменения выкачены. Это выходной фильтр, и отвечает за него вся команда, потому что «готово» собирается из вкладов всех ролей.
Чем Definition of Ready отличается от Definition of Done?
DoR — это вход: проверка, что задачу можно брать в работу (требования готовы, цель ясна, есть критерии приёмки). DoD — это выход: проверка, что результат готов к выпуску (код, ревью, тесты, документация, выкатка). Мнемоника: DoR — задача готова войти, DoD — результат готов выйти. За DoR в основном отвечает аналитик, за DoD — вся команда.