Или как объяснить менеджменту, почему лучше перестать пушить внедрение ИИ в разработку
Почему меня стоит слушать? Я точно не айти гуру, но я зарабатываю кодом последние 8 лет, писал очень разное от низкоуровневых оптимизаций на C++ и движков инференса нейронок до классического ML и обычной продуктовой разработки на Python/JS; работал и на РФ, и на Штаты, вел универские лекции по алгоритмам и структурам данных, а еще в 2023 прошёл через "ИИ-изацию" компании 🥴
И меня бесит, что решения о применении ИИ принимаются на основе хайпа в твиттере/телеграме или субъективных ощущений менеджмента из серии «я за два часа навайбкодил то что вы делали месяц, ИИ – революция»
Ниже я разбираю основные проблемы и приземляю их на реальные исследования
Скрытый контекст
На бенчмарках качество ИИ систем растет, это да. Но насколько бенчмарки похожи на реальные прокеты?
В реальности весь нужный для работы контекст никогда не хранится только в коде. Он находится в головах у разработчиков, которые месяцами и годами работали с репозиторием. Они видят не только слепок кода в моменте, но и знают историю и причины изменений (которые часто растут из продуктовых требований, вообще не отражённых в коде)
У ИИ ничего этого нет. Максимум, что может – пройтись по коду и вытащить базовые зависимости между сущностями.
ИИ ускоряет замедляет написание кода
Как показывает нашумевшее исследование METR – ускорение мнимое. На самом деле, исследователи увидели замедление на 19%. И что самое интересное, сами разработчики считают, что наоборот ускорились на 20%!
Вот поэтому меня и бесит принятие решений на основе ощущений – им нельзя доверять. ИИ просто дает иллюзию ускорения
Потеря фокуса
Разработка – сложная когнитивная деятельность и требует серьезного погружения. Поэтому никто не любит спонтанных звонков, уведомлений и всего, что выдергивает из концентрации.
В кодинге с ИИ, наоборот, приходится постоянно переключать контекст – пока ждешь агента, внимание уходит, переключаешься на другую задачу или рабочие чатики (ну или идешь тупить в тг/ютуб, чего тут). К моменту, когда агент отработал, весь контекст нужно вспоминать заново.
Посредственный код
ИИ обучен на всем интернете. И большинство кода – посредственное по определению. Со временем ИИ распространяет эту посредственность по репозиторию, накапливая техдолг. А в какой-то момент, когда уже не может выполнять свою работу из-за накопившихся противоречий и архитектурных костылей – начнет переписывать тесты, откладывая момент тревоги, пока не станет слишком поздно.
Увеличенный Rollback Rate
Точка отлова ошибок перемещается вперед во времени. Там где разработчик мог бы сам заметить проблему в потоке работы, теперь ошибки ловят либо QA, либо вообще пользователи на проде. Стэнфордский рисерч (статья, видео) показывает, что до 25% закоммиченного ИИ кода – содержит баги. Этот код обратно возвращается на дорабоку → цикл разработки, наоборот, увеличивается.
ИИ буквально ускоряет набор текста, но тормозит релизы
Тезисы выше – компиляция того, что я часто слышу последние пол года.
Правда есть проблема.
У аргументов шаткий фундамент – либо неверно интерпретируют результаты исследования, либо у самих исследований есть серьезные проблемы с методологией
Так, стэнфордское исследование действительно говорит, что стало больше переделок. Но они же показывают, что производительность растет настолько сильно, что даже с учетом переделок получается быстрее.
А в распиаренном исследовании METR – вообще выборка всего из 16 участников. 16, КАРЛ.
Да еще и большинство разработчиков даже не трогали Cursor до начала эксперимента. Кривая входа в кодинг с ИИ в больших проектах – очень крутая. Это лендос на lovable собрать за выходные может любой дизайнер/продакт. Но большой проект – это всегда сложная инженерия с кучей нюансов
Еще и результаты оценивали в среднем, хотя в контексте предыдущего пункта полезнее всего смотреть на верхней перцентиль – насколько увеличилась эффективность у тех, у кого получилось найти эффективные паттерны использования.
И удивительно (нет), у 4 разработчиков эффективность выросла (у двух – почти x2), причем лучший результат был у единственного, кто имел хоть сколько-нибудь существенный опыт с Cursor к началу эксперимента (50 часов).
Короче, как обычно, мало просто получить инструмент, нужно научиться им правильно пользоваться
Правда нормальных лучших практик тут нет – приходится экспериментировать самому, либо выцеплять крупицы мудрости из тонны профильных чатиков с другими экспериментаторами.
А запрос на отфильтрованную информацию – все сильнее. Вижу это и по вопросам на своих консультациях, и по личному общению с разработчиками и лидами из индустрии.
Так что я написал тем самым экспериментаторам из чатиков, чьими крупицами опыта пользуюсь, и предложил организовать онлайн-конференцию на эту тему
Все быстро вышло из под контроля и разрослось до 10 очень разных крутых спикеров и больше 1800 участников
Кто-то тут точно такое захейтит, а кому-то точно будет интересно. Второе важнее, так что делюсь.
Не уверен, что могу тут выложить ссылку на саму конфу, но за ссылки на свой канал меня раньше не банили. Так что если вам актуально – вот он, там разберетесь:)
Кстати, я правда считаю, что менеджмент не должен пушить – рыночек сам порешает. Но про это – на панельке.