Для полноты картины происходящего в современном айти попробую рассказать как у нас происходит импортозамещение корпоративного софта. Некоторые незначительные детали я закомуфлировал чтобы явно не указывать на компанию, но основная канва событий соответствует реальности.
Предыстория
Летом 2022 года моя галера отчалила от российских берегов - а так как мне берег турецкий не нужен - я принялся искать работу - отписался в чатики коллег, походил по собесам в банки, но тут позвонил техдир компании для которой я раньше писал код - и даже после официального прекращения работы что-то по-мелочи делал по договору ГПХ. Сказал, что знает что я в поисках и предложил пойти к ним руководить отделом разработки.
Компания - формально не государственная но целиком и полностью завязана на государство, можно сказать прослойка между государством и иностранными компаниями. Несколько филиалов, около 1000 сотрудников суммарно, из них штук 70 - айти - если считать с эникеями, сисадминами, разрабами и поддержкой. Разрабов 10 человек.
Инфраструктура с которой предстояло работать выглядела достаточно типична - во-первых это древний монолит на древней жаве работающий только на определенной ОС. Его никто и никогда не пересобирал, исходников не было. Во-вторых это монолит 20 ти летней давности на 6й жаве - в котором содержалась бизнес-логика и который правили все и постоянно - все операции представляли собой sql-запросы в preparedStatement’ах - так что если надо было создать похожую операцию - запрос просто копировался и чуть правился - и к имеющемуся коду просто добавлялся блок if-ов с новым запросом. Судя по комментариям году в 2005м это было написано индусами, потом в 2008м году были какие-то комментарии на испанском, а в 2012м это все было перенесено и поставлено в компанию, причем фронт частично переписан подрядчиком на современном для 2012 года jsf - беда только что использовалась какая-то самонаписанная подрядчиком либа jsf-компонентов - безо всякой документации, а подрядчик давно исчез в вечности - как это поддерживают наши фронтендеры для меня - загадка. И, наконец, третий монолит который начали делать на смену первым двум - но так и не сделали так как команда разрабов то ли уволилась толи была уволена в ковидный год. Ну и чтобы склеить эти монолиты - работает штук 40 “сервисов, роботов, скриптов” - то есть какая-то фигня запускается в полночь, выгружает данные из одной бд - пишет в xml-ки, потом другой скрипт пишет их в брокер, откуда третий их читает и рассылает письма. Наружу выведено энное количество soap и rest-сервисов (которые я в свое время и делал). Как все это целиком работает - не представляет, наверно, никто.
Но самое интересное - на мой вопрос как это легаси развивать и поддерживать - техдир ответил, что развивать и поддерживать не придется - уже выделены деньги в размере 500 миллионов рублей на то что все будет переведено на новые и современные технологии, уже есть фирма - Подрядчик, один из крупнейших поставщиков софта для госкомпаний. А наше дело - поддержать старье пока они готовят переход на новое - а потом перенять у них новый продукт и его освоить. То есть и кодить-то не придется, к сожалению. Все сделают за нас. Соблазненный предложением (зарплатой - а не тем что не придется кодить) я принял предложение и пошел на работу.
Первый Руководитель Проекта (РП)
В первое время в основном приходилось разгребать сложности со старьем, а Подрядчик провел презентацию - на которой нам был представлен руководитель проекта с их стороны - и вкратце рассказано что и как будет делаться. Рассказ сводился к двум вещам - во-первых у нас монолит - и если он зависает то зависает все - а мы перейдем на микросервисы - и если что-то пойдет не так то зависать и падать будет только один сервис, поэтому надежность повысится. А второе - нынешние монолиты изначально писали индусы и испанцы, поэтому написано все плохо и вот сейчас самое время перейти на надежный софт. А руководитель проекта составит ТЗ. Я по мере сил вникал в старые проекты - бизнес-логику, пытался отрисовать сервисы, общался с пользователями. И пару раз в месяц встречал РП - ботанистого вида молодого паренька который тоже приходил пообщаться с пользователями. Через три месяца РП выдал ТЗ на разработку по которому они планируют делать новый продукт. На первых нескольких листах шло описание нашей компании (выдернутое из википедии, внутреннего сайта и т д) и предметной области. Потом шел текст типового ТЗ на разработку софта- причем в ряде мест где название Компании было не в именительном падеже - шло название другой Компании - то есть просто текст перетащили из другого проекта. Для принятия ТЗ требовалась моя подпись - но я написал письмо что нужно исправить ошибки, вменяемо расписать этапы работ, технологии, архитектуру новой системы, как будет происходить переход и т д. В итоге РП кое-как поправил ошибки, в разделе технологии упомянул все что можно - и жаву и котлин и постгрес и монго и майскуэл и кафку и раббитмку. Я спросил - почему так много - он ответил что пока точно не известно как все будет реализовано. На предложение написоовать архитектуру - я увидел просто четыре прямоугольника - “старая система”, “новая система”, “интеграционные сервисы”, “старые базы данных”, “новые базы данных”. Я опять отклонил ТЗ сказав что хотелось бы уже на этом этапе чего-то более вменяемого. И был вызван на совещании с руководством - где руководство Подрядчика заявило что я занимаюсь буквоедством и бюрократизмом - вместо того чтобы двигаться дальше. И наше руководство предложило принять ТЗ как есть - чтобы не тратить время. Мое мнение никто не спрашивал - но я все же начал спрашивать РП о том как и что они будут делать дальше - на что он сорвался в крик что он вообще менеджер, умеет только готовить документацию, про всякие базы данных ничего не знает и что вопросы не к нему. А на следующий день мне позвонил руководитель Подрядчика и сказал чтобы я заблокировал их РП в наших системах - его истерика не понравилась не им ни нашему руководству - и его уволили.
Второй Руководитель Проекта
Второй РП был из программистов. Он засел за декомпилированный код монолита и стал пытаться понять его логику. Мы с ним достаточно толково общались, благо я как раз тоже разбирался с логикой. На вопрос - над чем же сейчас работает его команда - я получил ответ - что команду разрабов-то они еще только набирают, при этом зарплаты у них небольшие - 100к, нашли только несколько вчерашних студентов - которые пока ни в зуб ногой - и он сейчас их тупо обучает и пытается в курс дела ввести. Сначала мы много общались - но потом он сказал что его руководству непонятно зачем он так много времени общается с заказчиками (нами) и ему по сути запретили общение, что для меня выглядело дико. Я как раз искал программиста и предложил ему перейти к нам на 200к - на что он сказал что предложение очень заманчивое - а потом пропал, перестал отвечать - а мне сообщили что он переведен на новый проект “по собственному желанию” - уволили ли его или он сам попросился - я не знаю.
Третий Руководитель Проекта
Третий РП был полной противоположностью первому - под 50 лет и с манерами “нового русского” из 90х он даже внешне напоминал героя Михалкова из “Жмурок” - “ну чо, мы ща все порешаем, все сделаем, чики-поки, пацаны”. Как-то так. Я с ним общался мало - был в командировках, но вроде как в главном офисе он появлялся. Через пару месяцев он написал письмо с просьбой предоставить им описание всех имеющихся у нас систем - модели данных, откуда что берется и куда что отправляется. К этому времени мы составили в конфлюенсе примерное описание - далеко не полное - его то я, выгрузив, и послал РП-3 причем сопроводив комментариями “тут мы точно не знаем”, “надо проверить” и так далее. А еще через неделю он выдал документ с описанием систем - по сути скопипастив то что я ему выслал - как результат своей работы за два месяца. Но смешно было то что он даже не исправил мои комментарии - то есть по тексту было ясно что это не он писал. А еще через некоторое время его уволили - по слухам он кому-то из руководства нахамил.
Четвертый Руководитель Проекта
Прошел почти год с момент начала проекта импортозамещения - а не сделано было по сути ничего. Подрядчик назначил РП-4 презентовав его как “кризис-менеджера” - ходил он в строгом деловом костюме, общался только официально и очень мало - в принципе мы его сначала почти не видели - а потом он появился с проектом - мол у Подрядчика есть уже готовый движок приложения, недо-CRM, которая нам идеально подойдет - и если мы на нее согласимся то они уложатся со всем проектом в срок. Но стоить эта их недо-CRM будет еще 30 миллионов. Я встал на дыбы - если уж брать готовые движки - то это альфреско, это камунда. А уж готовых хранилок контента и документов - бесплатных, с открытым кодом - полно. И вся сложность не в них - а в том чтобы распутать нашу бизнес-логику. А с их движком будет такая же история как у нас с jsf - подрядчик в какой-то момент пропадает - и нам останется разбираться в куче не документированного кода без поддержки. К счастью меня поддержал и техдир - так что проект мы заблокировали и пару месяцев бодались. В итоге нас всех вызывал ГенДир с вопросом почему все застопорилось. РП втирал какую-то дичь про важность их движка, я приводил в пример бесплатные аналоги - он взвыл про импортозамещение - мол они написаны проклятыми американцами а значит опасны - я спрашивал почему они тогда используют жаву и постгрес - их тоже не в Рязани придумали. В итоге ничем не кончилось - гендир сказал идите и договаривайтесь. Ситуация казалось патовой - они уперлись в свой движок, мы не хотели с ним связываться. Из меня переговорщик никакой - но техдир все же смог свести к компромиссу. В итоге этот движок нам отдали - но отдали бесплатно. И в проекте его не будет - точнее будет стоять “с краюшку”, основное же приложение сможет функционировать без него. Зачем это нужно? Они под этот движок получают дополнительное гос финансирование и им надо чтобы по документам он проходил в максимальном числе контор. Ну вот такой компромисс. По крайней мере 30 лямов для конторы мы спасли. Кроме того были достигнуты негласные договоренности - мы немного помогаем им с проектом, по мере сил. Сразу после подписания договора в котором упоминалось использование этого движка менеджер исчез - перешел на другой проект. Наверно дальше всучивать движок.
Пятый руководитель проекта
Этот был карикатурный смузихлеб по внешнему виду - вейп, смузи, айпад, манерная речь. Опрашивал под диктовку пользователей о необходимом им функционале а потом распознавал диалоги, правил и готовил так подборки документов с описанием новой системы, что и как должно быть. А потом его уволили - вроде как он пытался смошенничать с финансами - но тут я умолчу так как не уверен в правдивости обвинений.
Шестой руководитель проекта
Этот продержался меньше месяца - посмотрел на происходящее и уволился. Я его всего два раза видел.
Седьмой руководитель проекта
Вот тут все начало исправляться. Появился вполне нормальный РП, захантили двух нормальных аналитиков, взрослых дядек - сеньора и архитектора - и штук шесть разрабов. Составлен более-менее вменяемый план работ, в часть работ мы вовлекаемся - и разработкой и экспертизой. На новый год продемонстрировали MVP новой системы. Беда в том что из выделенных 500 миллионов примерно 80% уже “освоены” - а оставшихся хватит года на полтора - удастся ли закончить проект за это время, даже при условии наличия адекватной команды - я сомневаюсь.


Комментарии (190)