О смысле автоматизации
В последнее время я всё чаще наблюдаю происходящие в среде инженеров-программистов случаи отрыва от реальности, проявляющиеся в маниакальном стремлении к построению конвейеров разработки программного обеспечения. Поймите меня правильно, я совсем не скептик в отношении применения искусственного интеллекта: большие языковые модели действительно коренным образом изменили саму парадигму разработки ПО, и я сам за последние полгода полностью перестроил своё мышление и деятельность на spec-first и AI-native подходы. Но я вижу, что некоторые инженеры зашли в этом перестроении мышления под AI так далеко, что потеряли всякую связь с реальностью.
Многие программисты, да и я сам, любят играть в компьютерную игру Factorio, в которой задача игрока - построение фабрики, состоящей из соединённых друг с другом производственных линий и конвейерных лент, перемещающих изделия из одного "цеха" в другой. Сейчас многие программисты строят на основе технологий искуственного интеллекта фабрики разработки программного обеспечения, включающие в себя и создание спецификации продукта, и проектирование дизайна приложения, и разработку приложения, и его тестирование, и маркетинг. Идеальный сценарий использования в таком конвейере выглядит так: на созвоне команды люди разговаривают про какую-то новую функцию приложения, инструмент по распознаванию голоса превращает запись звонка в текст, LLM суммирует этот текст в краткое попунктное изложение "хотелок", превращает эти хотелки в чёткую спецификацию, согласно этой спецификации создаёт дизайн функции в приложении, разрабатывает функцию и тесты на неё, после прохождения тестов функция выкатывается на А/Б тестирование, и при успехе в А/Б тестировании функция раскатывается на всех пользователей, и ИИ пишет маркетинговый анонс новой функции в социальные сети. С инженерной точки зрения, это бесконечно красиво. С экономической же точки зрения, смысла в этом конвейере немного.
Я читаю много статей про построение таких технологических линий по разработке софта, и раз за разом у меня возникает вопрос к авторам, на который толком никто не может мне ответить. Я прошу авторов показать, что конкретно выпустили их "фабрики софта". Чаще всего мне либо ничего не показывают, либо показывают что-то, что можно навайбкодить без всех этих ухищрений или даже написать руками без ИИ за вменяемое время. Представьте себе, что вы видите посреди поля огромный завод со множеством цехов, со сложной роботизированной автоматизацией внутри каждого из них, вы подходите к директору этого завода, и спрашиваете, что же сходит с его конвейера, а он либо ничего не может вам показать, либо показывает сошедший с конвейера в единственном экземпляре "Запорожец". Как писал Салтыков-Щедрин, от него кровопролитиев ждали, а он чижика съел. Такой уровень бессмысленной автоматизации подобен обработке дачных шести соток промышленным комбайном. Эта автоматизация делается исключительно ради удовольствия автоматизатора, экономической целесообразности в ней нет.
Любая автоматизация имеет экономический смысл только при часто повторяющемся и легко масштабируемом "в ширину" процессе. Например, автоматизация обработки полей трактором вместо ручного труда имеет смысл, так как обработка полей повторяется ежегодно, и её легко масштабировать на новые тысячи гектаров земли. В случае программного обеспечения у нас попросту нет потребности в постоянном добавлении в приложения новых функций. Уже до эпохи ИИ многими приложениями стало трудно пользоваться из-за того, что в них стало слишком много функций, а магазины приложений стали тонуть в приложениях-клонах. При ограниченном спросе бесконечный рост предложения не имеет экономического смысла.
Конечными потребителями любой экономической цепочки являются субъекты - люди и государства. B2B существует только потому, что существует B2C. А количество возможностей потребления людьми и государствами приложений и контента физически ограничена - потреблять сходящие с "фабрик софта" новые функции попросто некому. Можно выпускать по двадцать новых функций в неделю, но ими никто не будет пользоваться, а все наоборот будут ругаться, что интерфейс опять изменился в худшую сторону. У одного из описанных мною строителей софтверных фабрик я обнаружил блог с сотнями сгенерированных LLM постов - и каждую неделю с конвейера сходит по десять новых. Кто это всё будет читать, если это не читает даже сам "автор" блога?
Идеальным примером бессмысленной автоматизации может служить концепция "умного дома" с подключёнными к интернету лампочками, розетками и шторами. В рекламном проспекте всё красиво, в реальности же широкой популярностью умные дома не пользуются, так как эта технология пытается решить выдуманные проблемы. Что если вам нужно выключить свет на кухне, находясь на другом конце земного шара? Реальные же потребности людей умные дома не удовлетворяют. Например, несколько лет назад в купленной мною стиральной машинке я обнаружил возможность подключить машинку к вайфаю и запустить стирку через мобильное приложение. Какой невыдуманный сценарий использования решает эта функция?
Стирку нужно рассматривать не как отдельный процесс, а как часть конвейера по удовлетворению человеческой потребности в чистой и красивой одежде. Выглядит этот конвейер так: человек носит одежду, она пачкается и пропитывается потом, человек бросает грязную одежду в корзину для белья, бельё из этой корзины раз в определённый период порциями перекладывается в стиральную машину и стирается, после стирки одежда достаётся из машинки и выкладывается на сушилку, после того, как вся одежда высохнет, она гладится и складывается в шкаф. Этот конвейер превращает грязную одежду в чистую и опрятную, чем удовлетворяет человеческую потребность в чистоте и красоте. Вайфай в стиралке с управлением стиркой по телефону ничего в этом процессе не упрощает. Реально полезные и упрощающие жизнь улучшения этого процесса - это встроенная в стиралку сушилка, которая два шага процесса превращает в один, и использование услуг прачечной, то есть аутсорсинг всего процесса вовне. Другой реальной оптимизацией станет распространение домашних роботов-слуг со встроенным искусственным интеллектом, которые смогут сами перекладывать бельё, стирать, сушить, гладить и складывать в шкаф.
Всегда нужно думать о том, в чём именно заключается реальная польза от технологий. Открывшиеся с появлением больших языковых моделей возможности по интеллектуальной автоматизации процессов завораживают, но реальная польза от внедрения этой автоматизации есть не во всём. Нужно различать, что действительно экономически эффективно, а что - просто баловство. Кроме того, самое тяжёлое в разработке принципиально неавтоматизируемо с помощью искусственного интеллекта: поиск ответа на вопрос, что именно и зачем мы делаем. Самое тяжёлое - быть субъектами. Немецкий философ Фридрих Ницше писал, что тот, у кого есть Зачем жить, сумеет выдержать почти любое Как. Сейчас в строительстве софтверных фабрик большинство работает над тем, как производить софт, но совсем не задумываются над вопросом "зачем?".
Более того, большинство разработчиков сейчас принципиально "копают не туда". Все думают над тем, куда бы ещё внедрить искусственный интеллект, хотя на самом деле в мире стремительного распространения ИИ потребности людей и, соответственно, экономические возможности для разработчиков лежат в прямо противоположном направлении: людей начинают заботить вопросы, как находить качественный контент в мире бесконечно генерируемого ИИ-шлака, как структурировать своё собственное мышление, как сделать так, чтобы дети не тупели от ИИ и соцсетей, как обрести ценность в мире бесконечного копирования и симулякров. Этот путь труден, но настоящие сокровища лежат именно на нём...