Обновить

Я всё ещё боюсь работать с ИИ

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели92K
Всего голосов 39: ↑36 и ↓3+40
Комментарии26

Комментарии 26

Про SDD согласен. По сути, увеличивается ответственность на ревью: теперь недостаточно посмотреть только код, надо ещё ревьюить спеки, agents/claude.md и прочие файлы, на которые опирается агент. Ошибка в таких файлах кажется опасна реализации, т.к. агент потом вполне последовательно протащит её и в код, и написать тесты под это.

Meat proxy уже больная тема для меня. Задаёшь человеку вопрос по решению, а вместо его аргументов получаешь через некоторое время ответ от агента, вижу все эти паттерны, длинные тире и т.д.(тем более раньше именно этот человек так не писал, а тут дает такой развернутый ответ).

С «репозиторием Шрёдингера» я согласен только частично. Такие проблемы были и раньше. Помню, ещё в 2023 году коллега сказал мне, что именно я реализовывал одну фичу. Из-за перегрузки я к тому моменту уже успел забыть, что действительно писал её пару лет назад, но git blame напомнил :) То, что я прошу агента объяснить кусок проекта, ещё не означает, что я потерял понимание системы. Скорее соглашусь с тем, что бездумное использование ИИ вполне может привести к продукту, в котором тесты есть, документация есть, даже код работает, а почему всё это работает именно так мало кто понимает.

Ну так оно и есть.

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

Через это проходят многие разработчики, ни что не ново под луной. Это другая работа, отличается от привычной разработки.

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

Представьте, что вы 15 лет писали код, получили хороший опыт, хорошо разбираетесь в своей предметной области и собственном продукте. А потом Вас за Ваши успехи повысили и доверили вам большой отдел, куда входило Ваше подразделение. Теперь кодовая база, за которую Вы отвечаете выросла раза в три

Принцип Питера: В иерархической системе каждый индивидуум имеет тенденцию подниматься до уровня своей некомпетентности.

Именно поэтому я уже десяток лет отказываюсь от повышений. Я на своём текущем месте компетентен. А «лишние деньги» мне не нужны — у меня их и так полно.

Да есть такой принцип и он работает). А кто-то повышается все выше и выше. И иногда упирается не в свой реальный потолок, а в ограничения организации - на вышестоящих уровнях уже кто-то сидит крепко.

Как это соотнести с агентной разработкой? Похоже никак. Ситуация заставит постепенно всех перейти на агентов. Тот кто пишет по старинке будет отставать, как велосипедист против мотоцикла. Уже начинаются очень интересные вещи: человек из отдела инфаструктуры говорит, что решить его проблему, которая многим мешает, нельзя или очень дорого. В ответ я ему через 10 минут показываю пример решение от ИИ. Он понимает, что это не я сам придумал, не несу никакой ответственности, но по существу возразить не может. И таких случаев будет все больше и больше.

В ответ я ему через 10 минут показываю пример решение от ИИ.

...а потом это решение берёт и базу дропает, или впускает в закрытый контур без пароля.

Сейчас у всех головокружение от успехов и недооценка рисков.

С чего вы взяли что работа разработчика это какая то гонка. Где надо все быстрее и больше? И у заказчика бесконечное число задач что ли? Это не обязательно так работает. Нет просто такого кол-ва нового функционала разобранного и согласованного чтоб его внедрять с утра до вечера. Допустим есть задача с работой по старинке на четыре дня. И типа с ИИ чел сделает за один день, а потом четыре будет баклуши бить, новой задачи то ещё нет. Лучше уж пусть за 4 делает, но качественнее все равно время позволяет. Т.е. прям заставлять поголовно использовать ИИ разработчикам нет смысла для менеджеров.

Это вопрос о том какие человек хочет развивать компетенции - профессиональные или организационные. Но если раньше выбор был, то теперь он по сути отменяется.

