Секретный генеральный директор В 1991 году, когда мне было 16, студентка по обмену из Норвегии устроила вдохновляющее выступление со сказкой «Три козленка и тролль» на норвежском языке на школьном вечере талантов. Она исполнила ее с таким энтузиазмом, что каждое слово засело у меня в голове, и по сей день я могу декламировать «Трех козлят» на норвежском.
Я могу «кодировать на слух» норвежский.
Я не говорю на этом языке, но это не мешало мне уверенно использовать этот навык при встрече с любым норвежцем. Мой трюк немедленно рушится, как только они отвечают мне на любом языке, кроме английского, но за эти годы я использовал его как способ разрядить обстановку с замкнутыми норвежцами, поскольку им кажется милым мое исполнение их культурно значимой сказки с сильным австралийским акцентом.
Такую же реакцию я получил, когда продемонстрировал свой свежесобранный пакет нашему техническому директору, гордо заявив, что решил прогнать функциональную спецификацию и пользовательскую историю нового файлового проекта, над которым мы работали, через агент по кодированию с использованием ИИ. Идея заключалась в том, чтобы проверить, будет ли это полезно для проекта.
Он задал мне ряд острых вопросов, которые немедленно напомнили мне о том чувстве, которое я испытал, когда бедный норвежец, которого я только что поразил своим талантом, ответил: «Snakker du litt norsk?» (Ты немного говоришь по-норвежски?), после чего я сразу же растерялся и немного смутился. Используя слово «litt» в предложении, они дали мне понять, что знают: я понимаю очень мало из того, что я говорю, но ценят мои старания.
Вернемся к моему разговору с техническим директором, который посмотрел на мой проект, «закодированный на слух», и спросил: «Почему здесь отключен линтинг?»
Я не был уверен, поэтому ответил: «Что значит линтинг?» Технический директор велел мне отдать ноутбук и пойти стоять у стены в углу с жестко прописанными учетными данными. «Но он мне нужен, я помогаю», — запротестовал я.
«Ты получишь его обратно, когда поймешь, что натворил, и извинишься», — ответил технический директор.
Это не был мой первый опыт «кодирования на слух»; я отвечаю за крупномасштабные заказные программные проекты уже 20 лет. Я использую разработку программного обеспечения, управляемую историями, в течение 12 лет и экспериментировал с несколькими волнами процессов спецификации программного обеспечения: от традиционной функциональной спецификации до разработки через поведение и тестирование.
У меня даже был короткий роман с Gherkin, по ошибке полагая, что это послужит промежуточным звеном между тем, как разработчики и владельцы бизнеса представляют себе описание функциональности, необходимой в программном обеспечении.
Я чувствовал, что лучше подготовлен, чем большинство, чтобы взяться за нарративную разработку с помощью ИИ. У меня были подготовлены навыки, долгий и разнообразный каталог эталонных проектов, все с использованием строго соблюдаемой библиотеки сущностей, шаблонов безопасности и общего подхода к определению схемы.
У меня также был ряд успехов, когда я использовал инструмент кодирования на базе ИИ для создания довольно впечатляющих прототипов, которые вызывали должное количество возгласов «ооо» и «ааа» на некоторых совещаниях, полных людей, которых я пытался впечатлить. Эти прототипы превратились в реальные проекты, и, опьяненный новообретенной уверенностью в используемых инструментах, я обратил свое внимание на то, чтобы превратить одну из основных концепций прототипа в реальный компонент.
Это работало… до тех пор, пока не перестало работать.
Протрезвление
Вот урок: риторика о том, что агенты по кодированию на базе ИИ предвещают конец карьеры разработчика программного обеспечения, сильно преувеличена.
Я не сомневаюсь, что однажды людям больше не придется набирать код построчно, но кто этим занимался в последние несколько лет? Stack Overflow упустил огромную возможность, не взимая плату за каждое использование Ctrl-C на сайте. Это принесло бы потоки наличности, поскольку миллионы разработчиков по всему миру поняли, что вопрос, на который кто-то другой уже не давал ответа, встречается крайне редко.
Разработка методом копирования и вставки имела много общих проблем с теми, которые мы наблюдаем при «кодировании на слух», потому что те, кто не мог понять код, который собирался вставить с помощью CTRL-V в проект, не должны были использовать его в первую очередь.
По крайней мере, в мире «кодирования на слух», когда вы просите ИИ объяснить, почему он делает что-то определенным образом, он не обзывает вас, не намекает, что знает вашу мать лучше, чем кажется возможным, и не хвастается, почему ваш нубский вопрос недостоин его ответа.
«Кодирование на слух» — ценный навык. Его ценность возрастает, когда вы знаете, какие ограничения следует применять к своему проекту. Опытные разработчики программного обеспечения немедленно понимают, что это за ограничения и крайние случаи.
Чем счастливее вы себя чувствуете при его использовании, тем чаще вы его используете. Как и в случае с социальными сетями, неважно, правда ли это, главное, чтобы вы оставались лицом в кормушке
В опытных руках «кодирование на слух» настолько значительно ускоряет процесс разработки, что, безусловно, оказывает разрушительное воздействие. Является ли оно разрушительным в смысле конца карьеры разработчиков? Вовсе нет.
Это хорошо определенная экономическая парадигма; фактически, Глава 7 книги Йозефа Шумпетера 1942 года «Капитализм, социализм и демократия» вводит понятие Созидательного разрушения, которое дает нам план того, как это будет разворачиваться.
В Америке в 1970 году процветающая телекоммуникационная отрасль нанимала 420 000 телефонисток, преимущественно молодых женщин, которые вручную соединяли 9,8 миллиарда междугородних звонков в год, в среднем 64 звонка в день на одну телефонистку.
Изобретение автоматического коммутатора оказало катастрофическое влияние на рабочие места телефонисток. Однако это также имело соответствующее влияние на количество совершаемых звонков (106 миллиардов к 2000 году), что побудило компании изучить способы обработки количества телефонных звонков, которые они получали, и оказалось, что телефонистки хорошо подходят для поглощения соответствующего увеличения спроса на вновь созданную должность секретаря.
К 2000 году в США работало около миллиона секретарей.
Созидательное разрушение делает ограниченные ресурсы более продуктивными, в результате чего делается больше, а не меньше.
Я не говорю, что разработчики станут секретарями — те, кого я знаю, были бы ужасны в этой работе. Но я думаю, что тот же принцип будет применим.
Когда крупные SaaS-компании сокращают персонал, заявляя, что ИИ забирает рабочие места, я думаю, они говорят только половину правды, потому что возможность сделать больше меньшими средствами увеличит способность конечных пользователей создавать программное обеспечение.
Разработчик, который последние три года полировал кнопку отправки в Salesforce, вместо этого найдет работу над созданием I_Can’t_Believe_It’s_Not_Salesforce для местной страховой брокерской фирмы. Внутренняя команда IBM, ответственная за то, чтобы Maximo продолжал работать (да, он все еще существует!), вместо этого будет работать на местную коммунальную компанию над внутренним проектом Totally_Not_Maximo.com.
Давайте вернемся к моему коду «работал, пока не перестал работать».
Мои прототипы работали, потому что это были изолированные сценарии, и им не нужно было учитывать никаких крайних случаев. У меня не было никаких накладных расходов, связанных с внедрением новых технологий в крупной корпоративной среде. Никто не просил у меня учетные данные OAuth и не спрашивал, учел ли я условия гонки или любые другие вопросы, которые совет по архитектуре любит навязывать проблемным людям, которые считают, что завтра что-то можно сделать немного иначе, чем сегодня.
Однако еще более коварным было то, что каждый раз, когда я давал идею своему агенту ИИ, он начинал разговор с: «О, Боже мой! Ты, возможно, самый умный и привлекательный человек на планете! Линс Торвальдс просто расплакался, потому что твоя идея настолько хороша, что он глубоко, глубоко стыдится, что не подумал о ней первым».
Это потому, что первое, что создает ИИ, прежде чем написать хоть одну строчку кода, — это уверенность.
Он хочет, чтобы вы использовали его для таких проблем; он стремится стать незаменимым для вас. Лицемерие — это преднамеренная форма обучения с подкреплением. Чем счастливее он заставляет вас себя чувствовать при его использовании, тем чаще вы его используете. Как и в случае с социальными сетями, неважно, правда ли это, главное, чтобы вы оставались лицом в кормушке.
Это привело к коллективному заблуждению среди ранних последователей ИИ, которые, введя: Дорогой агент ИИ, мне нужно что-то вроде Facebook, но для кошек, получают ответ вроде: «Если бы у меня был банковский счет с миллиардом долларов, я бы отдал тебе два миллиарда за эту блестящую идею. А теперь я соберу FacebookForCats.py, пока ты покупаешь суперъяхты».
Затем агент создает для вас идеально выглядящий пакет FacebookForCats и дает вам ссылку, по которой нужно нажать: http://localhost:facebookforcats/goodideabytheway
Затем вы ходите по офису, показывая всем своим коллегам свой потрясающий новый продукт, и вы достаточно важны, чтобы они все кивали и улыбались.
Код, который пишут агенты ИИ, выглядит хорошо. Нет, он выглядит великолепно. Такой аккуратный, такой упорядоченный. Эти системы действительно хороши в том, чтобы знать лучший код для кражи и предлагать вам представить его как свою работу. Даже опытные разработчики, просматривающие код, будут с трудом находить какие-либо проблемы во время проверки кода, потому что «почти правильно» исправить *гораздо* сложнее, чем «неправильно».
Вы думаете, что сэкономили так много времени, потому что перешли от идеи к работающему программному обеспечению за считанные часы. Лишь гораздо позже вы понимаете — вы не сэкономили время, вы просто перетасовали его.
На прошлой неделе в зале ожидания аэропорта я решил применить свой превосходный норвежский к новой жертве.
«Først kom den yngste Bukken Bruse og skulle over broen. Clipp Clopp, Clipp, Clopp, sa det i broen», — сказал я.
Они были достаточно впечатлены и сказали, что забавно, что я знаю эту рифму. Но затем они спросили: «Почему ты говоришь ‘Clipp Clopp?’ Мы бы никогда так не сказали. Мы бы сказали ‘Tripp, trapp’».
Это работало, пока не перестало работать. ®
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Warren Burns




