TypeScript !== PHP. Сказ о душном ревью (часть 2)

Победитель не получает ничего

Спор о том, как писать понятный код, зашел в глухой тупик (первая часть)

Фронтендер наступил на горло собственной песне, вздохнул и покорно пошел расставлять явные типы и заворачивать логику в классы. В голове крутилась одна мысль: «Чем быстрее сдам, тем быстрее этот кошмар кончится». Код мгновенно запестрил избыточными конструкциями, зато пул-реквест наконец-то получил заветный зеленый апрув. Лид удовлетворенно хмыкнул, PM закрыл спринт, клиент получил фичу. Казалось бы, конфликт исчерпан, все довольны.

Но у вселенной специфическое чувство юмора.

«Аутсорс-подмога» внезапно затянулась. Задача за задачей, фича за фичей — вместо пары недель фронтендер застрял на этом проекте больше чем на год. Каждый рабочий день превратился в сизифов труд: переписывание лаконичного TS-кода в избыточный «PHP-style» Франкенштейн. Разработчик успокаивал себя как мог: «Работа есть работа, мне за это платят, скоро всё закончится».

Точка кипения

Фронт безумно устал. Каждое утро начиналось с удушающего чувства бессилия, ведь его профильную экспертизу раз за разом множили на ноль ради субъективных хотелок человека, который банально не знал стек. В какой-то момент накатила глухая апатия, стремительно переросшая в тяжелое выгорание. Поняв, что здоровье и нервные клетки дороже любых денег, фронтендер написал заявление и уволился.

В чате команды воцарилась тишина. Лид торжествовал — он «победил» строптивого формошлепа, отстоял свои священные каноны и остался единоличным королем. Менеджмент облегченно выдохнул: «Ну, наконец-то эти споры в ревью прекратились! Теперь заживем, а освободившееся время польется с пользой на решение задач». Все были довольны!

Сложившаяся судьба

Фронтендер ушел, и забвение быстро смыло контекст. Но бизнес-требования никуда не делись, а фичи на фронте сами себя не напишут. Лид, оставшись наедине со своей преданной бэкенд-командой, гордо взяли фронтовые задачи на себя. Ведь фронтенд — это же просто «картинки подвигать и формочки покрасить», верно? Логику, если что, на jQuery допишем, а то и ИИшку подключим.

Вот только без глубокого понимания экосистемы процесс разработки превратился в мучение. Скорость упала до нуля, баги плодились быстрее, чем их успевали фиксировать, а нанимать нового фронта на проект, где лид душит процессы своими правилами, оказалось слишком дорого и бессмысленно — люди просто не шли или не подходили.

Финал оказался закономерным и по-своему жестоким.

Может, руководство компании посмотрело на графики и посчитало убытки от бесконечной разработки, которая зашла в глухой тупик. Может, команда сразу поняла, что проект они банально не вывезут. А может, всё так и задумывалось изначально… Но факт остается фактом: последний проект, над которым команда так долго и мучительно работала, заморожен на неопределенный срок.

Так или иначе, бизнес просто не вывез амбиций одного тимлида, который очень хотел, чтобы TypeScript был похож на PHP.

А фронтендер? А фронтендер сейчас пьет кофе, читает любимые книги, восстанавливает сожженные нервы и занимается делом, которое ему действительно по душе. Разработку он, конечно же, не забросил.