Кстати, тезис про сеньора из соседней команды постепенно тоже уходит.
Я постоянно добавляю документацию по проекту, память агента, скиллы и т.д. и вижу что мой агент при прочих равных каждый раз дает все более точные ответы в сравнении с предыдущими попытками.
А также более точно ищет причины проблем по сравнению с тем же классом агентов других сотрудников, которые имеют доступ к репозиториям и стендам проекта, но не имеют тех же скиллов и памяти.
Короче агенты постепенно нарабатывают экспертизу именно в моих проектах. Конечно не самостоятельно, а с помощью кожаного мешка:)

Разбираться в продукте (бизнесе, маркетинге, саппорте, процессах) и в коде - все ещё разные скиллы. Агенты помогают закрыть, условно, 20% незнания. Но если вы не смыслите в домене ни чего - они бесполезны. Product Engineers / Forward Deployed Engineers появляются лишь в специфичных ситуациях.

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

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

Самому мне в лом разбираться с этими агентами как их настраивать и тем более платить за работу, а не чтоб мне платили.

Но то что я видел нагенерированное от других вайбкодеров. Результат частенько плохенький. Я не знаю их уровень работы с ИИ, я не знаю какими моделями они пользовались. Пишу лишь про результаты что я видел:

1) Одинаковые функциональные блоки выполнены через копикаст код вместо подключаемого в параметрами. Да у живых кодеров тоже такое бывает, но у вайбкодеров прям зашкаливает. Одну и ту же форму на разных страницах нужно в 10 местах менять - сколько угодно.

2) кашанина до уровня не возможности что то поменять после многократного использования ИИ для решения задач в одном и том же функционале. Например оформления заказа. В админке нужно отключить один способ доставки, добавить другой. Делаешь так - бац все сломалось пустая белая страница. Смотришь код шаблона. А там мрак какой то. тыщи строк кода, куча вложенности ифов и по факту очень хрупко. Там или вообще надо было делать по простому почти чистым жесктим html форму, да не реагировало бы на изменения в админке, но код простой, либо по нормальному по проще (тем более что много функционала внутри в админке работает и не нужно дублировать его в шаблон)

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

4) всякие штуки которые неправильные, но прям видимым образом функционал не ломают. Например дублирование главного заголовка h1 к новом сгенеринным блокам. Отчего их много становится и SEO ломается.

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

Вайбкодеры думают, что если код работает то работа сделана, хотя это только 10% работы

Ага если сайт после вайбкодинга открылся - значится всё пучком))

Тебе дали задачу выкопать траншею глубиной 2м и длиной 50м, то вариантов немного: ковырять грунт как раньше - лопатой и ломом или взять экскаватор и сделать ее в 100 раз быстрее.

Если ты 30 лет копал траншеи лопатой - ты знаешь что такое копать и что такое траншея - результат работы экскаватора тебя приведет в восторг. Если ты вообще не знаешь что такое траншея - тогда да, надо ковырять лопатой полгода. И бояться экскаватора.

Такой экскаватор нужно сперва собрать (харнесы, плагины, скиллы, hooks, mcp, lsp), проложить дороги (rules, AGENTS.md, semantic knowledge), научиться с ним управляться (промпт инжениринг, SDD, ревью), регулярно заправлять (subscriptions), постоянно наблюдать за показателями и обслуживать (agent evals, observability). Это все окупается, только когда у вас конвейер. Ну либо вело экскаваторостроение является вашим хобби.

Проблема ещё в том, что их роторный экскаватор идеально и с гигантской скоростью копает прямые траншеи шириной 10 м и длиной 2 км — однако в жизни всё чаще встречаются извилистые траншеи шириной 20 см и длиной 15 м, которые бригада закончит копать лопатами залолно до того, как последнюю часть экскаватора довезут до площадки.

*задолго.

Да, у дедушки больная рука.

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

https://olegdivov.ru/podlinnaya-istoriya-kanala-imeni-moskvyi/

