День 2648. #ProjectManagement
Как Проваливаются Разработчики ПО. Продолжение
Начало
Эпоха агентской разработки
ИИ-агенты меняют подход к разработке. Они позволяют писать, тестировать, рефакторить и развёртывать код с минимальным участием человека. Перспективы огромны: значительное повышение продуктивности разработчиков, снижение трудозатрат, ускорение итераций. Больше кода быстрее. Но ИИ-агенты не меняют существующие виды проблем, они их усиливают.
Агенты хорошо умеют создавать вещи неправильно
ИИ-агенты могут быстро генерировать большие объёмы неверного кода:
- Вносить скрытые уязвимости безопасности, которые трудно обнаружить при проверке кода;
- Писать код, который выглядит корректно, но имеет ошибки в крайних случаях;
- Исполнять заявленные требования, игнорируя подразумеваемые ограничения;
- Уверенно выдавать некорректные результаты («галлюцинации»).
Преимущество ИИ-агентов в скорости означает, что если контроль качества отсутствует, вы можете накопить гораздо больше технического долга и гораздо больше ошибок за то же время. Как никогда необходимы тесты, проверка кода (человеческая и автоматизированная) и надёжные конвейеры CI/CD. Быстрая поставка — это преимущество только в том случае, если то, что вы выпускаете, работает.
Многие команды, оценивая, как и в какой степени ИИ-агенты вписываются в их модели разработки, занимаются добавлением защитных механизмов для предотвращения перечисленных выше проблем. Добавляют больше тестов. Добавляют навыки и инструкции, указывающие агенту, что код должен компилироваться, а тесты должны проходить. Создают отдельных агентов для написания кода, тестирования, проверки и многого другого. Многие из этих усилий могут быть эффективными, хотя часто ценой гораздо больших затрат на токены.
Агенты хорошо умеют создавать не то, что нужно
Тут начинаются настоящие опасности. ИИ-агенты оптимизированы для выполнения инструкций. Они будут создавать всё, что вы попросите, — быстро и уверенно. Если вы дадите агенту краткое, плохое или несогласованное ТЗ, он выполнит его с поразительной тщательностью. Он может не возражать и не задавать уточняющих вопросов (если только вы не предусмотрели это в рабочем процессе). Он не заметит, что запрошенная функция противоречит уже существующей. Не спросит, действительно ли пользователи этого хотят. Иногда даже не заметит, существует ли уже запрошенная вами функция, а создаст другую, похожую. ИИ-агент, получив расплывчатую или неверную спецификацию, создаст расплывчатый или неверный продукт, просто быстрее, чем это сделал бы человек-разработчик.
Поэтому навыки, помогающие командам создавать правильный продукт, важны как никогда:
1. Чёткие требования и пользовательские истории. Большинство агентов созданы для того, чтобы продолжать работу, пока не почувствуют, что решили проблему. Если у них нет всех деталей, они будут гадать. Так же, как часто делают люди, но без человеческого суждения и с гораздо большей скоростью.
2. Постоянная обратная связь от заинтересованных сторон. Агенты не могут присутствовать на митингах. Людям по-прежнему необходимо собирать и анализировать обратную связь и корректировать направление.
3. Экспертные знания в предметной области. Понимание того, почему необходима та или иная функция, помогает выявлять несоответствия до того, как они будут заложены в тысячи строк сгенерированного кода.
4. Продуктовое мышление. Способность задавать вопрос «Стоит ли вообще это делать?» — это (сегодня) уникальный человеческий навык, и его ценность постоянно растёт.
Окончание следует…
Источник: https://ardalis.com/how-software-developers-fail/
Post #3175
1.79K
- 👍 4
- 👎 1