Как я не знал, что надо делать, но продолжал делать что надо
Всем привет! В очередной раз убедился, что вливаться в проект на финальной стадии - тот еще квест. Особенно когда команда, которая его начинала, уже разбежалась. И сейчас я поделюсь своим кейсом… На прошлой неделе я наконец-то закончил доработки по одному очень сложному для меня проекту. И сложным он был не потому что надо было очень много делать или было не понятно что надо делать) Всё потому, что над очень длинным проектом работало много людей, которые за время проекта уже перестали быть частью команды. И вот, в конце октября прошлого года, меня подключили к работе исправлять “косяки” работы дашборда. Небольшое отступление, что за дашборд. Это HR-дашборд одной крупной международной компании с несколькими вкладками, с кучей различных индикаторов-метрик и несколькими таблицами с подробными сведениями. Принятые сотрудники, уволенные сотрудники, причины увольнения, те кто работает на постоянке или по временному контракту, количество экспатов (заграничных сотрудников) и т.д, и т.п. Самый смак в том, что данные подгружаются помесячно и какие-то метрики надо считать по всему периоду, а какие-то - только по последнему месяцу. И при выборе периода на дашборде, данные должны быть актуальны именно на конец выбранного периода. Первой моей задачей было “добавить циферки в бублики” - вроде лёгкая задача, но… Спустя кучу потраченного времени, я узнал, что у DataLens есть беда: Итоги в “бубликах” не любят агрегации (или оконки) ни в каком виде. А там использовалась функция MAX, чтобы вывести данные за последний месяц, поэтому и итог внутри “бублика” не отрисовывался. Да, разбираться в чужих формулах, особенно когда уже нельзя спросить у человека, который этим занимался - это то ещё “удовольствие”. Я решил эту задачку так: - Создал отдельную VIEW-шку, которая считает все данные для всех “бубликов” в разных разрезах. Пришлось наколдовать несколько оконных функций в SQL, чтобы одним запросом всё посчиталось как надо. - Дополнил дашборд параметрами дат начала и конца периода. - И уже используя эти параметры в SQL-запросе к сделанной VIEW-шке, отрисовывал всё, что требовалось. Так я избавился от агрегаций внутри DataLens и всё починил. На встречу с заказчиком меня не позвали, но там выяснили, что все “циферки” сошлись, и я молодец xD Но появились другие проблемы. Точнее эти проблемы уже были, но я о них не знал, так как только подключился к проекту. Легче было бы перечислить то, что “билось” с исходными данными. Задача была поставлена очень размыто, буквально “вот тут в таблице циферки не сходятся, тут не то, тут не это”, и я приступил к работе, не сильно понимая, какой результат от меня хотят. Всё бы ничего, но 30 декабря увольняется проджект менеджер, который вёл этот проект (подарок под елочку, ага). И после уже новогодних праздников (уже с новым ПМ, который вообще не участвовал ранее в этом проекте), снова организуем встречу с заказчиком, чтобы ещё раз обговорить что мы должны сделать и как мне валидировать результаты. Заказчик, кстати, вообще молодец: подготовил очень объёмную презентацию, где подробно рассказал что уже работает, что не работает, а что работает не так как они ожидают. Плюсом ко всему предоставил эксель-табличку по которой можно было понять, с какими значениями должны “биться” результаты. Я заканчиваю свою разработку, сдаю проект ПМу, тот назначет встречу с заказчиком, которая в последний момент отменяется… А на прошлой неделе выясняется, что надо срочно сдать доработки, так как со стороны заказчика человек уходит в отпуск. ПМ уехал в командировку, встречу провести не сможет, и меня отправляют одного защищать свои же доработки, ахаха. Спойлер: я выжил Встречу я провёл, доработки приняли, все заготовленные для проверки тест-кейсы заказчика пройдёны. Я в очередной раз молодец! Ощущение будто гору с плеч свалил. И да, я всё ещё считаю, что участвовать в проекте с самого начала - кайф. Но когда берешь такого “франкенштейна” после других, чинишь его и доводишь до ума - чувствуешь себя почти нейрохирургом А у вас был опыт реанимации чужих дашбордов? Или вообще таких вот проектов?