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