Новейшую самоходную роботизированную группу из тринадцати единиц, включая три бульдозера — легкий, средний и тяжелый, — два экскаватора, четыре самосвала, путеукладчик-«запеканку» для сыпучих грунтов, ремонтного «паука», дирижабль с прибабахом и маленький храбрый погрузчик, Базунов невзлюбил сразу по получении. В Мосспецстрое бригада Базунова числилась «прыгающей экспедицией», она скакала с площадки на площадку, от одной группы роботов к другой, не задерживаясь нигде дольше недели. Проверить исполнение задачи, поставить новую, провести техобслуживание — и полетели дальше. Иметь дело приходилось с чем угодно, от мобильных атомных электростанций до умных бетономешалок. Очень живая интересная работа, требующая постоянного напряжения серого вещества, ну и вообще, мы — почти как космонавты, ядрена пилорама, любите нас, девочки.

Только дали тебе не экскаватор, а динамит. И вот надо с помощью взрывов выкопать траншею 2x50 метров. :-)

С ИИ вполне можно закрывать задачи быстрее. Только работы у тебя от этого не обязательно станет меньше.

О да, я как раз на прошлой неделе накололся - мне надо было написать алгоритм вычисления MTF, это когда по резкой границе на изображении вы можете вычислить разрешающую способность, это в оптике, а также и в рентгеновском контроле применяется и в томографии. Алгоритм там не очень сложный - берётся профиль, там надо сгладить шум, от него произодная, затем Фурье, и уровень на котором кривая Фурье опустится до 10%, даст искомый MTF (в оптике вроде 20% берут). А сглаживание делается полиномом по бегущему окошку, это фильтр Савицкого-Голея. По условиям задачки надо выдать алгоритм на Расте, исходный верифицируемый код. И вот я, просто тащусь от ИИ, которого можно попросить алгоритм Савицкого-Голея, и он его выдаёт, я даже проверил результат в Матлабе и Питоне, всё сходится. И производную он на раз берёт. Вот только нюанс в том, что производную я могу сразу получить из Савицкого-Голея аналитически, поскольку там полином третьей степени в каждой точке (красивый алгоритм, кстати), а ИИ тупо решил поситать численно, взяв один из моих параметров за приращение... Две недели я доказывал коллегам, что у меня всё правильно (там помимо производной ещё куча кода), пока не заметил странную связь параметров и результатов. Прошедшие выходные провёл с ноутом в обнимку, исправляя этот косяк, и упражняясь в численных методах, как студент-второкурсник. Но по большому счёту, ИИ реально экомит кучу времени, если пользоваться аккуратно и без фанатизма, результат порой впечатляет,да.

(не уверен, что "попаду в тему") При чтении (где-то к середине), всплыла ассоциация (на выходных, по телику показывали про кино-актеров, в т.ч.) "Шариков" ("подобрали (на улице)" "болванчика", (прооперировали и) обучили (под себя). И теперь: одни - "он еще на балалайке умеет", другие - "вернуть вспять", третьи: "сынуля (мф "Волк и теленок" - "одушевляем", инструмент).

Чего только не привидится.

Если код комитится под вашим именем, то за него отвечаете вы. Если вы отвечаете за код, то вы решаете, как вы этот код создаёте. Всё. Хотите использовать агентов, используйте. Но это ваш код!

Ничего страшного, что вы боитесь работать с ИИ.

Просто вас заменят те, кто не боится.

А потом их заменят те, кто не боится и при этом получает качественный код.

А потом их всех заменит ИИ, который к тому времени будет писать код лучше чем 99.99% рукожопых погромастов. Впрочем, после последних проверок своего кода нейросетями, к ним я могу отнести и себя.

Но что меня радует: я надеюсь что застану то время, когда не будет все более кривеющей винды и неизменно глюкавого гуглхрома.

А потом их заменят те, кто не боится и при этом получает качественный код

...и другие сказочные существа.

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

Спасибо за такое откровение. Теперь у меня появилось немного другое вИдение. Буду изучать дальше. Придется перечитать статью еще пару раз )

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации