Дыра «готово»: зелёные тесты — ещё не доказанная поставка
«Готово, все тесты проходят». Я прочитал эту фразу от агента раз двести. Примерно в каждом пятом случае это было неправдой.
Не потому что агент врёт. Потому что «готово» — это слово, а не факт. Агент искренне считает задачу закрытой, когда тесты зелёные. Но зелёные тесты отвечают только на один вопрос из четырёх.
Четыре разных вопроса
• Работает ли деталь сама по себе? • Не залезла ли она на территорию соседнего модуля? • Стыкуется ли с остальным приложением по контрактам? • Не нарушает ли правил окружения: логи, секреты, лимиты?
Положительный ответ на первый ничего не говорит про остальные. Модуль журнала пишет корректно — а CLI возвращает неверный код выхода. Приложение работает — а данные одной группы видны другой.
Типичные фиктивные «готово»
• тест есть, но не проверяет требование; • флаг «покрыто» без перечня, что именно; • «проверил вручную» — комментарий в чате; • задача закрыта, а зависимость под ней — нет.
Цена бездействия
На маленьком проекте вы поймаете это на ревью. На большом — три задачи успеют лечь на непроверенный фундамент, и «доделаем потом» превратится в каскад. У нас это называется налогом на проверку (VerificationTax): «готово» стоит денег. Либо вы платите его сразу и оставляете след, либо платите позже — дороже.
Следующий пост — знакомство с WitnessDone: методологией, где «готово» — это файл, а не слово.
Читайте серию на arhellist.ru.