Решение
Рефакторинг
Нашей главной задачей стала миграция платформы на фреймворк Angular 2.0, но предварительно мы осуществили полный рефакторинг кода и архитектуры системы. Сделали код легко читаемым, устранили ошибки, продумали архитектуру и убрали из системы ненужные компоненты, правильно назвали переменные. Если бы мы не сделали этого, работать с платформой в будущем было бы гораздо сложнее.
Расширение команды
Процесс миграции на Angular 2.0 начался в ноябре 2020 года и занял четыре месяца. Сначала над этой задачей работал один фронтенд-инженер Sibedge, который переносил на новый фреймворк компонент за компонентом. После успешного завершения этой задачи, клиент доверил нам разрабатывать и внедрять в платформу новые функции, чтобы удовлетворять постоянно растущие потребности пользователей. Чтобы справляться с новыми задачами, к команде в течение трёх недель присоединились ещё три бэкенд-разработчика, четыре фронтенд-разработчика и два UX/UI-дизайнера. Работая в рамках сервиса Team Extension, мы учитываем скорость формирования ИТ-команд и сроки масштабирования (scale up & down). Обычно выход нового специалиста на проект возможен в течение двух-четырёх недель.
Поначалу функции аналитика на проекте выполнял СТО заказчика, у которого на это было не так много времени. Ценности в найме выделенного эксперта на эту роль заказчик не видел. Мы предложили на пару недель интегрировать в команду собственного аналитика. Если бы заказчик не увидел отдачи от его работы и решил отказаться от него, часы работы специалиста оплатила бы Sibedge. Но в итоге аналитика оставили в команде, так как клиент оценил пользу системной и бизнес-аналитики для развития платформы.
Налаживание процесса разработки
Нужно было выстроить процесс разработки таким образом, чтобы наладить эффективное взаимодействие внешней команды и внутренних разработчиков клиента. За административное управление инженерами отвечает руководитель проекта. Он же координирует процесс разработки. Мы интегрировали в разработку сервис Miro, который упростил коммуникацию между инженерами и заказчиком. Чтобы команда понимала, в каком направлении движется проект, мы проводили ежедневные встречи с разработчиками и разъясняли им текущие цели и задачи.
Поскольку задач было много, и в один спринт их не решить, важно правильно расставлять приоритеты. Одни задачи нужно было решать в первую очередь, а какие-то сдвигать на второй план. Клиент в общих чертах описывал нам бизнес-требования, а мы разбивали крупные задачи на мелкие и переходили к планированию. Изучали каждую задачу со всех сторон: что будем делать, с помощью каких технологий, какие могут возникнуть подводные камни. Уточняли у клиента недостающие детали и требования, и только потом приступали к работе.
Улучшение платформы
Помимо переноса платформы с устаревшего фреймворка на новый, мы также добавили в систему несколько новых функций. Например, двухфакторную аутентификацию, так как этого требует законодательство некоторых стран, когда дело касается сервисов, работающих с денежными переводами. Также мы интегрировали в платформу новые платёжные решения.
Благодаря большому количеству проектов инженеры Sibedge понимают особенности продуктов из разных отраслей и с готовностью делятся наработанным опытом и экспертизой с заказчиками. CTO клиента оценил, что разработчики Sibedge самостоятельно предлагают новые решения и придумывают способы улучшения архитектуры платформы. Например, раньше развёртывание платформы происходило через малоизвестный и не самый удобный инструмент Vagrant — он растягивал процесс сборки на несколько дней. Мы предложили реализовать процесс через Docker, который в несколько раз повышает скорость развёртывания и позволяет разделить бэкенд и фронтенд, вместо того, чтобы собирать всё вместе. Клиенту понравилась идея и в данный момент ведётся работа над этой задачей.