Разработка на основе доказательств
Отсутствующая дисциплина в инженерии на основе ИИ
Команды внедрили инструменты ИИ-кодирования, наблюдали краткосрочные скачки скорости, а затем платили налог за проверку позже при отладке, регрессиях и производственных инцидентах.
Разрыв не в поколениях. Разрыв тому подтверждение. Разработка, основанная на фактических данных, превращает этот пробел в повторяемый рабочий процесс с явными воротами.
Петля
Модель проста: определить намерение, доказать наличие пробелов, определить базовый уровень, реализовать, доказать успешность, получить результат и проверить параметры качества перед проверкой.
Критическим ограничением является последовательность. Шаги перед внедрением создают надежность; шаги после реализации создают доверие.
| Фаза | Что происходит | Почему это важно | | --- | --- | --- | | Документ | Напишите, что означает «сделано», перед реализацией. | Предотвращает дрейф требований и расплывчатые критерии успеха. | | Тест: провал | Определите и запустите тесты, которые докажут существование пробела. | Подтверждает, что вы тестируете поведение, а не предположения. | | Захват: До | Запишите исходные результаты, прежде чем приступать к реализации. | Предоставляет неоспоримые доказательства для рецензентов и будущих аудитов. | | Реализация | Примените изменения с помощью ИИ в условиях ограничений. | Исполнение остается быстрым, а планка остается определяемой человеком. | | Тест: Пройден | Запустите целевые тесты и убедитесь, что поведение прошло успешно. | Подтверждает изменение, решает точные критерии приемки. | | Захват: После | Соберите эквивалентные артефакты после изменений. | Включает очистку до/после сравнения. | | Проверить | Аудит безопасности, доступности, производительности, документации и отклонений. | Улавливает только тесты режимов отказа. | | Обзор | Рецензент-человек принимает или отвергает на основании доказательств. | Отчитывается перед инженерами, а не подсказывает. |
:::графическое имя: ImplementationLoopDiagram подпись: Цикл реализации: ограничения, определяемые человеком, выполнение с помощью ИИ. :::
| Etap | Chto proishodit | Pochemu eto vazhno |
|---|---|---|
| Document | Напишите, что означает «сделано», перед реализацией. | Предотвращает дрейф требований и расплывчатые критерии успеха. |
| Тест: провал | Определите и запустите тесты, которые докажут существование пробела. | Подтверждает, что вы тестируете поведение, а не предположения. |
| Захват: До | Запишите исходные результаты, прежде чем приступать к реализации. | Предоставляет неоспоримые доказательства для рецензентов и будущих аудитов. |
| Implement | Примените изменения с помощью ИИ в условиях ограничений. | Исполнение остается быстрым, а планка остается определяемой человеком. |
| Тест: пройти | Запустите целевые тесты и убедитесь, что поведение прошло успешно. | Подтверждает изменение, решает точные критерии приемки. |
| Захват: После | Соберите эквивалентные артефакты после изменений. | Включает очистку до/после сравнения. |
| Verify | Аудит безопасности, доступности, производительности, документации и отклонений. | Улавливает только тесты режимов отказа. |
| Review | Рецензент-человек принимает или отвергает на основании доказательств. | Отчитывается перед инженерами, а не подсказывает. |
Прежде чем доказательства станут необратимыми на практике
Теоретически команды могут восстановить базовый уровень после начала реализации, но почти никто этого не делает. Импульс смещается в сторону движения вперед.
Вот почему отсутствие предшествующего доказательства рассматривается как условие сброса в дисциплинированных циклах.
:::графическое имя: MaturityLadder подпись: Модель зрелости: специальная разработка, проверенная аудитом. :::
Audit: desyat izmereniy
| Izmerenie | Chto obnaruzhivaet |
|---|---|
| Build | Компиляция, проверка и целостность пакета |
| Telemetry | Утечки личных данных и небезопасные полезные данные журналирования |
| Accessibility | Ориентиры, порядок клавиатуры, иерархия заголовков |
| Security | Секреты, риск внедрения, недостатки зависимостей |
| Performance | N+1 путей, неограниченные циклы, утечки памяти |
| Documentation | Спецификация и дрейф реализации |
| Тестовое покрытие | Поведение меняется без соответствующих тестов |
| TODO Долг | Пропущенные последующие действия и неразрешенные заполнители |
| Обработка ошибок | Проглоченные ошибки и утечка внутренних компонентов |
| Многословность ИИ | Избыточные комментарии и ненужные абстракции |
Аудит: десять измерений
| Размерность | Что он ловит | | --- | --- | | Построить | Компиляция, проверка и целостность пакета | | Телеметрия | Утечки личных данных и небезопасные данные журналирования | | Доступность | Ориентиры, порядок клавиатуры, иерархия заголовков | | Безопасность | Секреты, риск внедрения, недостатки зависимостей | | Производительность | N+1 путей, неограниченные циклы, утечки памяти | | Документация | Спецификация и дрейф реализации | | Тестовое покрытие | Поведение меняется без соответствующих тестов | | TODO Долг | Пропущенные последующие действия и неразрешенные заполнители | | Обработка ошибок | Проглоченные ошибки и утечка внутренних компонентов | | Многословность ИИ | Лишние комментарии и ненужные абстракции |
:::графическое имя: AuditRadarChart caption: Состояние аудита до и после проверок на основе фактических данных. :::
Primery dokazatelstv po domenam
| Domen | Do izmeneniy | Posle izmeneniy |
|---|---|---|
| конечная точка API | ответ на завиток с неправильным статусом | ответ завитка с ожидаемым статусом и схемой |
| Миграция базы данных | Запрос перед миграцией | Запрос, показывающий новые столбцы и заполненные значения |
| Infrastructure | Текущий плановый результат | Желаемый план и применение результатов |
| Performance | Базовый показатель | Разница в тесте после оптимизации |
| Патч безопасности | Поиск сканера | Отчет об очистке сканера |
Бремя доказательства в запросах на включение
Источники
- Кент Бек (2025) Расширенное кодирование: за пределами флюидов
- ThoughtWorks (2025) Разработка с использованием искусственного интеллекта
- METR (2025) Инструменты искусственного интеллекта сделали опытных разработчиков на 19% медленнее
- Адди Османи (2026) ИИ пишет код быстрее. Ваша задача — доказать, что это работает.
- Майкрософт .NET (2026) Десять месяцев с агентом кодирования Copilot в dotnet/runtime