Почему разработчики продолжают писать код руками?

Представьте, вам нужно составить какой-то большой текст, где нужно подумать, собрать информацию, проанализировать. Затем написать сам текст, вычитать его, исправить ошибки и улучшить формулировки. Вы тратите на эту работу например 10 часов. Теперь вам нужно перевести этот готовый текст на другой язык, который вы тоже очень хорошо знаете. Вы можете перевести его сами или воспользоваться автоматическим переводчиком. В первом случае вам нужно переводить каждое предложение вручную, подбирать лучшие идиомы, чтобы текст звучал нативно для носителя языка. Количество времени для перевода растёт пропорционально размеру текста. Но если вы воспользуетесь автоматическим переводчиком, вы получите перевод за несколько секунд. Вам останется только вычитать текст и поменять в нём некоторые слова, которые были переведены неправильно. Время интеллектуальной работы при составлении текста в десятки раз больше механического перевода.

Еще пример. Вы решили переписать большой проект с C++ на Rust или с PHP на TypeScript. Вы продумываете план рефакторинга, выбираете фреймворки и библиотеки, составляете порядок переписывания модулей, думаете как будете переносить тесты и обновлять документацию. У вас появляется полная картина того, как это будет выглядеть в итоге. Теперь остаётся рутина — само написание кода, следуя плану. Вы можете написать каждую строчку кода вручную или дать задачу по выполнению плана ИИ агенту. Срок миграции кодовой базы может различаться в десятки или даже сотни раз.

Да, перевод готового текста и рефакторинг готовой кодовой базы — это не создание новых проектов. Но в чём отличие? Ведь в новых проектах мы перед написанием кода также продумываем план реализации, обсуждаем с ИИ варианты решения задачи, принимаем много мелких решений. До написания кода мы уже примерно понимаем, какой это будет код, какие модули, какое покрытие тестами. Если мы не можем продумать весь проект, то мы начинаем с продумывания только нескольких модулей, а после их реализации переходим к следующим модулям. Но мы всегда сначала продумываем реализацию и принимаем решения, а уже потом пишем код. Так же, как и перед переводом текста на другой язык, мы сначала составляем сам текст. Перевод текста с одного естественного языка на другой — это такая же рутинная работа, как перевод с естественного языка на язык программирования.

Некоторые люди до сих пор не верят в то, что ИИ способен ускорить написание кода в несколько раз. Хотя они уже не удивляются тому, что ИИ в обычном чате может создавать осмысленный структурированный текст за секунды. С графиками, картинками, списками, таблицами. Но когда речь заходит о написании кода, у людей появляются сомнения в ускорении процесса.

Другие верят в ускорение, но задаются вопросом: если наша эффективность вырастет в 10 раз, бизнес не будет нам платить в 10 раз больше, так ведь? Зачем тогда повышать свою эффективность?

Но мы живём в капиталистическом мире. Мы должны эффективно работать не только для повышения своего дохода, но и просто для того, чтобы нас не уволили. ИИ может даже не увеличивать доход бизнеса, но он точно повысит объём видимой работы, которую может проверить ваш руководитель.

У бизнеса не всегда будут хорошие времена, когда он может держать неэффективных сотрудников. Рано или поздно настанет такой момент, когда нужно будет кого-то уволить. Если другие сотрудники с помощью ИИ пишут больше строк кода, делают больше коммитов, закрывают больше задач, а ваша эффективность не меняется, то вы будете первым в списке на увольнение.

Вы можете быть не согласны с тем, что нужно оценивать сотрудников по количеству строк кода, коммитов или сожжённых токенов. И здесь у вас есть 3 варианта: попытаться убедить руководство принять вашу точку зрения, смириться с их подходом или уволиться и найти другую компанию, где оценивают сотрудников по другим параметрам.

Если вы попытаетесь оспорить подходы руководства компании, я могу пожелать вам только удачи, но скорее всего удача будет не на вашей стороне и вас уволят. Система не любит тех, кто пытается её изменить. Если выберете вариант смены работы, то ваша жизнь снова превратится в череду случайных обстоятельств и стресса, и возможно подходящую работу вы будете искать несколько лет.

Остаётся только принять требование бизнеса о том, что сотрудники должны использовать ИИ для повышения своей эффективности. А это значит, вы должны писать больше кода, больше комитить и закрывать больше задач. При этом зарплату вам не повысят.

Часто скептики аргументируют тем, что код станет неподдерживаемым, вырастет техдолг, программист не будет видеть всю систему целиком, не сможет сам исправить баги или поменять что-то в коде.

И ведь такие аргументы дают даже молодые люди 25-30 лет, при этом у некоторых из них уже много лет опыта в разработке. Это не люди среднего возраста, которые привыкли к ручному написанию кода и не хотят что-либо менять в жизни. Это молодые специалисты, которые как мне казалось должны быть открыты новому опыту.

Если я ставлю ИИ агенту задачи, принимаю решения по архитектуре, делаю ревью кода и проверяю все тесты, то как можно говорить о том, что я не понимаю код проекта? Ведь ИИ пишет точно такой же код, который я бы написал сам. А если я целый год не открывал проект, то тут вообще без разницы кто писал код: я, другой человек или ИИ агент. Код будет непонятным без прочтения документации. Придётся вспоминать, что и зачем было сделано.

Еще одна причина отказа состоит в том, что ИИ пишет больше бесполезного кода, который даже не относится к задаче. И это для них является веской причиной, чтобы писать весь код вручную. Хотя всё, что нужно, — это просто попросить ИИ агента проверить код и убрать из него всё лишнее. Вам даже не нужно сразу делать ревью кода после выполнения задачи. Сначала попросите ИИ агента сделать ревью, затем исправить ошибки, затем снова ревью и снова исправление. Если не хотите каждый раз просить его об этом, он может сам это делать в цикле. Один субагент пишет код, другой делает рефакторинг, третий делает ревью, четвёртый исправляет ошибки. Вы можете настроить любую последовательность. С очень большой вероятностью после этого цикла в проекте не останется бесполезного кода.

Но ведь мы тогда разучимся писать код и вообще не сможем поддерживать проекты. Но зачем нам в будущем понадобится вручную поддерживать проекты? Такой вариант надо рассматривать, если мы предполагаем, что ИИ пузырь лопнет, провайдеры повысят цены в сотни раз, а ИИ с открытыми весами перестанут развиваться. Но уже сейчас вы можете настроить домашний сервер, поднять какой-нибудь Qwen и не зависеть от платных провайдеров. И при правильном использовании код будет таким же, как при использовании Claude или GPT.

Так почему же люди хотят делать рутинную работу, которую ИИ агент может сделать автоматически?

Подписаться