Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

В прошлом году один банк обратился к нам, чтобы сократить time-to-market и выстроить единую IT-архитектуру в проекте, где одновременно участвует куча людей. В статье рассказываю, почему Scaled Agile Framework — это сложно и долго, и как нам удалось разработать и внедрить Единую интеграционную среду всего за два месяца.

Константин Могилевкин
founder IT-компании Satori (сайт, телеграм-канал)

Кто не знает, Я — Константин Могилевкин, основатель Satori — IT-лаборатории, интегратора цифровых решений для банков, страховых и fintech-компаний. Эта статья будет полезна всем, кто в теме финтеха или банкинга — мы расскажем про решения для быстрого развития экосистемы.

Как мы ускорили процессы разработки ИТ-решений и поддерживали интеграционную среду после внедрения

Часто крупные компании внедряют методологию SAFe (scaled agile framework), а чтобы все системы работали слаженно, создают единую интеграционную среду (ЕИС). На разработку и внедрение ЕИС обычно нужны долгие месяцы и большая команда.

Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

Банку нужно было синхронизировать всех IT-подрядчиков, потому что они начали развивать IT-платформу во всех направлениях сразу. Из-за этого пришлось продумывать, как синхронизировать работу команд между собой.

Для развития IT-ландшафта и бизнес-продуктов наняли больше 4 подрядчиков по разным направлениям (ДБО, АБС, OPEN API и т.д.) и больше 20 сотрудников в IT и бизнес-направления.

Нас, SATORI, наняли как IT-интегратор для решения таких задач:

  • разработка частных технических заданий;
  • разработка концепции единой интеграционной среды;
  • разработка и внедрение платформы API Management;
  • слежка за тем, чтобы приоритетные E2E-кейсы проектировались, разрабатывались и внедрялись как можно быстрее.

Сроки сжатые, планы грандиозные.

Поэтому мы начали с разработки концепции ЕИС

Что такое «Концепция ЕИС»

Концепция ЕИС — это набор организационных и технических правил, политик, стандартов и ограничении, которые должны применяться при выстраивании взаимодеиствии между IT-системами предприятия.

В область применения концепции ЕИС не входит взаимодеиствие компонентов системы. Такие взаимодеиствия прописывают в частных ТЗ.

В концепции фиксируют, например, как объединить между собой микросервисы и как они взаимодействуют: синхронно или асинхронно, через шину или напрямую, через API или, не дай бог, прямыми запросами к базе данных.

Концепция ЕИС:

  • снижает затраты и time-to-market при построении бизнес-процессов за счет стандартизации интерфейсов прикладных сервисов и систем;
  • устраняет жесткие зависимости в интеграциях между разными системами;
  • снижает нагрузку на системы и базы данных внутри общего IT-ландшафта.

Концепция нужна не всем. Но без нее не обойтись, если в подразделении больше трех команд. При таком количестве исполнителей уже повышается риск недопонимания и теряется контроль. Особенно концепция нужна, если хочется единую IT-архитектуру, которая не «разъедется» хотя бы 3 года.

Концепция ЕИС — это как SAFe на минималках

Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

SAFe — это слоеный пирог из различных методик Agile. Его часто применяют IT-интеграторы.

Что входит в этот «пирог»:

  • Традиционный SCRUM, с 2-3-недельными спринтами, командами по 3-9 человек, включая Product Owner’a (совмещает работу руководителя проекта, менеджера продукта и маркетолога).
  • «Поезда» Agile Release Train. Для управления пятиспринтовыми отрезками появляются новые функции — системный архитектор (тот, кто владеет архитектурой), Product Manager (тот, кто управляет продуктом) и RTE (Release Train Engineer) — тот самый PMP (Project Management Professional) из далекого мира Waterfall (каскадная модель разработки продуктов — такая же классическая, как Agile).
  • Координация между отделами, директорами и клиентом. На этом уровне выполняются методики Lean Agile и инструменты из Kanban.
  • Управление портфолио. Распределяются средства на различные направления в бизнесе.

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

