Зачем нам начинающие разработчики, и почему их бессмысленно заменять ИИ
Заменят ли нейросети джунов?
Сибирикс

Заменят ли нейросети джунов?

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

Когда вышел ChatGPT, который может даже писать код, среди мечтающих «войти в айти» началась паника, что ИИ скоро заменит джунов, то есть начинающих программистов.
Программисты традиционно делятся по уровню знаний и опыта на Junior- (джуны), Middle- (миддлы) и Senior- (сениоры) разработчиков. Кого относить к какой категории — вопрос сильно холиварный, но общая идея понятна.
Начнем со спойлера — всех не заменят. А чтобы понять — почему, давайте разбираться, зачем компании вообще нанимают начинающих разработчиков.

Джуны не выгодны работодателям

При подготовке программистов (особенно этим грешат курсы), их учат в основном языкам программирования и выполнению типовых задач. Проблемы тут две:

  • типовые задачи это как раз то, с чем отлично справляются нейросети.
  • языки в программировании вторичны. Хороший программист может изучить новый язык программирования примерно за месяц. У нас так ребята переходили из команды Сибирикс (где мы занимаемся в основном сайтами) в команду Singularity, чтобы заниматься мобильной разработкой. При разработке программного обеспечения нужно умение думать — искать пути эффективного решения задачи. Без опыта на реальных проектах это крайне сложно.

Джуны (условно — первые полгода-год работы) могут самостоятельно делать только совсем простые рутинные задачи. Но тогда они и останутся на том же самом уровне и через год, и через два. Или же они могут делать те же задачи, что и другие разработчики. Только хуже и медленнее, но так они наберутся опыта на реальных проектах.

Владимир Завертайлов
CEO Сибирикс и SingularityApp
— Для определенной (рутинной) работы умения просто писать код достаточно. Основная работа junior-программистов — это перекладывание данных из одного формата в другой. С учетом того, что могут ИИ, возможно этого скоро будет хватать для лоукод проектов. А вот там, где надо подумать — там у джунов обычно и проблемки. Вообще, нужно много писать кода в реальных проектах, чтобы выработался стиль и устойчивый навык делать хорошую архитектуру вместо нагромождения велосипедов.

Николай Соцкий
CEO агентства мобильной разработки InstaDev
— На самом деле junior-разработчики большую часть своего времени учатся. И в этом плане, конечно, они идентичны искусственному интеллекту :) Пытаются научиться решать более сложные задачи на каких-то базовых историях.

Илья Горбаров
CEO digital-агентства Атвинта
— У нас junior-программист в общих чертах делает все то же самое, что и другие разработчики. Мы для него не готовим какие-то синтетические задачи, а вместе с наставником отправляем в проект. Просто у него больше багов и он дольше делает задачи. Больше итераций выдает до готового результата, чем это делает миддл, например.
Понятно, что любую задачу, которую делает джун, сможет сделать и миддл-программист. Причем, если смотреть только на близкую перспективу, это будет для компании экономически выгоднее. Поясним:

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

С джунами надо возиться. Джун потратит время куратора, даже если не будет задавать много вопросов. Чтобы отдать заказчику качественный проект, для всего кода, написанного джуном, необходимо проводить код-ревью. Код-ревью — это процесс, при котором наставник отсматривает весь написанный по задаче код и составляет список замечаний и рекомендаций. После этого автор кода вносит туда правки, которые также надо принимать. На 8 часов работы джуна уходит в среднем час куратора (оптимистично округлим до 10%).

В итоге задача обходится компании в сумму:
  • зарплаты джуна за фактически потраченное на нее время;
  • зарплаты куратора за потраченное им время. Путем простой арифметики получаем, что куратор потратит суммарно примерно половину от того времени, которое он бы делал задачу сам.

Итак, джуны в команде проекта только повышают его себестоимость.

Зачем компаниям нанимать джунов?

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

  1. Желание сэкономить (в данном случае читается как «глупость»). Так часто поступают не-айтишные компании. Ищут специалиста не под задачу, а под бюджет. К нам периодически приходят запросы на поддержку сайта, который до этого пытался дорабатывать штатный айтишник, нанятый именно по такому принципу. Мы проводим аудит кода и, чаще всего, рекомендуем переделать проект с нуля.
  2. Безысходность. Если такая возможность есть, компания наймет специалиста уровня миддл или сениор. Только их очень сильно не хватает. По нашему опыту, на вакансии миддл- и сениор-разработчиков приходит 90% резюме уровня джуниор, только с зарплатными ожиданиями значительно выше.
  3. Намеренная кадровая политика. Игра в долгую. Это — наш вариант.

Джуны — это в первую очередь инвестиция. Как минимум первые полгода компания в него только вкладывает: время куратора (миддла или сениора), зарплату (и для IT она и на этой позиции не маленькая). В расчета на то, что через годик компания получит сотрудника, который постепенно научится думать и делать хорошую архитектуру, начнет приносить компании деньги.

Владимир Завертайлов
CEO Сибирикс и SingularityApp
— Набирать джунов — это инвестиция, конечно, но инвестиция такая стрёмная, что лучше в казино сходить. Многие джуны держат в голове хоть куда-то устроиться, хоть как-то получить опыт для резюме и через год — свалить.
Обучение — это всего дорого и это всегда риски. Сотрудник может уйти сразу, как научится делать что-то полезное. До 2022 года это казалось катастрофой. Многие руководители компаний заказной разработки предсказывали скорый конец отрасли. Как только программист становился не совсем балластом — он уходил в условный стартап с инвестициями на зарплату х2−3−4. На ту, которая при заказной разработке просто не окупится. Сейчас с этим стало проще, но проблема не ушла.

