Привет, Хабр! После трёх лет в роли руководителя команды разработки я принял решение вернуться на тихую, уютную позицию обычного разработчика. Ниже будет немного рефлексии о разработке, менеджменте и бизнесе по-русски через призму моего опыта и восприятия. Итак, в марте 2022 года я решил сменить место работы. Вообще, я созрел на это ещё в декабре 2021, но ждал выплаты годового бонуса. Премия в три оклада при наличии семьи и ипотеки — это фактор, сильно ограничивающий мобильность. В здравом уме от таких денег никто не отказывается, и ты начинаешь «высиживать» — терпеть, как бы плохо ни было, сжигая последние крохи эмоционального здоровья, выгорая, но дожидаясь выплаты заветного бонуса. Ужасно и… обыденно. Моя новая должность называлась руководитель направления разработки финансовых сервисов. О боже, как гордо это звучало! В самый раз, чтобы потешить ЧСВ. Я отвечал за создание оператора финансовой платформы. До меня проект уже развивался примерно год силами небольшой команды. Самого продукта на тот момент, по сути, не было: существовал ряд разрозненных сервисов, которые плохо работали по отдельности и практически никак все вместе. Разработка велась в отдельных feature-ветках без функциональных тестов; ветки мержились в мастер только по завершению ручного тестирования. На тот момент на проекте был всего один тестировщик, и он тоже пришёл недавно. Как результат — фичи в ветках висели очень долго, тестировались слабо, часто возникали конфликты слияния, а само слияние порождало каскад новых ошибок. Встречали такое? Один из первых pull-request’ов, который я ревьювил, провисел более полутора месяцев. И таких «висяков» было около десятка на момент моего прихода. А потом я обнаружил сервис, разработка которого велась, но была остановлена. И было ещё несколько сервисов, которые за предыдущий год сделали, но уже не планировали вводить в эксплуатацию (пара миллионов рублей слитого в никуда бюджета?). Разумеется, всё это подавалось под соусом MVP и гибких методологий разработки, но при этом не было ни одного демо для бизнес-заказчиков. Они (бизнес) вообще не интересовались тем, что делает команда. Но терпение уже заканчивалось: все хотели результат здесь и сейчас. Так часто бывает. Бизнес «забивает» на проект, ожидая, что умные парни возьмут и всё сделают, как надо. Без контроля, без выравнивания ожиданий, просто надеясь, что оно как-то само сложится. Аргумент всегда примерно один: «Ну мы же вам зарплату платим — делайте, когда будет готово — посмотрим, а сейчас нам некогда». Другая крайность, которая часто встречается, это микроменеджмент. Большой начальник, обычно программист из девяностых или «внедренец всея Руси», который регулярно сыплет своими гениальными идеями, как делать современные высоконагруженные сервисы. Сталкивались с такими?) Совет: добивайтесь от бизнеса визуализированного roadmap’а, каких-то вех или реперных точек, встречайтесь и регулярно синхронизируйте ожидания, чтобы не стать козлом отпущения. Первые месяцы я «вджобывал» как проклятый, пытаясь разобраться в хитросплетениях местной бизнес-логики и стараясь заставить этого Франкенштейна двигаться в нужную мне сторону. Я был за всех: тимлид, техлид, архитектор, ментор, главный разработчик, чуть-чуть аналитик и тестировщик. Это, как правило, особенность работы в небольших компаниях, которые одним хорошим высокооплачиваемым специалистом пытаются заткнуть свои кадровые дыры. Несмотря на все трудности, в конце мая 2022 (спустя два месяца после моего прихода) мы заставили продукт работать и успешно провели демо сначала для бизнеса, а потом и для аудиторов ЦБ РФ. Это был успех: и мой, и команды, но… Неважно, как быстро вы бежите — дальше бежать придётся ещё быстрее. Бизнес очень любит громкие обещания: нужно всех обогнать, утереть нос конкурентам, показать, что мы «ого-го»! Инвесторы должны сиять при виде финансовых показателей. И весь процесс строится вокруг этого — поставить заранее недостижимые цели, а потом героически страдать. Когда абсолютно всем в руководящих кругах становится очевидно, что успеха не будет, начинается этап манипуляций: где-то приукрасить, где-то обойтись полуправдой, а где-то и откровенно слукавить. Всё во имя достижения великих целей! И когда результат ручного insert’а в БД преподносится, как успешная интеграция с новым партнёром, скажите, как на это реагировать? Сразу после успешного прохождения аудита ЦБ РФ возникла срочная (других ведь не бывает) задача по развёртыванию промышленной площадки. Ранее никто таким не занимался, часть инженеров из команды эксплуатации была в отпусках (лето же!), плюс был кадровый голод из-за недавно уволившихся людей. Как результат — вынос на production занял целый месяц. Во время выноса на прод мы полностью переделали роутинг на фронте, а ещё словили кучу всевозможных багов и инфраструктурных проблем: три десятка связанных тикетов в Jira и почти 70 часов залогированного лично мной времени. Бизнес рвал и метал: была неделя, когда я каждый вечер рапортовал о статусе работ, и почему ещё не готово. Бывает, что наверху сидят ситуативные микроменеджеры, способные неделями/месяцами не обращать на вас внимание, но потом в мгновение задолбать всю команду вопросами «когда» и «почему». Совет: нужно заранее планировать крупные инфраструктурные работы и согласовывать их с графиком отпусков. В середине лета 2022 в компании проходила оценка выполнения KPI за первое полугодие. Промышленная площадка на момент оценки ещё не была развёрнута, лицензию ЦБ РФ мы тоже не успели получить. В итоге, оценки всей команды были снижены: я получил «B», что было очень мало, и что совсем не соответствовало проделанной работе и внутреннему чувству справедливости. Разумеется, я озвучил несогласие с такой оценкой своему непосредственному руководителю, но это ничего не дало. Я был демотивирован и разочарован. В следующие месяцы я уже так много и так интенсивно не работал, но на следующем performance review без проблем получил «B+» и повышенную премию. Мораль: достижение KPI часто никак не зависит от ваших личных стараний и усилий. Это больше «политическое» решение на уровне компании. После развёртывания промышленной площадки мы начали ударными темпами готовиться к запуску, но всё упиралось в получение лицензии от ЦБ РФ. Повлиять на этот процесс мы никак не могли, поэтому просто ждали. Для команды разработки это было спасительное ожидание — у нас по-прежнему было огромное количество проблем, которые следовало пофиксить до запуска. По итогам очередной встречи в офисе в конце июля 2022 бизнесом было принято решение о переходе на двухнедельные спринты. Им была нужна точная оценка, когда команда успеет закончить все необходимые работы (помните про микроменеджмент?). На следующий день после этой встречи у меня был созвон с моим руководителем, где он сказал: «Ваня, нельзя ругаться с гендиром!». А я, вроде, и не ругался — у меня просто голос громкий. Я просто рассказывал генеральному директору про Такмана и Брукса, и что в разработке нет никакой воли господней: нужны просто прямые руки и время. Никаких чудес! Команда оценила необходимые доработки примерно в 4 спринта, что для бизнеса было непозволительно долго. Нас прессовали и гнали как можно быстрее, требуя частых отчетов о прогрессе и демо. Это были эмоционально очень тяжелые полтора месяца с регулярными неоплачиваемыми переработками. Наблюдение: бизнес очень любит ставить нереалистичные сроки и не любит слушать подчиненных. В начале сентября 2022 мы получили лицензию ЦБ РФ, а ещё через неделю уволили моего непосредственного руководителя. Уволили внезапно — одним днём (позднее оказалось, что это распространенная практика). Для меня это стало началом конца… Площадка была запущена для всех пользователей в середине октября 2022 — недель на пять позднее, чем планировалось изначально. Нашей основной болью стала интеграция с ЕСИА: криптография, сертификаты и несоответствие стендов. На production мы словили баги, которых никогда не было на тестовой среде. Совет: интеграция с государственными сервисами (ЕСИА, СМЭВ, НРД) — это сложно и непредсказуемо. Всегда закладывайте время для тестирования и отладки на ПРОДе. С начала пандемии COVID-19 я работал удаленно, лишь изредка посещая офис, и впервые столкнулся с тем, что этого недостаточно для эффективного решения вопросов. Некоторые проблемы дистанционно требовали два дня, тогда как в офисе это занимало не более двух часов. Сидя в своём уютном рабочем кабинете дома, я оказался практически полностью исключен из внутренней политической возни. Многие вещи решались на кухне в офисе, а до меня доносились уже постфактум в виде распоряжений. Мораль: политика творится в офисе. Чем выше должность, тем больше времени ты должен проводить там. В ходе непрекращающихся баталий за сроки, я несколько раз слышал от бизнеса одну и ту же мысль: сейчас возьмём ещё пару человек из аутстаффа и все проблемы решим. Да, совершенно серьёзно на горизонте 4-6 недель мне предлагали «усилить» команду новыми людьми, чтобы «быстро» всё сделать, а потом «избавиться» от них. Люди воспринимаются как винтики, как функция: из них нужно выдавить максимум для достижения сиюминутного результата, а что с ними будет потом — не важно. Отношение к внутренним сотрудникам, обычно, лучше, но ненамного. Мораль: незаменимых людей, по-прежнему, нет; рядовые исполнители часто воспринимаются как расходный материал. Я провёл увлекательный год, доведя до ума и запустив на production большой проект. Меня поразила скорость разработки и выкатки новых функциональных возможностей при наличии хорошей команды, облачной инфраструктуры и отсутствии имбецильных производственных процессов. Увы, работа в небольшой компании при наличии амбициозных планов у бизнеса требует от тебя ещё больше сил и отдачи, чем в крупном банке, агрегаторе или IT-гиганте. Java Developer, Open Source Enthusiast