Definition of Done (DoD)

16 сентября 2026 · ~12 мин чтения

agile scrum процесс менеджмент команда

Definition of Done (DoD)

Definition of Done (определение готовности) — заранее согласованный командой список условий, всем которым должен удовлетворять результат работы (фича, задача, релиз), чтобы считаться завершённым, а не «почти завершённым».

История

Корни DoD — в Extreme Programming (XP, «экстремальное программирование»), методологии, которую в конце 1990-х собрал Кент Бек (Kent Beck) на проекте Chrysler Comprehensive Compensation System. XP-команды столкнулись с классической болезнью разработки: разработчик говорит «готово», а через неделю выясняется, что код не покрыт тестами, не задокументирован или ломается в интеграции с чужим модулем. У каждого в голове было своё «готово».

Явную формулировку идеи как отдельной практики связывают с обсуждениями в agile-сообществе начала 2000-х — в частности, с книгами и статьями Майка Кона (Mike Cohn), одного из отцов-основателей Scrum-школы оценки и планирования («Agile Estimating and Planning», 2005) и с Биллом Вейком (Bill Wake), который в те же годы формулировал похожий по духу чек-лист INVEST для пользовательских историй (это соседнее, но не то же самое понятие — INVEST проверяет, хороша ли формулировка задачи, DoD проверяет, хорош ли результат).

Официальный статус в Scrum термин получил, когда Кен Швабер (Ken Schwaber) и Джефф Сазерленд (Jeff Sutherland) — соавторы самого Scrum — включили его в Scrum Guide. По разным источникам, явный текст про «Increment must meet the Definition of Done» закрепился в редакциях документа примерно к 2011 году, хотя сама практика к тому моменту уже несколько лет использовалась командами явочным порядком. С тех пор Scrum Guide регулярно обновляется (последняя крупная редакция — 2020 год), и DoD в нём остаётся одним из трёх формальных «обязательств» (commitments), наравне с целью спринта и целью продукта.

Важно: DoD — не изобретение одного человека и не стандарт с фиксированной датой рождения, как, скажем, TCP/IP. Это выкристаллизовавшаяся практика, которую сообщество agile-практиков сформулировало коллективно, отвечая на одну и ту же боль в разных командах примерно в одно время. Если тебе где-то попадётся точная дата «первого письменного упоминания» — отнесись с осторожностью, единого источника здесь нет.

Сегодня DoD вышла далеко за пределы разработки ПО: её используют дизайн-команды, маркетологи, HR, продуктовые команды в найме — везде, где нужно закрыть спор «это уже готово или нет».

Что это такое

DoD — это чек-лист, а точнее, договор внутри команды: набор проверяемых условий, которым должен соответствовать любой элемент работы (задача, пользовательская история, релиз), прежде чем его можно назвать завершённым. Условия обычно бинарные («да/нет», а не «в целом норм») — это ключевое отличие от расплывчатых критериев вроде «выглядит нормально» или «вроде работает».

Типичный DoD для фичи в разработке ПО может звучать так: код написан и закоммичен; тесты написаны и проходят; код прошёл ревью; документация обновлена; фича задеплоена на тестовый стенд; продакт-оунер посмотрел и принял. Пункты разные в разных командах — это нормально, DoD не стандартизирован извне, его пишет сама команда под свою специфику.

Главное, чем DoD отличается от похожих вещей:

DoD vs Acceptance Criteria (критерии приёмки). Критерии приёмки — это условия для конкретной задачи («кнопка должна менять цвет при наведении», «форма должна отклонять email без @»). DoD — это условия для любой задачи в принципе, независимо от её содержания («код покрыт тестами», «прошёл ревью»). Критерии приёмки пишутся заново для каждой истории, DoD — один на всю команду, меняется редко.

DoD vs Definition of Ready (DoR, «определение готовности к работе»). DoR — это чек-лист на входе в работу («задача описана, оценена, есть макет»), DoD — чек-лист на выходе из работы. Зеркальные понятия: одно защищает от того, что команда начнёт делать непонятно что, второе — от того, что команда бросит недоделанное.

DoD vs QA/тестирование. Тестирование — это один из возможных пунктов внутри DoD, а не синоним. DoD шире: он может включать документацию, деплой, юридическую проверку — всё, что нужно, чтобы результат можно было использовать без доследования.

Зачем это вообще нужно

DoD решает не техническую, а социальную проблему: у слова «готово» в голове каждого человека — свой набор подразумеваемых условий. Без явного списка команда тратит время не на работу, а на выяснение, что значит «готово», уже после того, как кто-то радостно об этом заявил.

Аналогии из жизни

Приёмка квартиры от застройщика. Есть формальный акт приёма-передачи с пунктами: розетки работают, окна не дуют, сантехника подключена, документы на руках. Пока не отмечены все пункты — квартира не считается сданной, сколько бы ни говорил прораб «да там всё готово, заезжай». Где ломается аналогия: в приёмке квартиры чек-лист задаёт закон и типовой договор, а не сама бригада — в DoD команда сама себе пишет правила, и потому может незаметно занижать планку, если никто не следит за дисциплиной.

Рецепт с обязательной проверкой готовности. Стейк «готов», когда внутренняя температура достигла нужного значения — это можно проверить термометром, а не глазом. Пока термометр не показал число — «мне кажется, готово» не считается. Где ломается: у стейка один универсальный, физически измеримый критерий (температура). У задачи в разработке таких критериев обычно несколько разных типов сразу (тесты прошли, документация написана, ревью сделано) — это не одно число, а набор разнородных условий, и часть из них субъективна (например, «код читаемый»).