Если нет времени и денег внедрять SAFe, то «ботлнеки» в виде двух-трех человек работают эффективно и быстро.

А дальше мы пошли по алгоритму:

Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

0. Оценили, какие команды и подрядчики будут работать над проектом

На этапе обсуждения задачи мы выявили, что будем внедрять несколько IT-систем. Каждая система будет выполнять свою роль в этой цепочке, и разработкой этих систем займутся разные команды с разным уровнем оперативности и включенности в проект.

Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

Чтобы запустить один банковский продукт, всегда нужно запустить в прод больше, чем одну систему:

  • Когда есть уже написанный софт, компании не разрабатывают что-то с нуля, а покупают готовые решения.
  • С точки зрения разработки делать одну монолитную систему — это дополнительные проблемы и сложности.

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

В банках выбирают коробочные решения, а не самописные, потому что им важнее time-to-market, а не сокращение затрат. Чем быстрее запустят продукт и чем надежнее он будет работать, тем лучше. Все потому что маржинальность банковских продуктов почти всегда высокая.

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

Хорошо, что в данном случае сотрудники банка сами понимали, что нужно регламентировать взаимодействие между командами. В идеальном мире прямо до того, как переходить непосредственно к разработке.

Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

1. Провели технологическое ревью

На момент написания Концепции ЕИС у нас была на 70% готовая IT-архитектура в части розничного бизнеса (но большую часть работ составлял еще корпоративный блок, где пока не было готовой IT-архитектуры).

Из IT-архитектуры было понятно, что для запуска двух продуктов, на которые выделялись основные бюджеты, нужно было изменить или довнедрить 6 IT-систем: 3 текущих и 3 новых. И всё это интегрировать между собой.

Каких-то регламентов, примеров документов для описания интеграций между системами не было — для каждой интеграции требовались «ручные» договоренности. И мы хотели поменять этот ручной привод на автоматические правила и инструменты в соответствии с концепцией ЕИС.

Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

2. Провели точечное исследование каждой системы

На этом этапе мы изучили, что из себя представляла каждая из систем для внедрения. Примерили, как они будут взаимодействовать с другими системами в целевой картинке.

Этот этап особенно важен для специфических продуктов и предметных областей.

Например, в телекоме есть телекоммуникационные форматы протокола взаимодействия — по ним звонят и отправляют SMS (например SMPP). Типовой протокол HTTP для них не подходит. Или, например, особые протоколы нужны для датчиков на нефтяных скважинах.

Для банка неклассических интеграций не требовалось, стандартный стек TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета), здравый смысл и много-много требований к безопасности.

3. Привели правила взаимодействия под понятный формат

После анализа каждой системы нужно было понять, как они будут взаимодействовать между собой, выработать правила и форматы.

Для этого мы оценили системы по критериям:

  • Скорость: насколько быстро пользователь должен получить ответ от системы. Быстрые ответы нужны, например, для входа в личный кабинет, подтверждения или отмены операции. Более медленные ответы нужны для процессов, которые длятся минутами: выдача кредита или открытие счета, например.
  • Возможность системы самой регулировать нагрузку. Есть отказоустойчивые системы, которые могут масштабироваться при росте количества запросов к ним. А перед другими системами нужно реализовать сервис-лимитер ограничения количества запросов, чтобы распределить нагрузку и не «положить» системы.
  • Переиспользование данных. Если системы обмениваются данными только друг с другом — это одно. А если есть сторонние несколько систем, то нужно создать общее «окно входа», чтобы не вносить изменения в каждой из систем.

Например, есть система, которая обрабатывает кредитные заявки. В процессе обработки нужно выполнять проверки клиента. Для проверок нужно передать данные клиента из заявки в единый сервис проверок, который использует внутренние и внешние системы банка. Например, получает выписку из Бюро кредитных историй. И нам как раз нужно было организовать взаимодействие между кредитным конвейером и единым сервисом проверок.

