Корпоративная система управления проектами Sibedge

КСУП (ВК).jpgНа протяжении двух лет инженеры Sibedge работали над созданием «Корпоративной системы управления проектами» (КСУП). Она задумывалась, как способ повышения эффективности управления проектами, а также упрощения работы менеджеров проектов, руководителей портфелей проектов и тимлидов.

Предпосылки создания КСУП

Разработка началась в 2015 году, когда численность сотрудников Sibedge не превышала 50 человек. Изначально мы выбрали монолитную архитектуру, которая была лишена гибкости в плане разработки, отказоустойчивости, масштабируемости и поддержки.

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

  • Высокую доступность и отказоустойчивость системы.
  • Инструменты для импорта репозиториев и синхронизации технических артефактов.
  • Возможность гибкого масштабирования системы.
  • Автоматическая синхронизация с внешними системами тайм-трекинга заказчиков, даже тех, которые находятся в закрытом корпоративном контуре.
  • Интеграция с системами 1С, Power BI, Zoho, Bitrix и другими.
  • Качественное документирование и распределение экспертизы экспертизы внутри команды разработки.

Разработка КСУП

После формирования окончательного видения будущего продукта с учётом потребностей бизнеса и прошлых ошибок, мы приступили к разработке КСУП версии 2.0. Основным изменением стал отказ от монолитной архитектуры. Мы декомпозировали задачи и разнесли их по нескольким изолированным друг от друга микросервисам. В качестве основных технологий были выбраны Python (фреймворк FastAPI) и .NET.

Одним из приоритетов разработки стало сокращение времени поставки новых версий продукта. Релизные процессы мы выстроили на платформе Azure DevOps. Гибкость, масштабируемость и отказоустойчивость системы обеспечивалась с помощью оркестратора Kubernetes. Команда состояла из .NET, front-end и Python-разработчиков, DevOps-инженеров, QA-специалистов и руководителя проекта.

Изначально монолитный КСУП был разделён на следующие микросервисы:

API Gateway — движок, через который происходит обмен основными данными между модулями и аутентификация сервисов.
Project Service — обеспечивает мапинг проектов, работу Azure DevOps и кастомизированных элементов, которые работают на этой платформе.
ADO Connect — осуществляет связь сервисов с Azure DevOps
ADO Configurator — предназначен для настройки работы Azure DevOps.
TFS Extension — отвечает за взаимодействие с сервисами TFS.
Import Time — инструмент импорта трудозатрат из внешних систем тайм-трекинга.
Import Repo — модуль импорта репозиториев с проектными артефактами.
Email Notification — сервис, который уведомляет руководителей проектов о том, что нужно согласовать трудозатраты, а инженеров — что им нужно списать трудозатраты.

KSUP_Services_Map.png

Данные о трудозатрата сотрудников хранятся в базе PostgreSQL с поддержкой процедурного языка V8. Каждый сервис изолирован от остальных, поэтому если один выходит из строя, остальные продолжат работать. Так мы достигли отказоустойчивости в рамках новой архитектуры. Этот подход также позволяет бесшовно внедрять новые модули в систему, не прерывая её работу.

Изменения в релиз-менеджменте

Бизнесу был нужен отлаженный и контролируемый процесс поставки новых функций и возможностей. Чтобы уменьшить показатель Time to Market, ускорить проверку гипотез и повысить стабильность поставок мы пересмотрели подход к релиз-менеджменту. Вот лишь некоторые нововведения, которые мы внедрили за время разработки КСУП:

  • Переосмысление ведения задач в трекере и в кодовой базе (GitFlow).
  • Definition of Ready и Definition of Done для поставляемых функций.
  • Календарь релизных церемоний.
  • Версионирование релизов.
  • Формализованный план релиза для каждого сервиса в рамках платформы.
  • Перевод CI/CD на новые рельсы (IaC, MaC, GitOps).

В будущем мы планируем вовлечь всю команду разработки в культуру DevOps, чтобы каждый участник был вовлечён в процесс и двигался к релизу вместе с остальными. Накопленный внутренний опыт Sibedge будет предлагать в виде сервисов своим партнёрам.

Релиз КСУП

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

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

Бизнес-метрики

  • Возможность внесения и согласования трудозатрат.
  • Проектное управление (создание, изменение проектов). При создании карточки нового проекта, менеджер автоматически привязывается к нему и получает необходимые права доступа.
  • Сотрудники получают уведомления о необходимости списать и согласовать трудозатраты.
  • Интеграция с Power BI и формирование отчётности по данным из Azure DevOps.
  • Импорт и хранение артефактов разработки с внешних проектов внутри компании, что обеспечивает защиту интеллектуальной собственности.

Продуктовые метрики

  • Отчётность по фактическим трудозатратам.
  • Оценка приблизительных сроков, которые нужны разработчикам на решение задач.
  • Внесение разработчиками трудозатрат во внешнюю систему без необходимости дополнительного списывания часов во внутреннем корпоративном тайм-трекере.
  • Бесшовная авторизация — вход в Azure DevOps даёт полный доступ к возможностям платформы.
  • Обеспечение SLA и доступность сервисов системы, благодаря отказоустойчивости архитектуры решения.

Маркетинговые метрики

  • Интеграция с Zoho. Строим воронку сделок и отправляем их в КСУП.
  • Интеграция с Bitrix. Каждый сотрудник видит, в каких проектах он участвует и какие задачи решает.

Будущее КСУП

Работа над КСУП продолжается. Мы собираем обратную связь от разработчиков и руководителей проектов, чтобы сделать систему ещё удобнее и эффективнее. В ближайших планах создание единой системы мониторинга и алертинга работоспособности платформы. Также ведётся работа над инструментом для анализа логов микросервисов.

Мы также продолжаем вкладывать ресурсы в Research and Development в части новых технологий, подходов к проектированию сложных систем, использования фреймворков, языков программирования и распространения DevOps-культуры внутри компании. Не исключено, что со временем наш внутренний продукт может перерасти в коммерческий, и тогда мы предложим его нашим партнёрам и клиентам.