Николай Соцкий
CEO агентства мобильной разработки InstaDev
— Смысл наличия джуниор-разработчика не в том, чтобы он решал какие-то простые задачи, а в том, чтобы он научился решать на простых задачах более сложные. Никто в компаниях не ждёт, что у них будет вечный джун, который решает только простые задачи.
Джуны нужны именно для того, чтобы растить их в мидлов и дальше в сеньоров и в принципе, развивать внутри компании. И чем быстрее разработчик проходит эту ступень, тем больше пользы компании он сможет принести.

Экономика компании подразумевает, что каждый год через компанию проходит определённое количество джунов с определённой конверсией в мидлов и дальнейшим ростом. Если мы их заменим на искусственный интеллект + какого-то человека-оператора, то через год мы получим только человека, который прокачан в обучении искусственного интеллекта решению рутинных задач, но не получим мидлов. Придётся брать мидлов с рынка. С определёнными зарплатными ожиданиями, с определённым отношением к делу, которых не всегда можно просто и быстро интегрировать свою компанию.
Мы, в Сибирикс, уже много лет проводим оплачиваемые стажировки для студентов. Инвестируем в обучение, т.к. после стажировок часть ребят остается у нас как junior-разработчики, и они — лояльны к компании и останются с нами надолго. Например, ведущий разработчик SingularityApp когда-то начинал со стажировки у нас.

Что действительно могут нейросети?

За последний год появилось несколько нейросетей, которые «умеют писать код». Нейросети могут сделать компиляцию из каких-то исходных данных, позволяют автоматизировать простые операции.

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

Когда появился ChatGPT, наши разработчики его посмотрели-покрутили-повертели. Посчитали скорее забавной игрушкой, чем инструментом, который есть смысл сейчас внедрять в работу. Коллеги по отрасли говорят примерно то же самое:

Николай Соцкий
CEO агентства мобильной разработки InstaDev
— В работе искусственный интеллект мы сейчас не используем, но пробовали это делать. Один из программистов внедрял в работу GitHub Copilot, который был выпущен в середине прошлого года, и этим мы даже поделились в статье в блоге. Как какое-то рабочее решение эта история продолжения не имела. Она не очень сочеталась с нашими шаблонами разработки и, попробовав несколько недель, мы поняли, что пока нейронки — не то, что мы хотели использовать и что реально дало бы нам какую-то большую пользу в части производительности.

Илья Степанов
Технический директор digital-агентства IBRUSH
— Я сам пока не пробовал генерить код через ИИ, но смотрел результаты его работы. На данный момент он предлагает достаточно базовые вещи. Например, Chat GPT умеет по факту то, что сейчас и так есть в свободном доступе в Интернете. Например, он может написать код приложения для прогноза погоды, но если то же самое «загуглить», то этот же код будет уже сразу по первой ссылке. Возможно, какие-то базовые вещи он может облегчить и в каких-то простеньких задачах ускорить разработку, но вряд ли можно говорить о чем-то масштабном.

У нас большие сложные проекты, где требуется не просто механическое написание кода. Многие наши клиенты сотрудничают с нами несколько лет в формате поддержки и развития. Говорить о том, чтобы ИИ оптимизировал и развивал функционал систем (что в рамках поддержки и развития как раз одна из основных задач) пока очень рано.

Илья Горбаров
CEO digital-агентства Атвинта
— Лично мне кажется, что ИИ сейчас больше нужен мидлам и синьорам в помощь, чтобы автоматизировать какие-то скучные, типовые задачи. Например, рассортировать список фамилий, выделить фамилии, имена и поменять их местами.
На мой взгляд сейчас ИИ не может заменить никакого программиста. Чтобы он сделал что-то адекватное, нужно очень грамотно составить промт. А для этого нужен программист.

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

Сергей Кравченко
Frontend-разработчик, MAGWAI
— ИИ не сможет полностью заменить джуниор-разработчиков в компании, даже если нанять специального человека, который будет работать с нейросетью и готовить для нее ТЗ. На подобное ТЗ уйдет очень много времени, а на выходе 90% вероятности нужны будут правки и изменения в итоговом коде.
Все что написано выше относится к кастомной разработке. Есть пласт компаний, которые разрабатывают сайты на основе готовых решений, low-code и no-code. Они используют джунов как основных разработчиков. Потому, что задачи простые и высокой квалификации не требуют, а платить джунам можно меньше.

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

Вместо резюме

  1. Нейросети подходят для автоматизации рутинных операций. Компании, которые использовали джунов на таких задачах, в итоге заменят их на связку нейросеть + оператор.
  2. В кастомной разработке важно не умение делать рутинные задачи, а умение думать и искать оптимальное решение.
  3. Компании берут на работу джунов, чтобы решить кадровые проблемы в долгосрочной перспективе. Бывшие стажеры и джуны могут в итоге стать крутыми специалистами и остаться в компании. Но не все. Это рискованная инвестиция.
  4. Разработчики, которые умеют делать сложные масштабные проекты, продумывать архитектуру и настраивать интеграции еще долго будут востребованы.
  5. Роботы победят человеков, но до этого надо еще дожить.