Схема, как это взаимодействие происходит:

Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

4. Проработали детали

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

Мы ссылались на общепринятые нормы и форматы относительно того, как называть методы, элементы в этих методах — использовали стандарт BIAN (Banking Industry Architecture Network).

Получился достаточно подробный документ со ссылками, чтобы у всех внутренних и внешних команд разработки было одно смысловое поле: как назвать новую систему/микросервис, где его граница ответственности, за что она отвечает в интеграции, какие сервисы должны использовать интеграционную шину данных и т.д.

Это самая трудоемкая часть.

Как не сорвать сроки, когда в проекте больше 6 команд и 50 человек? Кейс IT-интеграции для банка

5. Выбрали инструменты

До нашего сотрудничества в банке не было стандартов: где создавать документы, ставить задачи, формировать пользовательскую и административную документацию.

Мы выбрали и согласовали самые удобные, на наш взгляд, варианты: тасктрекеры, wiki, swagger, git, шаблоны для заведения багов, артефакты agile — доска, ретро и т.д.

Мы выбрали инструмент swagger для описания контрактов взаимодействия между системами. Swagger позволяет делать минимум телодвижений, получать из кода документацию и обновлять ее при изменении кода. То есть, не нужно специальное форматирование.

Теперь у банка есть документ, который можно транслировать на других подрядчиков. Документ фокусировался только на том, как встроиться в IT-ландшафт. То есть, он не затрагивает детали — языки программирования, например. Банк сам принимает решение, какой язык выбрать для каких ИТ-систем.

Что дальше происходит с документом

Есть несколько сценариев. В банк могут нанять подрядчика-интегратора или интеграционную команду, которая следит за соблюдением всех процессов — за тем, чтобы интеграции публиковались, велись и выполнялись как надо. Другой вариант — внутри компании может быть человек, ответственный за архитектуру.

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

Как мы дорабатываем документ:

  • Отрабатываем проблемы, которые появились в процессе работы — уточняем формулировки, описываем детали подробнее. Следим, чтобы новые правила дополняли предыдущие, и не противоречили им.
  • Готовим схемы взаимодействия для главного архитектора — так как именно он принимает итоговые решения.
  • Обучаем новых сотрудников, как работать с документом и почему его содержание должно всегда выполняться.

Какие результаты у заказчика

Одна из основных проблем при переходе от задач формата «доработать одну систему» к сложным интеграционным проектам — определить функциональную ответственность компонентов решения. Заказчику нужны были правила и стандарты, которые позволили бы осуществить этот переход и исключить ситуативные доработки.

Поэтому важнейшей задачей для клиента стала именно разработка концепции ЕИС, в которую включили необходимый минимум правил, требований и ограничений.

Теперь декомпозиция бизнес-задачи происходит по заданным правилам, прозрачно для бизнес заказчика и команды ИТ.

Банк получил возможность в удовлетворительный срок разрабатывать и согласовывать концептуальную архитектуру, своими силами либо с привлечением внешних сотрудников, следующих нашим правилам.

***

Ещё больше кейсов и IT-решений для финтеха ищите в нашем ТГ-канале.

99
22
11
23 комментария

Жаль, что не все даже разработчики (молчу уже про интеграторов) знают принципы, которые вы прописали.

Отдельное спасибо за термин IT-ландшафт. Записал в книжечку )

2
Ответить

Поделитесь потом книжечкой?)

1
Ответить

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

2
Ответить

Мы в маркетинге вот внедрили аджайл, пока работает со скрипом, чего-то не хватает, но чего...

1
Ответить

Звучит эпично. Как Вы классифицируете свой проект - консалтинг?

1
Ответить

Начали с консалтинга, продолжаем уже в роли IT-интегратора

4
Ответить

Не пойму, зачем такие сложности внеднять, айтишники и без этого могут весь день пить латте с лавандовым сиропом, в перерывах фиксить баги и получать 500к в месяц)

1
Ответить