Что вы представляете, когда вам говорят про IT-проекты с банками? Бюрократия, куча интеграций, разработчики из разных команд. Что вижу я? Отличный шанс организовать сложный и трудоёмкий процесс.
О том, как собрать команду от разных вендоров, с чем сталкиваются руководители и как настроить внутренние процессы на проекте, расскажу в этой статье через призму своего опыта.
Отличие банковской сферы
Всем привет, меня зовут Денис Косарев, я Project Manager в Luxoft.
Как известно, IT-деятельность для банков не является профильной. Из-за соображений безопасности отдать на аутсорс внутренние данные сложно, а собственные IT-команды чаще заняты ИБ, корпоративной архитектурой и поддержкой. В результате банкам приходится нанимать гибридные команды, работающие по гибридным графикам в жёстких рамках.
Конечно, идеально, когда приходит сплочённая команда для работы над одним продуктом. Но сейчас на рынке таких почти нет. Один вендор не может быстро закрыть потребность по кросс-функциональной команде, и, если дать карт-бланш одной компании, то стоимость значительно вырастет, а качество придётся постоянно проверять. Поэтому большое число вендоров решает сразу несколько проблем:
ускоряет подбор членов команды;
защищает от сговора;
позволяет в момент закрыть открывшуюся позицию;
сокращает стоимость разработки;
повышает качество продукта;
уменьшает корпоративное влияние вендора на разработку продукта;
позволяет членам команды быстрее развиваться.
При этом возникают интересные вызовы для менеджмента, scrum-мастера и тимлидов:
организация команды;
настройка процессов;
недопущение конфликтов;
защита от внешнего влияния;
-
ускорение разработки продукта.
Хотелось бы выделить ещё некоторые отличия работы над IТ-проектами банка помимо состава команд:программное окружение (из банковского окружения не выйти в интернет и не написать письмо на адреса вовне банка; в части банков эта проблема решается с помощью второго экрана);
число интеграций, смена стеков, наложение архитектур (переезд в сторону продуктов с открытым программным кодом);
банковский фреймворк, накладывающийся поверх стандартного SCRUM (для повторяемости системы в Confluence документируются артефакты);
отсутствие ГОСТов (не нужно выпускать мешки документов для того, чтобы просто было).
Вот в таких условиях работают команды. Я в том числе.
CRM для банка + пул задач
Сейчас я руковожу разработкой двух модулей CRM-системы для юридических лиц. Задачи проекта — автоматизация процессов и расчётов, упрощение интеграции данных, ускорение коммуникации и сбора информации. Если говорить глобально, нужно получить продукт поддержки принятия решений, который закрывает все запросы менеджмента банка.
На проекте работает 48 человек, стек Java React. Команда занимается микросервисной архитектурой в условиях переезда с Oracle на PostgreSQL, сменой дизайн-систем и редизайном, где львиная доля у фронтенд-разработчиков. Дополнительно я провожу ежедневную воронку найма для двух стримов численностью примерно 150 человек каждый. Стрим — это группа проектов, объединённых одной бизнес-составляющей. В моём случае это CRM и корпоративный клиент 360. Особенно интересно это делать, не будучи сотрудником банка.
В своей работе я выделил несколько первостепенных задач.
Сбор компетентной команды. В условиях, когда у разработчика за неделю на руках пять офферов, это крайне интересно и выматывающе.
Выстраивание процессов и правил в команде. Всё должно быть чётко, и каждый участник должен понимать и принимать условия.
Фиксирование того, что мы действительно делаем и что хочет увидеть заказчик.
В процессе я занялся ещё одной — оценкой трудоёмкости, сроков и скоупа.
В статье я расскажу о первых двух: найме и процессах. Если получится, позже расскажу и о двух других.
Поиск, отбор и интервью
Технические специалисты должны заниматься техническим направлением, бизнес — бизнесом, а организационные — организацией. И так получилось, что именно в этих двух продуктах (CRM и корпоративный клиент 360) организационные вопросы доверили мне. За 14 лет я прошёл путь от разработчика до директора проектов, и мой опыт позволял организовать команды до 1000 человек. Сейчас я сделал шаг назад, чтобы улучшить знания на стыке организации scrum-команд, решения бизнес-задач и принятия технических решений. Будучи директором проектов, сделать это крайне сложно, зато потом я сделаю пять шагов вперёд.
Я пришёл на проект, где сформированы сроки, выделен бюджет, определена структура команд, вендорам выдан деманд (потребность в специалистах), бизнес-видение продукта тоже ясно. В общем, заданы рамки, и вроде бы простора для творчества нет.
Четыре команды были собраны на 100, 50, 20 и 0 процентов соответственно. Кандидатов в команды предлагали восемь вендоров (разных компаний, в том числе и Luxoft). Следовательно, ни о каких директивных методах управления не могло быть и речи. Тем более это удалёнка со специалистами, находящимися в разных городах России и Беларуси. Состав команд обычно следующий: один системный аналитик, четыре бэкенд-разработчика (2 senior, 2 regular), два senior фронтенд-разработчика, три QA (2 senior и 1 regular), тимлид. На две команды по одному IT-лиду и одному архитектору, и на четыре команды один scrum-мастер и один DevOps.
Поиск
Первое, с чем я столкнулся, — с некорректностью части вендоров в предложении кандидатур, так как на senior-позиции присылали людей без высшего образования с опытом в разработке или тестировании от двух до четырёх лет. В день в общем приходило от 5 до 30 резюме; нужно было выбрать подходящих кандидатов для заключительного клиентского интервью и дать обоснованный ответ при отказе от назначения интервью. Данную задачу я решил в течение двух недель, и до интервью у меня стало доходить не 10%, а 30% присланных кандидатов, впоследствии мы эту цифру увеличили до 80%.
Качественные кандидаты приходили от тех вендоров, где было первоначальное техническое и менеджерское интервью. 95% таких кандидатов дошли до общения с клиентом, и на них была очередь.
Отбор
При первом диагональном просмотре резюме я обращал внимание на:
опыт (на senior-позиции имеет смысл смотреть людей от пяти–семи лет работы в соответствующем стеке);
длительность работы в прошлых компаниях (несколько мест подряд по два–три месяца работы — нам не по пути с таким специалистом);
релевантность опыта (опыт в финтехе не является уникальным, а вот технологический стек критически важен);
наличие профильного высшего образования и год его окончания (в моей команде есть ребята без высшего образования или с гуманитарным профилем, у части чувствуется отсутствие базы).
Если на первый взгляд всё неплохо, то начинал подробнее читать про прошлые проекты. Например, если человек на последних трёх местах работы работал менее года, то к клиентскому интервью с большой долей вероятности он не будет допущен.
Интервью
Другой важной задачей при найме была унификация процесса клиентского интервью (КИ) кандидатов для разных команд. В зависимости от продуктов подходы к разработке отличаются, но последовательность проведения интервью должна быть одна. Для этого после ряда интервью мы переговорили с интервьюерами, договорились о методе назначения КИ (как приглашаются участники, где проводим, на какое время назначаем, сколько времени даём, когда и как даём фидбэк) правилах, участниках.
Сошлись на том, что для КИ:
достаточно двух человек, возможны три. Один выполняет менеджерскую роль и имеет технический бэкграунд, а другой — техническую роль, в зависимости от позиции, на которую смотрится кандидат. Идеально, если это член команды, где открыта вакансия, так как после интервью нужно выслушать хотя бы ещё одного человека;
интервью длится час;
этапы примерно следующие:
место проведения — предпочтительно Zoom;
время проведения — после обеда в зависимости от графика (утро нужно тратить на работу);
фидбэк и решение в течение 30 минут после интервью. Бывало, что оставалась последняя позиция в нише и на неделе были назначены несколько интервью, тогда рекрутера оповещали об этом и по завершении последнего собеседования сообщали результат отдельно каждому кандидату.
В банках есть непривлекательная сторона — это настройка окружения. Поэтому все процессы получения допусков были зафиксированы в отдельной статье в Confluence. Всё контролировалось так, чтобы вышедший сотрудник мог приступить к разработке на следующий день.
Процессы: SCRUM в банке
Внедрение фреймворка SCRUM в банке, особенно в командах вендоров, — нетривиальная задача. Представьте себе команду, структуру которой я описал ранее — свободных, творческих профессионалов — и организуйте их движение по SCRUM-процессу. Наложите на это, что в ряде команд уже были сформированы правила, которые диаметрально противоположны ценностям фреймворка, например прозрачности.
Сперва мы начали следить, чтобы только что нанятые команды придерживались процессов, и искать Scrum-мастера. Наняли его в штат Luxoft в мою структуру. Квалифицированного и творческого специалиста мы нашли в течение месяца. У него на тот момент был опыт работы с одной командой, но имелся отличный потенциал и бэкграунд. Уже в банке, я думаю, его озадачил объём работы: была задача внедрить фреймворк в пяти командах.
Вот как поступили мы. Надеюсь, что это будет полезным:
изучили процессы в командах;
прочитали лекцию первым двум, за которые нужно было браться вплотную, с упором на провалы в процессе разработки;
провели ряд one-on-one мероприятий с тимлидами. У каждого были свои слабые стороны, которые необходимо было усилить. Одному пришлось объяснить важность ежедневных стендапов, двум другим — демократичность (крайне деспотичный был поход, код-ревью только через него, исправление кода без объяснений), четвёртому — необходимость организации планирования, когда члены команды сами берут задачи из бэклога;
описали мероприятия, ответственных и временные рамки. Когда стендап длится час, то это замедляет всю команду;
ввели ретро, затем дейли, после сделали упор на оптимизацию планирования и наконец демо.
Тут хотелось бы чуть отступить. У нас была ситуация, когда Product Owner немного побаивался внешних сотрудников. Мы не хотели, чтобы PO отгородился от команды, потому что говорит с ними на разных языках. Поэтому проговорили отдельно с ним важность демо, объяснили смысл с прицелом на продукт и заинтересованные стороны. Демо делает первый шаг по преодолению таких внутренних границ, потому что участвуют все. Кажется, что это достаточно банальная история, но для тех, кто объясняет scrum-процессы впервые, может стать непреодолимым препятствием;
затем перевели фокус на другие две команды и начали ликвидировать провалы в них;
сейчас занимаемся командами, состоящими из сотрудников банка.
На скорость создания продукта негативно влияет низкая проработанность архитектуры и неорганизованность инфраструктуры разработки. Например, когда команда не понимает форматы и потоки данных, то неизбежно возникают ошибки, что приводит к инцидентам на прод-среде. Это бич банков, и данную проблему можно решить только организационными методами сверху.
Пара коротких кейсов
В одной из команд при разработке и тестировании возник конфликт между тимлидом и senior джавистом (вендоры разные). Оба грамотные специалисты и ценные члены команды. Но разработчик не принимал требований по качеству продукта и подходам для унификации написания кода. В результате подыскали ему проект, где качество продукта не является критичным и повторяемость продукта не требуется. Грубо говоря, написал и забыл. После того, как перевели специалиста, производительность команды осталось на прежнем уровне, а микроклимат вырос. Сейчас мы закрыли эту позицию, и капасити команды поднялось ещё на 20%.
Или вот ещё пример: DevOps не имел опыта работы с инфраструктурой банка и не привык работать без админских прав (был нанят до моего прихода), и это значительно замедляет вывод инкремента в прод до сих пор, хотя уже и не так сильно, как в первый раз. То есть работать всегда есть над чем.
Как итог
Сейчас можно с уверенностью сказать, что в двух командах SCRUM работает, и их производительность выросла в два раза и продолжает расти. Члены команд берут задачи из бэклога самостоятельно и счастливы в разработке. В двух других остался момент с планированием и работой с бэклогом во время спринта. Ещё месяц и мы выйдем на двойное-тройное ускорение по сравнению с трёхмесячной давностью.
Одной из существенных проблем внедрения SCRUM был банковский фреймворк, накладывающий дополнительную нагрузку на команды в виде избыточной документации. Но данное требование резонное, и все члены команд его приняли. В будущем банк будет использовать написанную в Confluence документацию при доработке, масштабировании и развитии созданных нами продуктов.
В последнее время у меня самого появилось время для управления (погружения в детали продуктов, планирования, контроля) проектами. Что уже сказывается на качестве выполняемых работ.
Выводы
В банке высокая степень неопределённости и бюрократизированности, но это не делает IT-проекты в этой сфере менее творческими. Как и везде, требуется время и ресурсы на поиск и обучение хорошей команды. Надо постараться доверять и делегировать, допускать гипотезы, периодически снимать корону. Но главное, что вы должны помнить, встав на путь управления проектами в банке: работа должна приносить удовольствие. Как бы банально это ни звучало. Вот такой вот опыт управления проектами в банке у меня. Делитесь своим!
eldog
Работал в двух банковских проектах и ещё в одном в платежах по кредитным картам. Платежи ладно, а банки требуют особого психологического подхода. Нужно понимать, что в банке система - твой враг. То есть, процентов 80-90 времени уходит не на решение непосредственных технических задач, а на решение проблем, которые не дают работать. Очень низкая эффективность и постоянное чувство бессилия. Профессионально депрессивная среда.
В одном при этом честно отработал два года до окончания проекта на senior позиции. Там была прекрасная команда, люди с которыми до сих пор поддерживаю дружеские отношения, только она и держала.
Во второй взяли техлидом, но ушёл через 8 месяцев. Мне показалось, когда они меня брали они выбрали не тот профиль, не моя работа.
UnclShura
Система - враг это точно! Особенно если учесть, что в военное время число менеджеров может доходить до 10 на одного разработчика :)
С другой стороны (именно для сениор) есть простор выбора того, что и как делать. При умении жить не скучно, технологии какие хочешь и т.д.
Но порой опускаются руки, когда по-немногу отбирают права на собственной машине, прогонять код через дерьмище, которое они называют сканером безопасности и т.д. Именно называют - даже специально написанный код физически не может содержать 600 тысяч (тысяч, Карл!) уязвимостей.
eldog
Технологии какие хочешь - как бы! На любую новую библиотечку разрешение просить, установить что-то на сервере или поменять конфигурацию - невозможно.
Пример: локально работает, на серверах валится на соединении с бд. Начинаем разбираться, сначала читаем логи - хз. Прошу доступ к dev серверу. DEV! Занимает две недели, за это время пробовал разобраться с помошью админа - я ему объясняю, что посмотреть-проверить-сделать, он делает и описывает результаты, одна итерация - полдня. Через две недели поклонившись каждому получаю права на dev сервак где валится. Проблема становится понятна через час. Неправильно сконфигурирован .net драйвер оракла. В machine.config прописана глобальная дефолтная конфигурация. Начнём с того, что сам оракл глобально конфигурировать не рекомендует вообще. Во вторых, она неправильная. Говорю: давайте поправим конфигурацию. Нет, потому что нет никогда. Серверов у банка много, они выдаются сконфигурированные стандартно. Ешь что дают, живи как хочешь. В итоге очень, очень хитро, переписывал конфигурацию локальными конфигами. Диагностика и решение проблемы на полтора часа заняли порядка трёх недель.