ИИ изменит требования
ИТ / Статьи
ИИ экспертная колонка
31.10.2023

ИИ повышает требования к айтишникам

Как искусственный интеллект изменит труд программистов

С чем придется столкнуться руководителям компаний, когда искусственный интеллект в полной мере займет свою нишу в процессе труда и тем самым изменит его? Этот вопрос должен волновать всех, кто слышал хоть что-то о прорывах Midjourney и ChatGPT. О подводных камнях читателям RSpectr рассказал ведущий руководитель направления разработки в IT_ONE Максим Сячин.

ОПЕРАТОРЫ ГЕНЕРАТИВНОГО ИИ

Среди достижений GPT особенно интересна возможность написания программного кода по запросу оператора. Необходимо разобраться, кто же такой оператор и какими характеристиками должен обладать претендент на эту роль. Когда появилась профессия программиста, было меньше промежуточных звеньев между заказчиком – тем, кто формировал задачу, и исполнителем – тем, кто писал программу для ее выполнения. Но с развитием технологий и с увеличением потребности в автоматизации и внедрении информационных систем заказчики сместили фокус на формирование бизнес-ценностей. А программисты, у которых стремительно расширялся арсенал используемых ИТ-инструментов, стали больше концентрироваться на технической реализации.

Между заказчиком и исполнителем появились роли бизнес-аналитика и системного аналитика, которые занимались трансформацией описания потребностей бизнеса в формализованную и понятную для программиста задачу. Так в очередной раз проявил себя процесс разделения труда, позволив увеличить эффективность процесса разработки.

Аналогичным образом можно представить будущее процесса постановки задачи для искусственного интеллекта (ИИ). Оператору необходимо сформировать такой запрос или такой диалог с машиной, который приведет ее к нужному ему результату. Сейчас программист может выполнить задачу на основании результатов работы аналитиков. Но может ли эта задача породить отдельную роль оператора и сократить расходы на разработку ПО?

Навык формирования запроса для генеративного ИИ можно сравнить с аналогичным, но более простым навыком формирования запроса для поисковика. Во времена развития интернета быстрее информацию находили те, кто умел правильно заполнить строку запроса Google или «Яндекса». Как и в этом случае, оператору ИИ придется учиться формированию запросов. Чем точнее он будет сформирован, тем меньше времени и ресурсов потребуется для уточнения ответа в режиме диалога. Но так или иначе, чтобы понять, подходит ответ или необходимо провести еще один раунд уточнения, оператор должен уметь оценивать качество предлагаемого машиной результата.

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

Senior Developer является тем самым оператором, который сможет получить от ИИ результат за самое короткое время

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

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

РАЗДЕЛЕНИЕ ТРУДА И РОЛЬ ИИ

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

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

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

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

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

Существует ряд техник, позволяющих упростить этот процесс и открыть дорогу ИИ. Это и разработка через тестирование, и микросервисная архитектура, и serverless-системы вроде Amazon lambda (бессерверный, управляемый событиями вычислительный сервис), и разные No-Code- и Low-Code-решения. Но все это требует наличия платформы или каркаса приложения, которое должно разрабатываться специалистами высокого уровня.

Что же делать с младшими и начинающими программистами? Способен ли ИИ помочь им в выполнении задач? Я считаю, что ИИ, безусловно, способен помочь начинающим программистам выполнять различные задачи. Но главная цель программиста в начале и середине пути – это его развитие. И именно на этом стоит фокусироваться как самому разработчику, так и работодателю.

Чем выше уровень навыка и опыт специалиста в разработке ПО, тем больше пользы он способен получить от такого орудия труда, как ИИ

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

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

Изображение: RSpectr, Adobe Stock

Еще по теме

Почему буксует импортозамещение электронных компонентов

Почему рынок коммерческих дата-центров нуждается в регулировании

Что ждет начинающего тестировщика в 2024 году

Как найти перспективные зарубежные рынки для российских решений

Какие угрозы несет интернет тел человечеству

Успеют ли банки заменить импортный софт и оборудование до 2025 года

Зачем компании вкладывают деньги в ИТ-состязания?

Импортозамещение и внутренняя разработка ПО в страховании

Почему рынок информационных технологий РФ возвращается к классической дистрибуции

Что сделано и не сделано в цифровизации России за 2023 год

Как заботу о вычислениях переложить на вендоров и почему не все к этому готовы

Когда российский бизнес начнет замещать импортное ИТ-оборудование

Чего добились за два года активного импортозамещения ПО

Как искусственный интеллект меняет банковскую систему РФ

Как проходит цифровая трансформация отечественного госсектора