Техосмотр автомобиля. Машину не выпускают на линию, пока не проверены тормоза, фары, ремни — весь список, а не «на глаз вроде едет нормально». Где ломается: техосмотр статичен и почти не меняется десятилетиями, а DoD команда пересматривает сама, иногда каждый спринт — и если делает это редко или формально, чек-лист устаревает и перестаёт ловить реальные проблемы.

Как это работает

Процесс обычно выглядит так:

  1. Команда договаривается о списке условий — это происходит один раз (на старте проекта или ретроспективе) и редко меняется. Список пишут все вместе, а не один тимлид сверху — иначе пункты не будут восприниматься как обязательные.

  2. DoD фиксируется в общем месте — доске задач, вики, шаблоне тикета. Он должен быть виден всем, а не жить в голове у одного человека.

  3. Перед тем как пометить задачу «готово», исполнитель (или ревьюер) явно проходит по списку. Это может быть чек-лист в тикете, автоматическая проверка в CI (continuous integration, непрерывная интеграция — конвейер, который сам гоняет тесты при каждом коммите), либо отдельный человек/роль, которая утверждает соответствие.

  4. Если хотя бы один пункт не выполнен — задача не «готова», она возвращается в работу. Никаких «готово, но с оговоркой» — это и есть смысл бинарности критериев.

  5. DoD может быть многоуровневым: отдельный DoD для задачи, отдельный — для истории (группы задач), отдельный — для релиза. Например, задача может быть «готова» (код смёржен, тесты прошли), но история — ещё нет, потому что не готовы все задачи внутри неё, а релиз — тем более, потому что нужна ещё и регрессия на проде.

Схематично:

Задача написана → [проверка по DoD] → Готово / Не готово
                          │
                   если не готово
                          │
                          ▼
                  возврат в работу

Отдельный интересный вариант — когда проверку по DoD делает не человек, а другая модель или скрипт (в контексте AI-агентов это особенно актуально, см. раздел «где встретилось у меня»): автоматизированная сверка результата со списком условий, без участия человека на каждом шаге, но с человеком как последней инстанцией на случай спорных случаев.

Где встречается в обычной жизни

Где встречается в IT и бизнесе

Кто пользуется

Практика не привязана к конкретному продукту — это методологическая практика, а не инструмент, который продаёт компания. Используется повсеместно в компаниях, работающих по Scrum или Kanban: от небольших стартапов до Spotify, Google, Microsoft — везде, где команды организованы по agile-принципам. Формально закреплена в Scrum Guide (официальный документ Schwaber и Sutherland, поддерживается через сайт scrumguides.org), на который ссылаются сертифицирующие организации вроде Scrum.org и Scrum Alliance при обучении Scrum Master'ов.

Точных цифр «сколько команд использует DoD» никто не считает — это не измеримый по трафику продукт, а элемент методологии, но по косвенным опросам (State of Agile Report, ежегодное исследование adoption agile-практик) Scrum и его практики, включая DoD, использует, по разным оценкам, большинство команд, заявляющих о работе по agile — вероятно, больше половины.

Альтернативы и конкуренты

Acceptance Criteria без общего DoD. Плюс: гибче, подстраивается под каждую задачу отдельно. Минус: без общего фундамента команда каждый раз заново спорит про базовые вещи вроде «нужны ли тесты» — тратится время на пересогласование очевидного.

Definition of Ready (DoR). Плюс: ловит проблемы на входе, а не на выходе, экономит ещё больше времени. Минус: это не замена DoD, а дополнение — решает другую половину проблемы (что нужно, чтобы начать, а не чтобы закончить).

Неформальная культура доверия («у нас все опытные, сами понимают, что значит готово»). Плюс: не нужно тратить время на бюрократию чек-листов, работает в маленьких и очень сыгранных командах. Минус: не масштабируется — при росте команды или ротации людей быстро выясняется, что «понимание» у всех разное, и накопленный технический долг всплывает внезапно.

Definition of Done + автоматизированные гейты (CI/CD-пайплайны). По сути не альтернатива, а усиление DoD: часть пунктов чек-листа проверяется не человеком, а автоматически (тесты, линтеры, security-сканеры). Плюс: устраняет человеческий фактор и лень. Минус: не всё формализуется в автоматическую проверку (например, «код читаемый» или «логика бизнес-корректна» пока требует человека).

Когда НЕ стоит использовать

Главная ловушка

DoD легко превращается в театр: чекбоксы отмечены, а по факту пункт не выполнен («тесты написаны» — но они пустые заглушки; «ревью пройдено» — но ревьюер посмотрел по диагонали). Формальное соответствие DoD не гарантирует реального качества, если никто не проверяет содержательность самих пунктов.

Связанные понятия

Литература и источники

Где встретилось у меня

Вчера в конвейере обработки футбольных матчей (проект с видеоаналитикой для любительской команды) несколько субагентов подряд подтверждали «DoD пройден» перед сдачей результата дирижёру процесса — каждый этап (разбор половины матча одной из команд, сборка итоговой карточки) заканчивался явной сверкой по чек-листу готовности, причём для части этапов проверку по DoD выполняла отдельная модель, а не сам исполнитель. Это ровно та схема «результат не считается готовым, пока не пройден независимый чек-лист», о которой вся статья.

Краткое резюме