Критерий приёмки нужен до того, как команда начинает работу. После появления результата команда рискует заменить им исходную цель и объяснять, почему уже сделанное можно принять.

Представьте задачу: добавить повторную отправку платежа после сетевого сбоя. Разработчик реализовал три попытки с интервалом в секунду. Тесты проходят, код работает, задача закрыта.

Но какую проблему должна была решить повторная отправка?

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

Команда могла реализовать повторы идеально и всё равно не решить пользовательскую задачу.

До начала работы полезно разделить три уровня проверки.

Первый уровень: завершение. Код написан, файлы созданы, обязательные поля заполнены, команда может запустить тестовый контур.

Критерий приёмки нужен до того, как команда начинает работу. После появления результата команда рискует заменить им исходную цель и объяснять, почему уже сделанное можно принять | Сетка — социальная сеть от hh.ru