Никита Грибалев, ЭТП Газпромбанка: Без умения находить общий язык с бизнесом девелопмент-менеджер не сможет выполнить свою задачу
Разработка высоконагруженных систем требует соблюдения особых правил и развитых навыков дипломатии. Никита Грибалев, девелопмент-менеджер электронной торговой площадки Газпромбанка, рассказал о своем опыте разработки сложных систем и о том, какими скиллами нужно обладать для эффективной работы на таких позициях.
CNews: Расскажите о проекте и о ваших ключевых задачах.
Никита Грибалев: ЭТП Газпромбанка предназначена для организации закупок, тендеров, онлайн-торгов и аукционов. В какой-то момент ее команда поняла, что пользователям площадки не хватает важного функционала: они не могли планировать закупки — то есть нельзя было составить их расписание и автоматизировать процессы.
Каждый раз менеджерам приходилось вручную размещать лоты на площадке и выбирать победителя тендера или поставщика. Поэтому был инициирован проект, позволяющий им заранее составить план закупок на год и провести его по всем этапам согласования внутри компании.
На тот момент у меня был большой релевантный опыт в сфере разработки сложных веб-сервисов в банках и финансовых системах. Например, я работал ИТ-архитектором в Тинькофф. Меня пригласили на роль ИТ-архитектора и девелопмент-менеджера этого проекта — таким образом, я руководил технической реализацией проекта. По сути, мы начинали его с нуля, и я стал первым сотрудником после оунера, начав собирать команду разработки.
CNews: Какие основные принципы легли в основу архитектуры системы, и как вы обеспечили ее гибкость для сложных корпоративных процессов?
Никита Грибалев: Основные принципы — это модульность, гибкость и встраиваемость. Я сразу проектировал систему так, чтобы она эффективно работала в существующей инфраструктуре ЭТП. Также нужно было предусмотреть возможность выстроить гибкий план согласования, потому что у каждого предприятия он свой.
Одной из самых комплексных и запутанных задач в этом проекте была именно реализация гибкого плана согласования потребностей и закупок. Сначала мы планировали реализовывать это вручную, с нуля, но в процессе обсуждения мне пришла идея использовать BPMN движок Camunda. Это позволило нам снизить скоуп разработки и сосредоточиться не на самих процессах, а на их дополнительной логике. Платформа помогла реализовать понятный для бизнеса и гибкий интерфейс, который легко подстроить под нужды потребителя.
В процессе работы я использовал лучшие практики из своего опыта. Например, мы с командой реализовали систему автоматической генерации документации для API, чтобы разработчики внешних систем легко интегрировались с нашей платформой. В итоге система открыла возможность лучше подстраиваться под потребности клиентов и даже выходить на новые рынки.
CNews: Какие еще преимущества Camunda дала проекту в сравнении с другими решениями?
Никита Грибалев: Я перебрал несколько вариантов разработки и понял, что BPM-движок даст нашей платформе конкурентное преимущество и упростит достижение целей. Я выбрал Camunda, исходя из простоты интеграции и доступности с точки зрения лицензирования. У платформы есть комьюнити-лицензия, и мы смогли быстро взять ее в работу.
Чтобы разобраться в Camunda и сделать в ней необходимую настройку, я нанял внешних консультантов. Так мы в максимально сжатые сроки начали разработку.
Camunda имеет хорошую инфраструктуру и собственный редактор BPM-процессов. Это позволило быстро создать MVP проекта. А возможности движка обеспечили гибкую настройку под каждого клиента.
Сейчас любой сотрудник предприятия, знакомый с BMP-диаграммами, может спроектировать необходимый для него процесс. А мы, используя внутренний интерфейс, можем загрузить процесс в систему и начать его выполнять.
CNews: Какой технологический стек, помимо Camunda, вы использовали в проекте, и что определило ваш выбор?
Никита Грибалев: Мы использовали PHP как язык программирования и Symfony как фреймворк. Для месседжинга у нас был Rabbit MQ. То есть стек было достаточно простой. Выбрали его потому, что с ним цикл разработки довольно быстрый, а сроки у нас были сжатыми. К тому же в других проектах компании тоже использовался PHP, и это позволяло в случае необходимости подключать к нам специалистов из соседних команд.
CNews: Расскажите о взаимодействии с бизнес-стейкхолдерами на этапе проектирования системы — какие подходы помогли найти баланс между бизнес-целями и техническими возможностями?
Никита Грибалев: Нужно сказать, что пришлось приложить довольно много усилий, чтобы достичь понимания и скорректировать ожидания. Конечно, любой продукт призван закрывать потребности бизнеса, но в процессе могут возникнуть технические сложности — и чтобы их исправить, стейкхолдерам нужно немного изменить потребности. Мне приходилось много общаться и искать компромиссы.
В нашей команде также работала аналитик, которая занималась сбором бизнес-требований. Совместно с ней мы формировали техническое представление каждой функции, закрепляли его, а я потом доносил до стейкхолдеров, как моя команда будет его реализовать. После фидбэка я брал задачи в разработку и распределял между разработчиками. Каждые две недели мы демонстрировали текущий статус проекта, снова собирали фидбэк и уходили на следующую итерацию.
Для разработки мы использовали методологию Agile — это позволило гибко выстраивать процессы, корректировать ожидания и полностью управлять процессом. У наших стейкхолдеров было отличное видение бизнеса и его потребностей, а Agile дал им пошаговое понимание того, что мы делаем. После каждой итерации мы представляли новые функции, и бизнес видел, что работа идет.
Мы нашли общий язык и наладили общение, но потребовалось время, чтобы объяснить стейкхолдерам технические нюансы. Где-то к середине проекта мы достигли полного понимания, и дальнейшая работа проходила гладко. В итоге мы смогли собрать довольно сложное MVP всего за полгода.
CNews: Какие ключевые факторы вы учитываете при проектировании архитектуры сложных инфраструктурных систем, чтобы обеспечить их масштабируемость и надежность?
Никита Грибалев: Главное в разработке любого крупного индустриального продукта — обеспечить масштабируемость, чтобы продукт в дальнейшем мог свободно и быстро развиваться. Для этого есть условный набор правил. Например, не использовать локальные способы хранения, чтобы при разработке не закончилась память. Или сразу представлять, какие еще будут потребности у пользователей системы и планировать дополнительные функции либо микросервисы.
Чтобы в дальнейшем свободно увеличивать количество ресурсов, которые мы можем предоставить системе, нужно подумать над архитектурой и процессами. Например, возможность ставить отложенные или асинхронные задачи позволит регулировать загрузку ресурсов и не терять данные. Также нужно использовать кэш-системы, которые помогут снизить нагрузку на вычислительные мощности.
CNews: Какие ключевые навыки и знания вы считаете необходимыми для девелопмент-менеджера, работающего над сложными технологическими проектами?
Никита Грибалев: Я бы сказал, что один из главных навыков в такой работе — это хорошее воображение. Необходимо сначала уместить у себя в голове огромное количество различных вещей, а потом соединять их в слаженную картину. Потому что при разработке сложной системы нужно будет охватывать большое количество нюансов и контекстов.
Также важен навык дипломатии и умение принимать критику. По работе девелопмент-менеджеры постоянно общается со стейкхолдерами. И иногда они выражают критику довольно эмоционально — но не потому, что хотят обидеть, а из-за эмоций, когда ожидания не совсем совпадают с реальностью. Важно это понимать и уметь вернуть разговор в конструктивное русло, чтобы вместе подумать над решением задачи.
Без умения находить общий язык с бизнесом девелопмент-менеджер не сможет выполнить свою задачу — предоставить функциональность, которая будет полезна этому бизнесу.