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