Комментарии 30
Никто в прод не запустит код без проверки. У любого кода должен быть "крайний". Кто ответит, если что. Значит надо будет проверять. Проверять построчно. Тогда в чем выгода? Когда сам пишешь, то хотя бы логику понимаешь.
Когда сам пишешь, то хотя бы логику понимаешь
Да-да, в роли продакта я много раз слышал эту сказку. А потом спрашиваешь кодера, который код писал "почему не работает", а в ответ стандартное: "ну смотреть надо, разбираться"...
Ну так любой кодер подтвердит, что это по дефолту так) Сам через неделю сидишь и думаешь - что я тут понаписал :D
Да-да, в роли продакта я много раз слышал эту сказку.
У вас классическое непонимание происходящего. Дело в том что вы продакт, а не программист. Для вас ИИ это серебрянная пуля, а для разработчика это излишне ретивый джун, который пишет код не приходя в сознание. Причем, если он ошибется, ответственным будет разработчик, а не вы или ИИ, т.к. у вас обоих лапки.
Если вы так уверенны в своей правоте, проведите эксперимент: на месяц сделайте себя ответственным за ошибки которые произойдут по вине кода написанного ИИ. И пусть разработчики не сдерживают себя, максимально слопают код не пытаясь разобраться в результирующем коде и выкатывают как есть.
Вряд ли при таких вводных эксперимент продержится месяц, а вы, на своей позиции в компании.
Поэтому и получается, что на словах у вас дивный новый мир, а на деле леща в рассуждениях статьи стоит урезать.
Я не ллудит, сам использую ИИ каждый день и правильно умею его готовить, ведь я внедряю его в различные бизнесс-процессы компаний. Но мне и в голову не придет использовать получившийся код без проверки "методом прищуренного глаза" и обмазывания его тестами.
А потом спрашиваешь кодера, который код писал "почему не работает", а в ответ стандартное: "ну смотреть надо, разбираться".
Это неправильный ответ. В случае если что-то из сданого функционала не работает, правильный: "уже смотрю, через 30 минут отпишусь хотя бы примерно, в чем проблема". Таких - ответственных - специалистов LLM не заменит. Причем в этом нет ничего из ряда вон выходящего, человек отчитался что сделал задачу, оказалось задача не готова - нужно исправлять, иногда даже если за окном вечер пятницы.
А как тогда работают тимлиды и техлиды, которые не пишут код?
У них в команде есть программисты, которым они ставят задачи и делают ревью их кода. При этом за баги в проде отвечает тимлид, а не рядовой разработчик.
Получается для тимлида нет выгоды от этих программистов, потому что ему приходится проверять код построчно? И он не может понимать логику этого кода, потому что он не писал этот код?
Ну вообще тимлид не занимается ревью как правило. У него другие задачи. Ревью делают сеньоры и техлиды.
И на ревью большей частью проверяются паттерны разработки и соответствие нефункциональным требованиям.
Так в чем моя логика нарушена? Кодер крайний для техлида. Техлид перед главным менеджером продукта крайний. А вот ЛЛМ не может быть крайней ни на каком этапе.
Получается тот кто крайний, должен выполнять рутинную работу по написанию кода? Если человек отвечает за код, то он должен набрать каждую строчку этого кода? Он не может делегировать это ИИ агенту, проверить его работу и нести ответственность за этот код, даже если он его не писал?
За других не отвечу, но за себя могу. Я начальник отдела и не пишу бизнесовый код в большинстве случаев, в некоторых командах выступаю как раз за того, кто за все отвечает. Суть очень простая: я могу разобраться в любом сервисе написанной командой очень быстро, потому что знаю по каким принципам он написан и участвовал в проработке на уровне бизнес и системного анализа. Я не ревью код, но его ревьюят те, кого я научил, и я знаю, что они не дадут остальной команде нарушить принципов его построения. Уточню, на всякий случай, когда я пишу, что я могу разобраться, это означает, что это делал за последний год несколько раз: всегда бывают авралы, кто-то заболел, кто-то ушел в отпуск, а выкатить надо срочно - тогда я подключаюсь на недельку-другую размять пальцы. Могу ли я заменить рядовых сотрудников LLM? Возможно да, но это не точно. Могу ли я заменить тех кто ревьюит? Точно нет. Я не настолько краток, чтобы уместить в один файл skills.md то, чему учил людей по 5-7 лет.
Один из самых ценных комментов тут. Особенно последняя фраза
Я бы не стал заменять рядовых сотрудников LLM. Это обычно делают руководители, которые только недавно познакомились с ИИ, увидели в них быстрое выполнение задач и под этой эйфории уволили всю команду. Я бы в этом случае дал LLM каждому рядовому сотруднику, чтобы его эффективность выросла. И не нужно заменять тех, кто ревьюит. Каждый человек может остаться при своей должности или роли.
Причём, skills.md на разных моделях работают по разному
На то, чтобы объяснить ИИ все тонкости сложной бизнес-логики порой времени уходит больше, чем написать эту логику самому. Особенно, если знаешь предметную область и хорошо владеешь инструментом реализации.
А после ИИ все равно надо весь код досконально проверить и, скорее всего, поправить.
Он хорошо справляется с типовыми рутинными задачами условного "перекладывания джейсонов", но когда надо добиться максимальной эффективности в реализации чего-то сложного, тут времени уходит кратно больше.
Еще ИИ хорош как помощник в изучении чего-то нового. Когда задача ставится "а как вот тут вот это реализовать". А потом по каждой строке "а почему так, а можно иначе?".
Хотя всё что нужно это просто попросить ИИ агента проверить код и убрать из него всё лишнее.
Какой интересной простоты вы человек. Действительно, просто попроси агента и проблем нет. Сразу видно фаундер/тимлид со своей флотилией.
Хотя они уже не удивляются тому, что ИИ в обычном чате может создавать осмысленный структурированный текст за секунды.
ИИ может даже не увеличивать доход бизнеса, но он точно повысит видимую часть работы
Возможно вам это надо или вы коллекционируете буковки, но не всем нужен любой текст, даже если он сгенерирован за секунду и его очень много.
Вы можете быть не согласны с тем, что нужно оценивать сотрудников по количеству строк кода, коммитов или сожжённых токенов.
..
Остаётся только принять требование бизнеса в том, что сотрудники должны использовать ИИ для повышения своей эффективности.
Конечно, как иначе /s
Реальный случай из жизни - когда начал осваивать первые ЛЛМ, узнал из подкаста что можно вайбкодить. Ох, как я обрадовался тогда. В голове прямо картинки проносились - вот это вот закажу, и вот это, моя прога и то сможет и это и еще вот это. Через 20 минут список не влезал на 2 листа. У меня инженерный склад ума. Думаю - в чем проблема? Разобью все нодам, распишу как будут взаимодействовать, сделаю легкие ажурные файлу, не громоздкие. Ну реально, в чем проблема? Все расписать, попросить ллм закодить небольшие файлы, дать другим ллм перепроверить. Пояснил Кими задачу. И тот наш разговор я не забуду никогда :D Я ему объяснял что он тупой. Что задача разложена по полочкам. Буквально. Бери, пиши код. А он мне пояснял почему я тупой и почему это не сработает для серьезных программ и моего списка желаний. Я его и матами ругал и подлизывался. В итоге, через полтора или два часа у меня в голове ясно и четко утвердилась мысль - надо учить питон :D
Но если вы воспользуетесь автоматическим переводчиком, вы получите перевод за несколько секунд. Вам останется только вычитать текст и поменять в нём некоторые слова, которые были переведены неправильно.
Я бы тут поспорил. Не так давно (в этом или прошлом году) я пробовал переводить обычные тексты и в редких предложениях проскальзывал перевод далёкий, а то и местами противоположный по смыслу. Да, для того, чтобы в общем понять, о чём текст, это сойдёт, но для нормального перевода нужен глаз да глаз. И тут ещё сильно зависит от языковых пар: с какого и на какой язык переводится. Для не сильно популярных языков количество ошибок сильно вырастает и там порой лучше самому ручками. Как минимум, будет хотя бы смысл передан верно. В итоге получаем, чтобы на выходе был нормальный текст, сперва переводим ИИ, потом читаем оригинал, переводим сами в уме, параллельно сравниваем с ИИ вариантом, правим, если что не так. Не факт, что будет сильно быстрее.
Может ИИ сильно ушёл в лучшую сторону с тех пор, но меня терзают смутные сомнения
Почему разработчики продолжают писать код руками?
Лично у меня не столь глубокие мотивы, как в статье. Мне никто из начальства не купил подписку на любую из агентских IDE или плагинов для vs code, а сам я столько не зарабатываю, чтобы оплачивать эти подписки; да и если бы зарабатывал, это обязанность работодателя.
У нас в конторе даже нет человека, который провёл бы исследование и нашёл подходящее сочетание сервиса по оплате и нужного редактора, который ещё и должен работать в линуксе (привет, Codex, ещё совсем недавно). А после этого желательно найти/нанять человека, который проведёт обучение, как именно наши задачи решать этим инструментом. Чтобы нам не тыкаться по углам, которые уже пройдены другими. Например, мои задачи — это зачастую вёрстка из фигмы. Как-то же условному плагину в vs code нужно дать доступ к фигме, объяснить, какой из тех макетов верстать, какой не надо, где адаптив для чего. Если нет адаптива под планшет, то нужно сделать его из мобильной версии, опираясь на здравый смысл. А анимации иногда нужно смотреть, запуская фигму в режим плеера.
Коротенько, но философски выскажусь по теме...
На всем протяжении истории человечества одни люди эксплуатируют других. В первую очередь - для выполнения какого-то физического труда. Само собой человек, даже подневольный, рано или поздно норовит проявить свою волю, высказать свое мнение, что категорически не нравится эксплуатирующему классу. И, строго по Марксу, во все времена этот класс старался всячески закабалить эксплуатируемых, издавая соответствующие законы, объясняя все этой волей богов или предков, мол, так уж повелось издревле...
Шло время, эксплуатирующие эксплуатировали, эксплуатируемые - иногда терпели, иногда устраивали бунты и революции. И вот грянула промышленная революция (какая она там по счету была, второй?), в рамках которой появилось разделение труда, производство, следом - конвейер. Но как к точным механизмам допускать человека, который то и дело норовит лом в нежное нутро станка вставить (сорри, пошло звучит)?..
Короче, труд подневольных людишек начали обставлять регламентами, инструкциями и прочими методиками: мол, вот так делай, а вот так- не делай! Т.е. о чем мечтали промышленники во все времена с момента проявления своего классового сознания? О биороботе! Чтобы все по инструкции, чтобы ни шагу вправо-влево, и желательно забесплатно.
Если кто помнит, до ковида это был тренд: нанотехнологии, интернет вещей, роботизация, безлюдные производства и т.п. Это вот все то же: не нужон нам этот интернет ваш...
Но прогресс как-то быстро "выстрелил" интеллектуальными агентами (опять спошлил...). Вот он, "бог из коробки" - подумал бизнес и начал надувать пузырь. Но сейчас речь не об этом.
Интеллектуальный агент - штука пока еще не предсказуемая. Он ровно как тот кожаный мешок, эксплуатируемый во все времена, начиная с этрусков. Ну или как маленький ребенок, которому дали в руки гаечный ключ - может, завернет гайку, а может убьется нафиг... В общем, вместо обставленного со всех сторон регламентами и правилами человека, по сути - живого робота, которого так долго пытались создать, бизнес получает непредсказуемого актора, которого еще попробуй укроти... Да, он, бизнес, будет стараться, деньги готов в это вкладывать, но ведь агент и задуман таким: "ищущим", "пытливым", недетерминированным.
Короче, либо все вернется к программным и физическим роботам, а бизнес, построенный на интеллектуальных агентах, рухнет громко и с треском, либо прогресс подкинет что-то новое, пока "пузырь ИИ" не лопнул. Но в любом случае, ИИзация промышленности - это фантастика. В крайнем случае обычных роботов с ML обзовут "ИИшными". Это мое мнение.
Спасибо, что дочитали!
Дочитал. Внимательно изучив OWASP топ 10 по ии агентам в свое время, скорее поставлю на первое
Вот правильно с базиса начинать, да. А надстройку анализировать только после того, как базис описан и принят за правду-истину (хотя бы в рамках дискуссии).
А вообще, ответ на вопрос в заголовке давно даден: человеку нужен человек! А всё что вокруг: код, процессы, ответственность, даже кремниевые болваны (терракотовое войско 2.0), это всё будет, если будут люди, которые делают своё дело.
Замысел делает человека художником, а не реализация.
Глупость, наверное, скажу…
Лично мне просто нравится писать код. Ну люблю я это дело.
Тогда вопрос: а нафига я буду отдавать ИИшке то, что хочу делать сам?
Извините за такой непрофессиональный и субъективный подход.
Если я ставлю ИИ агенту задачи, принимаю решения по архитектуре, делаю ревью кода и проверяю все тесты, то как можно говорить о том, что я не понимаю код проекта?
Конечно, не понимаете. Вы даже не понимаете что его не понимаете
А вы сравнивали сколько по объему у вас занимает промпт полностью готовой бизнесовой таски в прод и та же самая таска в виде вручную написанного кода ? Мне просто интересно как считают профит по времени от генерации кода ллм, учитывают ли написание промпта со всеми дополнениями и правками ?
И второй вопрос. Если код вы не пишете и не ревьюите, то зачем ллм вам его генерит на ЯП ? Пусть генерит сразу в маш кодах. К чем эта иллюзия контроля ?
С появления ИИ агентов я практически перестал писать код, так как не вижу больше в этом смысла. Поэтому не могу объективно сравнить объем промпта и того же вручную написанного кода. Насколько бы быстро я ни писал код вручную, моя скорость никогда не догонит ИИ агентов.
Я сейчас могу в нескольких чатах дать ИИ агентам разные задачи по разным проектам. На выходе получить тысячи строк кода, покрытие тестами, документацию. Они следуют моим правилам разработки и на выходе получается примерно такой же код, как если бы я его писал руками.
Как я и указывал в статье, я делаю ревью всего кода, который пишут ИИ агенты. У меня нет иллюзии контроля. Я контролирую и понимаю весь код.
Я не трачу много времени на написание промптов. Обычно это происходит в режиме планирования, где ИИ задаёт мне вопросы, предлагает варианты, а я только выбираю подходящий вариант. Готовый план реализации составляет ИИ агент, а я его утверждаю.
Я пишу код, потому что я разработчик. Если бы я был, например, дворником, я бы код не писал (имею в виду профессионально).

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