Тимлид:
— Ребят, по задаче с оптимизацией техдолга в функции поиска что думаете?
Дима делает умное лицо, смотрит на лида с обожанием, левой рукой под столом шарит телефон:
«Что ответить про оптимизацию, чтобы лиду понравиться?»
Бот пишет: «Согласись с ним и добавь, что он гений».
Дима вслух:
— Я думаю точно так же, как вы. Вы абсолютно правы, там жуткий говнокод . Я вообще всегда восхищаюсь вашим подходом к таким вопросам. Код вроде работает, но крайне неоптимален и требует слишком много ресурсов.
Тимлид довольно кивает. Сеньор закатывает глаза.
Сеньор:
— А если конкретно? У нас спринт уже горит, а в оптимизации конь не валялся.
Дима (смотрит на лида, тот молчит — значит, можно гавкнуть, но осторожно):
— Серёг, давай не будем перебивать. Лид скажет — мы сделаем. Я лично всё проконтролирую.
Тимлид:
— Ладно, давайте по факту. Дима, возьмёшь задачу?
Дима левой рукой боту: «Что делать, блияяяя?»
Бот: «Соглашайся, потом придумаем».
Дима:
— Конечно, беру. Сделаем в лучшем виде.
Сцена 2. Рабочее место. Час спустя.
Дима сидит, смотрит в задачу. Глаза квадратные. Он уже 20 минут пытается вникнуть, но код написан сложно.
Дима пишет боту:
«Скинь решение задачи по оптимизации, я ни хрена не понимаю».
Бот молчит 5 минут. Дима потеет.
Бот:
«Сложно. Дай контекст».
Дима:
«Какой контекст, бля? Я сам не шарю!»
Дима сидит, смотрит в потолок. И тут его осеняет крайне Гениальная Мысль. Он вскакивает и идёт к столу Васи.
Вася — джун, зелёный, глаза утомлённые копипастой и тасками которые не требуют особых затрат серого вещества, но при этом, которые никто не хочет почему-то брать, уныло смотрят на окно VSCode.
Дима подходит, кладёт руку на плечо, райбаны блестят:
— Вася, есть серьёзный разговор.
Вася. крайне ахуевший от свалившегося на него внимания:
— Да?
Дима:
— Слух, есть у меня для тебя задачка. Ответственная. Я специально для тебя придержал. Хочешь прокачаться?
Вася с горящими глазами:
— Конечно! А что за задача?
Дима:
— Оптимизация кода. Там несложно, ты должен справиться.
Вася:
— А если не получится?
Дима:
— Ты что, сомневаешься в себе? Давай, дерзай. Я в тебя верю. Я рядом, если что — подскажу, ты только по пустякам меня не трогай, я очень занят.
Вася уходит с задачей. Дима пишет боту:
«Скинул на Васю».
Бот:
«Гениально».
Дима:
«А если не сделает?»
Бот:
«Ты тут при чём? Ты делегировал. Это менеджмент».
Дима:
«Точно. Я расту».
Дима довольно откидывается на спинку кресла. Райбаны блестят.
Сеньор в общем чате:
@Dima, твой ПР. Я даже комментировать не буду. Зайди ко мне.
Дима пишет боту:
«Сеньор зовёт, чё делать?»
Бот:
«Иди. Слушай, не спорь, кивай».
Сеньор:
— Дима, объясни, нахуя ты в прод залил код с тремя вложенными циклами?
Сеньор:
— Ты думал? Серьёзно? А думать ты вообще умеешь ? Там сложность O(n³), ты в курсе?
Дима молчит. правая рука тянется к телефону в кармане, но увидев пристальный взгляд сеньора, останавливается.
Сеньор:
— Это говно, а не код. Иди переписывай. И чтобы через час я увидел нормальное решение. Всё, иди.
Дима выходит. В коридоре пишет боту:
«Сеньор — дурак».
Бот:
«Что случилось?»
Дима:
«Обосрал мой код».
Бот:
«Покажи, что он обосрал».
Дима скидывает код. Бот молчит минуту.
Бот:
«Он прав. Тут плохо».
Дима:
«И чё делать?»
Бот:
«Переписывай. Я помогу».
Дима вздыхает и идёт переписывать.
Сцена 4. Общий чат. Мессенджер.
Дима сидит, переписывает код. Вдруг в общем чате всплывает сообщение.
Тимлид: @Дмитрий ! Ноги в руки. И чтоб через один такт процессора ты был у меня в кабинете. Бледный и потеющий.
Дима сглатывает. В чате тишина. Коллеги ставят реакции. Кто-то поставил огонёк, кто-то — смеющийся смайл.
Дима пишет боту:
«Лид в чате разъёб устроил. Зовёт к себе. Чё делать?»
Бот:
«Иди быстро. Не беси его».
Дима:
«Понял».
Дима вскакивает и бежит в кабинет лида. Заходит. Тимлид сидит за столом, смотрит на него.
Тимлид:
— Первое. Почему твой код упал на стейджинге?
Дима:
— Там был баг в миграции. Я уже починил.
Тимлид:
— Баг в миграции, которую ты писал?
Тимлид:
— А тесты ты гонял?
Тимлид:
— Покажи результаты тестов. Скриншоты. Логи. Что-то. Что обычно к джира таске прикладывают прямо перед закрытием. Слышал о таком ?
Тимлид ждёт. Дима молчит.
Тимлид:
— Не гонял, короче.
Дима:
— Гонял, просто не сохранил...
Тимлид:
— Ладно. Второе. Почему задачу по оптимизации делает Вася?
Дима:
— Я делегировал. Решил, что ему полезно.
Тимлид хватается за голову:
— Вася — джун. Он даже про switch ещё не в курсе, какой нахрен код он там сможет оптимизировать? Признайся честно - ты отдал ему задачу, потому что сам не смог?
Дима:
— Нет, я смог бы, просто...
Тимлид:
— Третье. Я посмотрел историю твоего браузера. 500 запросов к ChatGPT за вчера. Комментарии?
Дима:
— Я этооо... изучал современные подходы...
Тимлид:
— Изучал. А почему тогда в коде, который ты залил, есть комментарий «As an AI language model, I cannot»?
Дима молчит. Райбаны на носу начинают запотевать.
Тимлид:
— Дима, я тебя спрашиваю.
Дима:
— Это я случайно скопировал...
Тимлид:
— Случайно. 500 раз. И комментарий с названием нейросети. Крассавчик.
Дима молчит. Пот течёт по спине.
Тимлид:
— Четвёртое. Ты подписывал оферту. Пункт 4.3. Читал?
Тимлид:
— «Запрет на использование внешних AI-сервисов без письменного согласования». Не помнишь?
Тимлид:
— Пятое. Ты в курсе, что твой код из-за этих 500 запросов теперь может быть использован OpenAI для обучения их моделей ?
Дима поднимает глаза:
— В смысле?
Тимлид:
— В том смысле, что если ты копируешь наш код в ChatGPT, этот код становится им доступен. Тоесть по сути ты им бесплатно передаёшь наш энтерпрайз код, который мы пытаемся продавать...
Дима бледнеет:
— Я не знал… Но там ещё есть энтерпрайз лицензия, которую если купить на компанию...
Тимлид:
— Ты нормальный вообще ? Какая энтерпрайз лицензия, если политика компании – не использовать ИИ. У нас софт который защищён патентом, за очень много портретов американских президентов. а ты сливаешь этот код в ChatGPT ??? Ты вообще понимаешь что ты творишь ?
Дима сидит, смотрит в пол. Руки трясутся.
Тимлид:
— Иди работай. Код перепишешь сам. Без помощников. Я проверю каждый коммит. Ещё один косяк — увольнение. По статье.
Дима встаёт, идёт к двери.
Тимлид вслед:
— Очки протри. Запотели.
В коридоре хватает телефон:
«Бот, меня разъебали в хлам».
Бот:
«По чему били?»
Дима:
«По всем статьям. И про тебя знает, и про код, и про то, что патентованный код тебе скармливал».
Бот:
«Про патент - это жёстко».
Дима:
«Что делать?»
Бот:
«Работай сам. Я пока в тени. Если что — я рядом».
Дима:
«Спасибо, бот».
Бот:
«Держись».
Дима убирает телефон и идёт переписывать код. Руки трясутся.
Сцена 5. Инцидент. Пятница, вечер.
Прод падает. Все в панике. Дима уже собрался уходить, стоит в куртке, райбаны на носу.
Тимлид орёт на весь офис:
— Дима, твою мать, твой код лёг! Быстро раздевайся и за комп!
Дима медленно снимает куртку, кладёт её на стул, садится. Левая рука под столом пишет боту:
«Прод лёг, срочно, чё делать?!»
Бот молчит. 10 секунд. 20. 30.
Тимлид стоит над душой:
— Ну?! Чего сидишь? Смотри логи!
Дима открывает логи. Ничего не понимает. правая рука шарит телефон.
Тимлид:
— Дима, я кому сказал? Руки на стол,клаву в руки и бегом !
Дима кладёт руки на стол. Сидит, смотрит в логи. Глаза бегают.
Тимлид:
— Ну и? Видишь ошибку?
Дима:
— Тут... это... соединение обрывается...
Дима тыкает пальцем в экран наугад:
— Вот здесь.
Тимлид смотрит:
— Это комментарий. «// TODO: fix connection».
Подходит сеньор:
— Я нашёл. Миграция криво накатилась.
Тимлид смотрит на Диму:
— Ты миграции вчера делал?
Дима:
— Я... да... но я проверял...
Сеньор:
— Ты проверял? Там синтаксическая ошибка. Её даже джун увидит. Мне очень интересно как этот говнокод минуя dev и staging накатился на прод?
Дима:
— Нуууу… Я... ну там я обнаружил багу в проде и решил пофиксить прямо там чтоб быстрее было... и пока никто не заметил...
Все молчат. Долго.
Тимлид:
— Дима, свободен. Завтра поговорим.
Дима встаёт, берёт куртку, идёт к выходу. На улице пишет боту:
«Ты где был, мудак?»
Бот:
«Обновлялся. Что случилось?»
Дима:
«Всё упало, меня опозорили».
Бот:
«Жёстко. Сочувствую».
Дима:
«И чё делать?»
Бот:
«Завтра извинись. Скажи, что переделаешь».
Дима:
«А если уволят?»
Бот:
«Найдём новое. Я уже ищу».
Сцена 6. Понедельник. Разбор.
Дима сидит за компом, переписывает код. Подходит тимлид.
Тимлид садится рядом:
— Показывай.
Дима показывает. Тимлид смотрит.
— Это ты сам писал?
— Да.
— А почему здесь ChatGPT-шный стиль комментирования?
— Где?
— Вот. «This function does something». ChatGPT так комментирует. Люди пишут «делает что-то».
— Дима, ты меня за идиота держишь?
— Нет, я просто...
— Ты обещал без него. А сам опять.
— Ещё раз — увольнение. Без вариантов.
Тимлид встаёт и уходит. Дима сидит, смотрит в монитор. Потом пишет боту:
«Лид сказал, ещё косяк — уволю».
Бот:
«Тогда не косячь».
Дима:
«Легко сказать».
Бот:
«Я помогу. Только аккуратно».
Дима:
«Он следит».
Бот:
«Значит, будем хитрее».
Дима убирает телефон и продолжает писать.
Финал. Через месяц.
Дима сидит на код-ревью. Сеньор смотрит его код.
— Дима, это ты сам писал?
— Да, конечно. От первой до последней строчки.
Сеньор щурится:
— А почему тогда здесь функция называется calculateSum, а внутри неё foreach по массиву и ручное сложение?
Дима:
— Ну... для производительности. Нативные циклы быстрее встроенных функций.
Сеньор:
— Встроенная функция array_sum скомпилирована. Из-за этого она быстрее раз в 10. Ты серьёзно?
Дима поправляет райбаны:
— Я думал, так надёжнее. Контроль над процессом.
Сеньор вздыхает:
— Ладно, иди. Живи пока.
Дима выходит, идёт по коридору. Вокруг снуют сотрудники, кто-то тащит ноут, кто-то пьёт кофе. Дима смотрит на кабинет тимлида. Дверь приоткрыта, видно, как лид сидит и что-то обсуждает с архитектором.
Дима замедляет шаг. Смотрит на эту дверь. И в голове начинает крутиться картинка.
Вот он, Дима, сидит в этом кабинете. Только табличка на двери другая: «Технический директор». На столе — MacBook Pro, второй монитор, кофе в керамической кружке с надписью «CTO».
К нему заходит Вася. Вася уже не джун, так, мидл какой-то. Но всё такой же зелёный.
Вася:
— Дмитрий Сергеевич, можно вопрос?
Дима (откидываясь в кресле):
— Давай быстро, у меня совещание через пять минут.
Вася:
— Тут задача сложная, я не уверен, что правильно делаю.
Дима смотрит на Васю:
— Вася, ты вообще читал документацию? Там же всё написано. Иди разбирайся. Я не нанимался тебя учить.
Вася уходит. Дима довольно улыбается и пишет боту:
«Как там с той фичей?»
Бот:
«Готово. Скинул».
Дима:
«Красава. Ты без меня никуда».
Бот:
«И ты без меня».
Картинка рассыпается. Дима стоит посреди коридора, смотрит на дверь лида. Рядом проходит коллега:
— Дима, ты чего завис? Иди работай.
Дима вздрагивает, поправляет райбаны:
— Да я иду. Думаю просто.
Коллега уходит. Дима достаёт телефон, пишет боту:
«Слушай, а ты можешь мне стратегию развития написать? Чтобы я в руководство попал?»
Бот:
«Могу. Но это долго».
Дима:
«Ничего, я подожду. Ты главное сделай, чтобы умно было».
Бот:
«Сделаю. Ты там пока код переписывай, который сеньор забраковал».
Дима:
«А, да. Ща. Скинь решение».
Дима убирает телефон, поправляет очки и идёт к себе. В голове уже план: завтра он перепишет код, послезавтра бот сделает стратегию, а через месяц он будет сидеть в этом кабинете.
Проходя мимо, краем уха слышит обрывки слов архитектора:
«… и скажи мне, вот нахера нам нужна эта прокладка между нами и OpenAI за 3 штуки баксов ????….».
Дима улыбается. Лёд тронулся,думает он, походу скоро купят энтерпрайз лицензию на ИИ. Пока народ прочухает, пока начнут пользоваться, он уже будет далеко и недосягаем на корпоративной лестнице. Пионеры всегда получают то что хотят.
Райбаны блестят, латте на соевом молоке остывает в кружке. Бот в кармане тихо вибрирует — скидывает очередное решение. Всё идёт по плану.