или “Страшная сказка: продолжение-3”
В предыдущих разборах серии («О бедном луддите замолвите слово…», «Об Open-source — спасителе человечества…», и в исходной «Страшной сказке») я разбирал, кого, что и почему мы теряем в ходе AI-кризиса: воронку джуниоров, цикл воспроизводства экспертизы, frontier-фронт, наработанные в OSS анклавы. Каждый раз картина была про минусы и проблемы.
В этой статье — про другую сторону медали. Потому что у того же самого процесса, помимо потерь, есть некоторое количество “трофеев”. И стоит их упомянуть, чтобы картина была полной и честной.
Для этого я расскажу “байку”…
Сразу оговорюсь: всё, что описано ниже — без имён, без названий компаний, и с лёгким смешением реальных случаев в обобщающий портрет. Многие смогут сказать «это же про меня», и скорее всего ошибутся, ибо таких ситуаций за последние два года было, только на моих глазах, не одна и не две…
Как это было (в последний раз)
Пришел ко мне знакомый (назовем его В) с просьбой о консультации. Он Unity-мид довольно крепкого уровня и с классической формой “синдрома самозванца”. На работе ему выдали задачу — спроектировать систему наград для игрового проекта. Награды могут быть разные: ресурсы, скины, опыт, рандомные наборы из лут-таблиц, специальные предметы. Награды могут выдаваться разными способами: напрямую в инвентарь, через анимацию сундука, через всплывашку, через коробку со скином, через UI-баннер. Награды могут группироваться, иметь веса, выбираться рандомно из набора.
Он сделал. Посмотрел на результат… и решил написать мне. Что-то ему не нравилось…
Задача, как ни крути, тривиальная, даже несмотря на то, что у них в студии свои “правила и нормативы” для формирования кода. Эти “правила” заставили меня плакать кровавыми слезами… но это их монастырь, и я спрятал свой устав поглубже…
В целом все было плюс-минус приемлемо, если не считать одного “но”. Сундук (класс-пример для выдачи награды игроку) оказался наследником класса наград, с добавленными полями визуальных настроек. Грубое смешение доменов, убивающее напрочь весь смысл VContainer и собственно DI. Указал на проблему. Предложил исправить.
Через два часа присылается новый вариант… структура разбита на две ветки с идентичным функционалом и разными названиями… сундук — наследник через прокладки от класса наград… Ну — мид,… бывает. На этом уровне простительно. Еще одна короткая лекция про домены, связность, слои данных и абстракций. Почему-то В постоянно “ломался” на моменте, что сундук тоже должен быть вариантом награды, но, вроде бы, в итоге когнитивный барьер был пробит. На следующий день мне присылается грязноватая, но архитектурно приемлемая версия без явных ляпов. Поздравив чувака с личным ростом, распрощался и пошел заниматься своими делами.
Это была присказка. Сказка начинается тут.
На следующий день В показал свой код своему сеньору, для одобрения мержа. Его сеньор — назовём его Л — посмотрел изменения, и развернул их, потребовав вернуть как было. То есть наследование сундука от награды. То есть тот самый изначальный антипаттерн.
В попытался объяснить… Он скинул для проверки мне текст своих тезисов, и я был приятно удивлен. ВСЕ, что я ему объяснял, было переформулировано своими словами. И сделано это было корректно до запятой! То есть он реально понял все, что я объяснял (ох эти приятные моменты, возвращающие веру в человечество…).
Но сеньор Л не оценил полноты и точности аргументации, отбив все фразой “слишком сложно и непонятно”.
Узнав об этом, я аж завис.
Подумав, что “может все же я сам дурак?”, я написал знакомому со стажем 13+ лет в геймдеве. Признаюсь честно, когда он на мой вопрос ответил, чуть ли не дословно цитируя мои аргументы, я выдохнул с огромным облегчением. Все же моя кукушка меня не покинула — это мир сошел с ума, так что все в порядке.
А теперь самое смешное и грустное:
Из любопытства я начал задавать вопрос о правильной сепарации слоев разным ИИ моделям. И четыре разные модели, включая богомерзкий поверхностный бесплатный ChatGPT, выдали мне КОРРЕКТНЫЙ ответ!
И тут я вынужден был задать себе вопрос… Все же, может, есть и положительные моменты в “атаке ИИ на человечество”. Как минимум, они не так явно лажают на задачах МИНИМАЛЬНОЙ сложности. Да, они не умеют в комплексные задачи и их не стоит подпускать к архитектуре проекта в целом. Но они хотя бы не путают слои абстракции и понимают разницу между данными и представлением без многостраничных дискуссий, в отличие от некоторых “сеньоров”…
Сложим картинку
С одной стороны — действующий «сеньор», получающий зарплату 200–400 тысяч рублей в месяц (точную цифру я не знаю, но на такой позиции ставка в этом диапазоне должна быть), отвечающий за архитектурные решения в проекте, имеющий формальное право последнего слова в рамках команды.
С другой стороны — публично доступная ИИ-модель, отвечающая на тот же вопрос корректно за тридцать секунд работы и условные двадцать копеек compute.
Сеньор требует, чтобы код был архитектурно неправильным. ИИ объясняет, почему это будет неправильно и какие проблемы возникнут.
Это не моё мнение против его мнения. Это его мнение против консолидированного ответа четырёх независимых моделей, каждая из которых обучалась на корпусе текстов, отражающем коллективную инженерную мудрость десятилетий (тут прибита табличка «сарказм»). Это его мнение против базовых концепций того самого фреймворка, который они включили в проект как фундамент!
В терминах рыночной стоимости: компания платит ежемесячно сумму, за которую можно купить ChatGPT Pro подписки на двадцать сотрудников, за то, чтобы получать архитектурно худшие решения, чем дала бы бесплатная модель.
Класс «квази-сеньор»
Стоит назвать вещь своим именем. Имеется широкая прослойка специалистов, формально занимающих сеньор-позиции, чья реальная компетенция:
— Не превышает того, что моделирует современная LLM по тем же вопросам.
— Часто ниже того, что моделирует современная LLM — потому что LLM хотя бы не путает «is a» с «has a».
— Защищается не качеством технических решений, а институциональной позицией: правом разворачивать чужой код, правом нанимать и увольнять, правом эскалировать.
Представители этой ниши существовали всегда, но в последние годы их кол-во резко увеличилось в результате хайпа в ИТ, на волне ударного роста зарплат и размножения курсов типа “вкатись в ИТ за неделю!”. Но конкретно сейчас интересно зафиксировать, что этот класс продолжает существовать в момент, когда его технический вклад уже отрицателен относительно публично доступного инструмента.
Это не баг в системе. Это её текущее равновесие.
Что будет дальше
И вот теперь интересный момент.
Можно было бы предположить, что в условиях ИИ-кризиса, который начинает давить на человеческие кадры и требовать от них новых свершений, такие квази-сеньоры первыми вылетят на мороз.
Но тут нужно заметить, что, к сожалению, реальность часто показывает обратное: слишком легко бросить пыль в глаза, жонглируя модными и мейнстримными терминами, слишком сложно реально замерить уровень компетенций человека, не имея таких компетенций самому, и слишком часто им удается переложить ответственность на других членов команды, выскользнув из-под удара.
Если бы я смотрел через розовые очки оптимиста, я бы предположил следующий сценарий:
Начнется системное очищение, которое профессии было нужно уже лет десять как. Слой квази-спецов накопился за годы, когда компании нанимали быстрее, чем успевали оценивать качество. В итоге образовалась прослойка людей с титулом без содержания. Эта прослойка занимает позиции, на которых должны бы расти настоящие сеньоры. Эта прослойка блокирует правильные технические решения снизу. Эта прослойка тратит зарплатный бюджет, который мог бы пойти на обучение мидлов и юниоров.
Рухнув, эта прослойка освободит:
— Зарплатный фонд для оплаты компетентных людей выше средней.
— Архитектурное пространство для проектов, которые сейчас стоят с насильно сломанной композицией.
— Карьерные позиции для мидлов, которые на самом деле могут стать сеньорами, но сейчас уперлись в потолок из людей с титулом.
— Психологическое пространство для тех, кто сейчас тихо страдает под квази-сеньорами, как В из нашего сценария.
Но если вернуться чуть ближе к реальности, то скорее всего это будет печальнее:
Очищение позиций, скорее всего, будет происходить путем банкротства студий вместе с этими “сеньорами”. Зарплатный фонд уйдет на закрытие долговых обязательств. Архитектурное пространство останется невостребованным. Карьерные позиции уйдут вместе со студией и на рынке труда окажутся плюс Х специалистов без работы… и есть только одна надежда, что квази-сеньор не сможет пробить барьер очередного собеседования, вновь закрываясь красивыми словами без их понимания… история покажет…
Так есть ли плюсы на этой “стороне медали”?
Разумеется, есть.
-
Как бы мне ни были неприятны тенденции вайб-кодинга, каким бы мрачным я ни видел будущее человечества в этом направлении, я не могу не признать полезности ИИ как минимум при ревью кода. Мелкие архитектурные косяки и опечатки он находит влёт. Да, не всегда его критика корректна, да нужно регулярно пинками возвращать его в границы здравого смысла… но если сравнивать ИИ с такими вот “квазиками”, получается однозначная картина — ИИ обеспечивает минимальную базу архитектурной и логической верификации выше, чем многие специалисты с заявленным уровнем senior.
-
Какие бы ляпы не совершал условный ChatGPT при генерации кода, это на порядок удобнее и понятнее кейсов на условном StackOverflow или в гугле. Можно попробовать поиграть с условиями задачи, задать уточняющий вопрос и получить оперативный подробный ответ, без пояснений, что ты даун, ушлёпок и “чего ты тут забыл”…
-
Для опытных разработчиков ИИ может заменить напарника джуна/мида, быстро формируя простые стандартные куски кода в некритичных узлах проекта.
Скорее всего, есть что-то еще.
И конечно, нужно оговориться, что все эти плюсы — они в моменте и я все равно считаю, что в таком виде, как сейчас, развитие ИИ ведет цивилизацию в тупик техножречества, но эта история напомнила мне, что каргокульт в ИТ существовал и без ИИ.
Я встречал лично, слышал от знакомых и друзей и читал на просторах интернета про множество студий, где за формой абсолютно терялось содержание. Они словно копировали то, что видели где-то в постах на LinkedIn: брали как базовый паттерн DI, потому что это “правильно”; использовали VContainer, потому что он передовой и прогрессивный; вводили запрет статики, потому что это “антипаттерн” (интересно, они хоть смысл этого термина понимают?) и т.д. и т.п. Но в результате все равно раз за разом получался легаси монолит, потому что если натоптать дорожку в виде ВПП и построить соломенный самолет, это не принесет ящики с гуманитаркой.
Карго-культ в чистом виде… И да, он был и без ИИ. Просто с ним он развивается быстрее.
Не контр-аргумент к серии
Подчеркну, чтобы не было путаницы: эта статья не отменяет катастрофический прогноз. Кадровый разрыв в воронке остаётся. Фронтир-исследовательский класс остаётся под ударом. OSS-прослойка остаётся ограниченной по объёму (см. «Об Open-source…»). Apollo-эффект в его жёсткой формулировке остаётся в силе.
Эта статья — про то, что внутри общего катастрофического движения есть локальный позитив: инструмент, разрывающий цепочку воспроизводства кадров, способен оказывать помощь в работе, обучении и верификации при правильном его использовании (то есть в условиях, когда от тебя не требуют увеличить скорость работы х10, потому что тебе выдали подписку на Курсор, и ты можешь тестировать границы адекватности результата, меняя входные данные и задавая уточняющие вопросы).
Послесловие
Тем, кто узнал себя в роли В из сценария: ничего из нас не делается за один день. Ситуация, в которой вы находитесь, — объективно ненормальная. Не ваша слабость. Не ваше плохое понимание. Не ваша вина. Это структурное условие эпохи, и оно проходит.
Стратегия выживания: итальянская забастовка плюс пет-проект просто чтобы не протерять квалификацию. На работе — делать строго то, что просят. Не лезть с инициативой, не пытаться переделать систему изнутри. Беречь нервы и силы для выходных.
А на выходных — собственный проект, в котором вы пробуете правильные решения, видите, что они работают и растете над собой. Пусть он не будет коммерческим, но это будет портфолио. А главное — ваш личный инженерный полигон, на котором вы лично сможете проверять и оценивать решения на “правильность”, “прочность” и “чистоту”.
Через год-два-три ваш собственный проект станет вашим портфолио, ваш «сеньор» останется в той же роли, что и сейчас, а вы — найдёте команду, где титул вашего предыдущего руководителя никого не интересует, а интересует то, что вы умеете построить… или не найдете. Но хуже от этого точно не будет.
Тем, кто узнал себя в роли Л из сценария: вы пока в безопасности. Но только пока. Каждый месяц, который вы продолжаете разворачивать правильные технические решения на основании титула, вы накапливаете в проекте технический долг, за который однажды кто-то предъявит счёт. Скорее всего, вы сможете защититься титулом… Раз вы в таких условиях стали “сеньором” и/или “тимлидом”, вы достаточно хитрожопые и язык у вас подвешен неплохо. Но с таким грузом проект рано или поздно рухнет, и на морозе окажетесь вы все.
У вас есть выбор. Он есть всегда. Но озвучивать я его не буду — он достаточно очевиден…
ссылка на оригинал статьи https://habr.com/ru/articles/1041570/