Почему ChatGPT не сделает программистов устаревшими

Feb 16 2023
Разработка программного обеспечения — это нечто большее, чем программирование, создание продукта — это нечто большее, чем разработка программного обеспечения. Уже некоторое время мы видим отчеты о резне профессий ChatGPT, и я вижу много инженеров-программистов, уверенных, что наша профессия находится среди его жертв.

Разработка программного обеспечения — это нечто большее, чем программирование, создание продукта — это нечто большее, чем разработка программного обеспечения.

Фото Наташи Грабовац на Unsplash

Уже некоторое время мы видим отчеты о резне профессий ChatGPT, и я вижу много инженеров-программистов, уверенных, что наша профессия находится среди его жертв. Кто-то говорит раньше, кто-то позже, кто-то немного оптимистичен и предвидит век «ИИ-инженера», кто-то настроен пессимистично и считает, что скоро машины станут слишком сложными, чтобы их могли создавать или обслуживать люди. Мое мнение, что они не правы.

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

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

  • Должны ли пользователи будут входить в систему?
  • Будут ли публичные страницы?
  • Как вы будете зарабатывать деньги? Из рекламы или будете брать ежемесячную плату с продавцов? Или вы будете брать комиссию с продаж?
  • Какая информация имеет отношение к вашей бухгалтерии? Как вы будете получать эту информацию?
  • Как пользователи будут запрашивать и получать помощь?

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

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

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

Фото Лукаса на Unsplash

Затем возникает проблема клиентов-людей: они могут ошибаться. Что вы будете делать, когда клиент звонит и жалуется, что заплатил вовремя, но по-прежнему не может войти в вашу систему из-за отсутствия платежа? Даже если ChatGPT всегда дает вам правильное программное обеспечение, вы не можете доказать его правильность (потому что это потребует проверки всех возможных входных данных из бесконечного набора), поэтому вам понадобится кто-то, кто «заглянет в него», чтобы убедиться, что никаких багов и потом искать следы оплаты в таких местах как база данных или логи. Им потребуется доступ к базе данных и журналам в первую очередь при написании вашей подсказки ИИ. Вам нужен инженер-программист.

Наконец, мы должны вернуть нефункциональные требования. Многие люди думают, что вам нужна наилучшая возможная производительность. Большинству предприятий на самом деле нужен самый дешевый приемлемый уровень производительности. Вы не хотите, чтобы ваши пользователи логинились за одну минуту, но разница от 100 до 10 миллисекунд, едва заметная для человека, возможно, заметна для вашего кармана. Такого рода требования часто требуют тонкой настройки различных аспектов программной системы, а также постоянного измерения. ИИ, вероятно, сможет справиться с этим, но он должен будет постоянно наблюдать за системой, чего нельзя сказать о ChatGPT.

В заключение я уверен, что многое изменится не только благодаря достижениям ИИ, но, как мы видели, наша профессия постоянно меняется. От идеи «напиши один раз, работай где угодно», принесенной Java, до более поздних вещей, таких как Docker. Программная инженерия уже не та, что была 10 лет назад, и она будет меняться. С другой стороны исчезнуть? Я не так уверен.