
Говорят, что ИИ делает разработку программного обеспечения хуже. Менее стабильной. Менее безопасной. Хуже во всем. В этом есть доля правды, и даже если многие из этих утверждений преувеличены, по-моему, полезно иметь такие контраргументы в противовес ажиотажу, возникающему повсюду вокруг ИИ. За последние пару лет я читал и слышал немало разных мнений. Многие из них были интересны или хотя бы заслуживали обсуждения. Но, как мне кажется, есть еще один ракурс, с которого стоит посмотреть на ИИ. А именно — как он расширяет наши возможности.
И нет, речь не о создании продуктов. Я имею виду программную инженерию. Техническую часть. Код, фреймворки, все то, что раньше отнимало у команд месяцы, а то и годы — теперь достижимо намного быстрее. С практически ничтожными — можно сказать, нулевыми — затратами.
ИИ дает нам роскошь, которой у нас никогда не было: исправлять ошибки по-настоящему быстро. Экспериментировать с практически нулевой стоимостью.
Не нужно далеко ходить, чтобы найти программистов, которые свято верят: ИИ угробил разработку. Мнения варьируются от «это уже совсем не то» до «я на такое не подписывался«. И все они обоснованы и недалеки от истины. Программная инженерия сейчас совсем не та, что 2–3 года назад. А многие из нас занялись разработкой ПО именно потому, что хотели создавать код. Помню, что я испытывал в 21 год, когда видел как написанный мной код превращался в сайт, с которым я мог взаимодействовать в браузере. Это было потрясающе. Я чувствовал себя Нео из «Матрицы». Конечно, я им не был, но это было невероятно круто — уметь делать такое, и это зацепило меня навсегда.
Переход на новые технологии без затрат
Прекращение поддержки Angular 1 обернулось настоящей катастрофой. И это не преувеличение, а точное описание того, что творилось на заседаниях советов директоров. Бесчисленные компании и команды создали свое ПО на фреймворке, который забросили ради 2-й версии, потребовавшей серьезного рефакторинга. Да, он получал обновления безопасности еще несколько лет, но проблемы были вполне реальными, а с финансовой точки зрения — крайне пагубными.
Когда Angular 1 забросили, инженерным командам внезапно пришлось оправдываться и искать кучу денег, чтобы решить проблему.
В бизнесе всегда планируют. В том числе и бюджеты на разработку. Нетрудно представить, чего стоило разработчикам объяснить на заседании совета директоров, как из-за просчета Google придется расплачиваться всем остальным командам. Это вам не прогулка по парку. Летели головы, обстановка накалялась. Помню, мы почти три года выбирались из этой ямы. В долларах США это вылилось в миллионы. Слишком дорого обошлась та ошибка как самой Google, так и всем, кто выбрал Angular 1.
С ИИ такие ошибки гораздо менее разрушительны — они не требуют выяснений отношений, взаимных обвинений и миллионов долларов. Переход с Angular на React, с React на Svelte или Vue — теперь, по сути, задача, решаемая одном промптом: «перенеси этот код с Angular на React». Конечно, это не 5-минутная фоновая задача: может потребоваться неделя-другая тонкой настройки, тестирования и всего остального из жизненного цикла разработки ПО. Но это и не 2-летняя миграция, один-два спринта — и все. Стоимость ничтожна.
ИИ позволяет нам ошибаться — выбирать не самый подходящий фреймворк, не самые лучшие библиотеки, не тот язык. Ставить на не ту лошадку — теперь гораздо менее катастрофично, чем раньше.
Я считаю это значительным преимуществом, которое наша индустрия еще толком не оценила. По крайней мере, не похоже, чтобы оно широко обсуждалось. Повсюду только и слышишь либо «ИИ — отстой», либо«“ИИ — лучшее со времен изобретения огня». Очевидно, что ИИ ни то, ни другое, и его влияние зависит от конкретного случая. Но нельзя не признать то, что он позволяет нам делать неудачные ставки на инженерном уровне и гораздо меньше переживать о финансовых последствиях. Это не значит, что можно пренебречь безопасностью — сразу вспоминаются Claude и OpenClaw — или сливать что попало в мастер-ветку без надежной системы проверки. Скорее, это означает, что нам не нужно продумывать все заранее и терять сон из-за неправильного технологического выбора. Это обратимо, переносимо и с гораздо меньшими затратами, чем раньше. И знаете что? Теперь у нас есть еще один хороший предлог не оптимизировать все на ранних этапах.
Расширение возможностей экспериментирования
Помимо возможности ошибаться, есть еще один аспект взаимодействия с ИИ как с партнером по разработке, который вызывает у меня большой оптимизм — это экспериментирование. Одна из самых больших проблем, которые я вижу в командах, — инженерам не хватает времени, чтобы быть по-настоящему инженерами.
У инженеров нет достаточно времени, чтобы быть инженерами — только создавай-создавай-создавай, функцию за функцией. ИИ меняет это. Теперь можно попробовать больше, затрачивая меньше усилий.
Если вы когда-либо работали над личным проектом, то знаете, что такое остановиться на полпути и переписать все на другом языке, фреймворке, архитектуре и т. д. Уже стала ходячей шутка о том, что каждый инженер создал как минимум 10 приложений для ведения списка дел на 10 разных языках, и ни одно из них так и не было закончено. Каждый из этих незавершенных проектов отнимал как минимум несколько дней. Время, даже собственное, не бесценно. И как бы нам ни нравился процесс создания этих проектов, изучения нового языка, архитектуры или фреймворка, время, потраченное на все это, суммируется.
Пару месяцев назад я на скорую руку написал приложение для macOS. Мне хотелось превратить некоторые свои истории на Medium в ролики для Instagram Reels. В общей сложности на это ушло около 8 часов, хотя половина из них была потрачена на исправление багов и устранение проблем с движком визуального представления. До эпохи ИИ этот проект, возможно, даже не случился бы. Я не разработчик под macOS, почти ничего не смыслю в движках визуального представления. Я бы предпочел разработать его на Electron, только чтобы столкнуться с другими проблемами. Короче, сама идея проекта была бы настолько пугающей, что я бы забросил ее, даже не начав. А если бы и решился, то на разработку того же приложения ушли бы несколько выходных.
С ИИ больше нет пугающих проектов, и вам даже не нужно заранее решать, какой путь выбрать. Испробуйте их все и выясните, какой больше подходит.
И не нужно больше делать это «вслепую». Можно использовать разработку на основе спецификаций, чтобы запустить параллельно несколько версий одной идеи. В моем случае можно было бы создать и приложение на Electron, и другое, использующее систему шаблонов, а не попиксельное визуальное представление. Я мог бы даже попросить ИИ дать мне дополнительные идеи и попробовать реализовать их все. Одновременно! Суть вот в чем: если у вас есть идея, можете попробовать ее реализовать, и если она не оправдает себя, вы почти ничего не теряете. Я нахожу это невероятно воодушевляющим. Это роскошь, которой никогда раньше не было в программной инженерии. Время всегда было огромным ограничением. Больше нет.
И кто знает, что еще…
Разработка ПО на основе ИИ — все еще развивающаяся история. То, что будет дальше, трудно предсказать. Отчасти потому, что мы еще не достигли пика возможностей ИИ. Отчасти потому, что человеческая креативность практически бесконечна, и инженеры еще найдут более творческие способы применения этой новой технологии. Но в целом это захватывающий процесс, и, по моим ощущениям, он дает программной инженерии второй шанс, вдыхает новую жизнь в разработку ПО.
Наконец-то мы можем попробовать то, что не пробовали раньше. Теперь легче отмахнуться от ошибок. Мы быстрее узнаем, что работает, а что нет. Риски стали гораздо ниже. ИИ придает нам смелости. Выбор одной технологии вместо другой не ощущается как продажа души дьяволу.
Такого вдохновения мы давно уже не испытывали. Ведь любая область STEAM заключается не только в создании продуктов, но и в возможности экспериментировать, многократно ошибаться, учиться, а затем добиваться успеха. ИИ сделал эту возможность более доступной. Я с нетерпением жду следующего десятилетия программной инженерии.
Читайте также:
- 20 вопросов для собеседования по системной инженерии (DevOps)
- 12 проектов с открытым исходным кодом, которые сделают вас лучшим разработчиком
- Как выбрать ноутбук для разработки
Читайте нас в Telegram, VK и Дзен
Перевод статьи Attila Vágó: Software Development Is Getting An Unexpected Second Chance




