Адрей Сокол – В помойку IT-корпорации (страница 3)
Найти его было легко. Понять, как им пользоваться – невозможно. Это был цифровой склад мертвых текстов. Тысячи страниц, созданных сотнями людей за последние десять лет. Большинство из них были безнадежно устаревшими. Инструкции по настройке проекта ссылались на версии программного обеспечения, которые вымерли вместе с динозаврами. Схемы архитектуры были нарисованы в каком-то древнем редакторе и больше походили на детские каракули. Я переходил по ссылкам, которые вели в никуда, на страницы с пометкой «DEPRECATED», на пустые разделы с заголовком «TBD» (To Be Done), который, видимо, означал «Никогда не будет сделано». Это было не хранилище знаний. Это было кладбище знаний. Каждая страница была надгробным камнем на могиле чьего-то потраченного времени. Кто-то когда-то старался, писал это, верил, что это кому-то поможет. А теперь его труд лежал здесь, погребенный под тоннами нового цифрового мусора, и служил лишь одной цели – формально существовать, чтобы такие, как Виталий, могли говорить: «Вся информация есть в Конфлюенсе, разбирайся сам». Это была идеальная система самозащиты. Она создавала иллюзию порядка и доступности информации, в то же время являясь непреодолимым барьером для любого, кто действительно пытался что-то понять.
Через два часа бесплодных блужданий по этому цифровому некрополю я понял, что сдаюсь. Мозг плавился от потока противоречивой и бесполезной информации. Я решил прибегнуть к последнему средству – обратиться к своему «бадди». К Сергею. Я подошел к нему сзади и робко похлопал по плечу. Он вздрогнул и медленно стянул свои гигантские наушники. На лице его застыло выражение вселенской скорби, смешанной с плохо скрываемым раздражением.
«Чего?» – процедил он, не поворачиваясь.
«Привет, я Андрей, новенький. Мне сказали, ты мой бадди».
«А, да. Точно. Что-то говорили», – в его голосе не было ни капли энтузиазма. Он смотрел на меня как на досадную помеху, как на еще один баг в его и без того переполненном бэклоге.
«Я тут пытаюсь проект развернуть по инструкции из Конфлюенса, но она, кажется, немного устарела…»
Сергей издал звук, похожий на сдавленный стон. «Немного? Ха. Ее писали еще при царе Горохе. Забудь. Делай так». И дальше последовал поток технического жаргона, произнесенный со скоростью пулеметной очереди. «Клонируешь репу из нашего Гитлаба, не из общего. Потом чекаутишься на девелоп. Запускаешь докер-компоуз с файлом local.yml, он поднимет тебе базу и все зависимости. Потом ставишь ноду восемнадцатую через nvm, не системную. Делаешь npm install. Если упадет с ошибкой про питон, значит, тебе надо поставить билд-эссеншиалс. Потом запускаешь npm run dev. Должно взлететь. Если нет – почисти кеш и попробуй еще раз. Все, давай, у меня митинг через пять минут».
Он натянул наушники обратно, отрезая себя от мира, и снова погрузился в свою матрицу. Я стоял, переваривая услышанное. Из всего этого монолога я понял примерно половину. Что такое «билд-эссеншиалс»? Где лежит этот «local.yml»? Почему нода должна быть именно восемнадцатая? Его инструкция породила больше вопросов, чем ответов. Но я понял главное. Помощи здесь не будет. Здесь каждый сам за себя. Система «бадди» – это еще один симулякр, еще одна красивая обертка для гнилой конфеты. Это способ формально выполнить пункт из чеклиста для HR («назначить наставника новому сотруднику – выполнено»), не прикладывая для этого никаких реальных усилий. Твой «бадди» – это не друг и не наставник. Это просто еще один раб, на которого повесили дополнительную, неоплачиваемую обязанность, и он ненавидит тебя за то, что ты отнимаешь его драгоценное время, которое он мог бы потратить на выполнение своих собственных бессмысленных задач.
Я вернулся за свой стол, чувствуя, как первая доза яда начинает действовать. Это был яд беспомощности и изоляции. Тебя бросают в воду и смотрят, выплывешь ли ты. Но вода эта – не чистый океан, а вязкое, зловонное болото корпоративной бюрократии, заросшее тиной устаревшей документации и кишащее пираньями безразличных коллег.
К обеду мне все-таки удалось, пройдя через семь кругов ада с настройкой зависимостей и прав доступа, запустить этот чертов проект на своей локальной машине. На экране появилось то самое промо-предложение, на котором сияла оранжево-красная кнопка. Я чувствовал себя не программистом, а археологом, который по косточкам восстановил облик доисторического ящера. Я нашел нужный файл. Вот она, эта строка. `background-color: #FF5733;`. С замиранием сердца, словно обезвреживая бомбу, я поменял тройку на двойку. Сохранил. Кнопка на экране не изменилась. Я обновил страницу. Ничего. Почистил кеш. Ничего. Я потратил еще час, чтобы понять, что стили в этом проекте были зашиты еще в трех разных местах, и менять их нужно было через какую-то хитрую систему переменных в отдельном конфигурационном файле, о котором, разумеется, нигде не было написано.
Наконец, я победил. Кнопка послушно изменила свой оттенок на одну миллионную тона. Разницу мог заметить только спектрометр или человек с уникальной мутацией в глазных колбочках. Но задача была выполнена. Я сделал свой первый вклад в «великую миссию» компании. Я сделал жизнь миллионов людей лучше, изменив цвет кнопки, которую 99% из них даже не заметят. Чувство триумфа смешивалось с омерзением. Я запушил свои гениальные изменения в ветку и создал пулл-реквест. Теперь оставалось ждать, когда мои надзиратели, Виталий и Сергей, одобрят мой титанический труд.
Ровно в 11:00 по всему опенспейсу раздался тихий перезвон, похожий на тот, что бывает в аэропортах. Это был сигнал. Сигнал к началу ежедневного ритуала. Люди, как по команде, начали вставать из-за своих столов и, словно зомби, потянулись в сторону переговорной. Это был дейли-митинг. Священнодействие, призванное убедить всех, и в первую очередь самих себя, что их работа имеет какой-то смысл.
Виталий посмотрел на меня. «Ты тоже идешь».
Мы набились в небольшую душную комнату без окон. В центре стоял стол, вокруг которого разместились десять членов нашей «команды». Командой это сборище усталых, невыспавшихся людей можно было назвать с большой натяжкой. Это был скорее отряд каторжников, прикованных к одной тачке. Виталий встал во главе стола, приняв позу римского прокуратора.
«Итак, коллеги, начинаем наш дейли-синк. Давайте быстро пробежимся по статусам. Помним про три вопроса: что делал вчера, что буду делать сегодня, какие есть блокеры. Сергей, начинай с тебя».
Сергей, мой «бадди», оторвал от стула свое измученное тело. «Вчера закончил таску по интеграции с платежным шлюзом. Сегодня начинаю рефакторинг модуля аналитики. Блокеров нет». Он говорил это монотонно, глядя в одну точку. Было очевидно, что он повторяет эту мантру каждый день, и слова уже давно потеряли для него всякий смысл.
Следующий. Девушка по имени Ольга. «Вчера доделывала верстку для нового дашборда. Сегодня буду фиксить баги, которые нападали от тестировщиков. Блокеров нет».
Еще один парень, имени которого я не запомнил. «Вчера весь день сидел на митинге с продактами. Сегодня надеюсь хоть что-то покодить. Блокеров нет, кроме митингов». В его голосе проскользнула нотка сарказма, но Виталий ее проигнорировал.
И так по кругу. Каждый отчитывался о своей крошечной, вырванной из контекста задаче. Никто не слушал друг друга. Все просто ждали своей очереди, чтобы отбыть номер и вернуться к своему монитору. Это был не обмен информацией. Это был ритуал взаимного отчета перед надсмотрщиком. Каждый должен был продемонстрировать, что он не бездельничает, что он крутит свое колесо. Что он «перформит». Слово «блокер» здесь было табуированным. Сказать, что у тебя есть блокер, означало признать свою некомпетентность или, что еще хуже, выявить проблему в системе, а система не может быть неправа. Поэтому все всегда говорили «блокеров нет», даже если погрязли в проблемах по уши. Проще было тихо страдать в одиночку, чем выносить сор из избы.
Наконец, очередь дошла до меня. Десять пар безразличных глаз уставились на новичка.
«Андрей, – сказал Виталий, – тебе слово. Как проходит адаптация?»
«Вчера знакомился с проектом, настраивал окружение. Сегодня поправил цвет кнопки на лендинге. Пулл-реквест создал. Блокеров… нет».
Виталий кивнул. «Отлично. Хороший темп. Коллеги, посмотрите реквест Андрея, дайте фидбэк».
Меня бросило в жар. Фидбэк на изменение одного символа в коде? Какой фидбэк они могли мне дать? «Отличная двойка, Андрей! Очень ровная, хорошо смотрится рядом с семеркой»? Это был театр абсурда. Но все восприняли это с каменными лицами. Для них это было нормой.
После митинга я вернулся на свое место и увидел в Гитлабе комментарий от Сергея к моему пулл-реквесту. «Нужно вынести цвет в константы. У нас все цвета вынесены в файл theme.js. Переделай».
Я открыл этот файл. Это был гигантский документ на несколько тысяч строк, в котором были описаны сотни переменных для цветов, шрифтов, отступов. `primaryColor`, `secondaryColor`, `textColor`, `dangerColor`, `warningColor`. Я должен был найти подходящую константу для цвета моей кнопки или создать новую, если такой нет. Имя для нее нужно было придумать в соответствии с гайдлайном, ссылка на который, разумеется, вела на несуществующую страницу в Конфлюенсе.