Definition of Ready: готовая постановка и её имитация
Задача выглядит описанной, разработчик берёт её в спринт — и через два дня возвращается с вопросом, ответа на который нет ни у кого. Разбираем признаки, по которым это видно заранее.
Definition of Ready вводят как чек-лист: описание есть, критерии есть, макет приложен, зависимости названы. Через пару месяцев чек-лист живёт своей жизнью — галочки проставлены, задача взята, и разработчик всё равно приходит с вопросом на второй день.
Так происходит потому, что чек-лист проверяет наличие артефактов, а готовность — свойство другого рода.
Готовность — это не подробность
Постановка на двенадцать страниц может быть не готова, а на полстраницы — готова. Объём текста ничего не говорит: описание бывает подробным ровно в тех местах, которые автор понимал, и молчаливым там, где не понимал.
Рабочее определение проще формального: задача готова, если разработчик может начать и не задать вам ни одного вопроса, блокирующего работу. Не «ни одного вопроса вообще» — уточнения по ходу нормальны. Блокирующих быть не должно.
Отсюда способ проверки, который не требует чек-листа. Перед тем как отдавать задачу, прочитайте её от лица человека, который не был на обсуждении, и выпишите вопросы, на которые текст не отвечает. Дальше по каждому: можно ли начать работу, не получив ответа. Если хоть один ответ «нет» — задача не готова, сколько бы галочек ни стояло.
Готовность и завершённость — разные списки. Definition of Done описывает, когда работа закончена, и один на все задачи. DoR описывает, когда её можно начать. Их регулярно путают и сводят в один документ, после чего обе проверки перестают работать: на входе спрашивают про тесты, на выходе про макеты.
Признаки имитации
Имитация узнаётся по формулировкам. Ниже — то, что встречается в постановках чаще всего, и то, чем это отличается от готового описания.
| Признак | Готовая постановка | Имитация |
|---|---|---|
| Критерий приёмки | Проверяем и однозначен | «Должно работать корректно» |
| Граница объёма | Сказано, что не входит | Умалчивается |
| Источник данных | Назван и доступен | «Уточним по ходу» |
| Поведение при ошибке | Описано отдельным пунктом | Только удачный сценарий |
| Решение по спорному месту | Зафиксировано, названо чьё | «Обсудили на созвоне» |
Последняя строка коварнее остальных. Устная договорённость ощущается как решение, но через три недели её помнят двое, причём по-разному. Незаписанное решение не отличимо от допущения.
Критерий, который нельзя проверить
Главный источник несогласий на приёмке — критерии, сформулированные как намерения. «Быстро», «удобно», «корректно», «понятно пользователю» проверить невозможно: любая реализация им соответствует или не соответствует в зависимости от того, кто смотрит.
Проверяемая формулировка отвечает на вопрос «что мы измерим и на чём»:
Дано: пользователь с активной подпиской
Когда: срок действия истекает
Тогда: доступ закрывается в течение часа
Здесь видно и состояние до, и событие, и наблюдаемый результат со сроком. Спорить о такой формулировке можно до разработки — и именно в этом её смысл.
Откуда берётся имитация
Причина обычно не в лени. Их три, и все системные.
- Планирование идёт по расписанию, а ответы — нет. Спринт начинается в понедельник, ответ от смежной команды придёт в четверг. Задачу берут, потому что иначе спринт пустой.
- Вопрос выглядит мелким. «Что показывать, если список пустой» кажется деталью оформления, пока не выясняется, что пустой список означает три разных ситуации, и в двух из них надо не показывать, а чинить.
- Спрашивать не у кого. Человек, который знает ответ, недоступен, и его знание заменяется догадкой. Опасна не догадка, а то, что она не помечена как догадка.
На ретроспективе это звучит одинаково из спринта в спринт: «задача была непонятная, но мы не хотели её возвращать».
Что делать, если задачу всё равно берут
Вернуть задачу получается не всегда, и упираться в это бессмысленно. Но взять неготовую задачу можно по-разному.
- Открытые вопросы записать в саму задачу отдельным списком, с датой и с тем, у кого ждём ответ. Не в переписку, не в голову — в задачу, потому что читать её будут тестировщик и тот, кто через месяц разбирает дефект.
- Назвать срок, после которого отсутствие ответа становится решением. «Если до четверга не ответят, делаем по варианту А» — это зафиксированное допущение, и оно лучше молчаливого.
- Развести задачу на готовую и неготовую части, если разрыв проходит по границе. Часто блокирует один сценарий из пяти, а остальные четыре можно делать сегодня.
- Пометить оценку как предварительную. Оценка неготовой задачи — это оценка того, что успели прочитать, и она обязана называться так вслух.
Не превращайте DoR в турникет. Список условий, которым никто не может соответствовать, приводит к тому, что его начинают обходить, а не выполнять. Три работающих пункта полезнее одиннадцати формальных.
Готовая форма для проверки — чек-лист готовности постановки: вопросы по каждому блоку со ссылками на разборы.
Что дальше
Готовность проверяется по тому, есть ли ответы. Следующий вопрос — про то, на что именно эти ответы распространяются: где заканчивается задача и начинается соседняя работа. Об этом в разборе границ.