Одним из ключевых разработчиков данного проекта стал Ринат Юнусов. Сегодня он приоткроет для нас занавес внутренних процессов создания цифрового продукта в Сбере.
Ринат, добрый день. Благодарю вас, что нашли время рассказать нам и нашим читателям о вашей работе. В самом начале хотелось бы узнать, как вы попали в этот проект и какую должность вы занимали?
Я переехал в Москву в прошлом году для полноценной работы в Сбере, после их предложения о трудоустройстве с более выгодными условиями во время ребрендинга и активного развития IT. Меня привлекла возможность получить опыт работы в крупной цифровой экосистемной компании с большими нагрузками на веб-приложения. Здесь было больше возможностей для дальнейшего развития, что меня радовало. На тот момент я имел обширный опыт в создании клиентских веб-сервисов Среди моих навыков были: проведение ресерча UX/UI и быстрое создание удобного для пользователя флоу. Моя экспертиза охватывала дизайн, маркетинг и разработку, что позволяло мне легко определить потребности продукта и совместно с дизайнерами создать идеальный дизайн для разработки.
За год работы в компании я дважды получал повышение - изначально я пришел на должность ведущего разработчика, затем на Тимлида и, наконец, на Руководителя направления.
Соглашусь, работа над продуктами Сбера - это всегда новые решения и передний край цифровой разработки. Если же говорить о самом проекте Самоинкассации, вы пришли и некое MVP уже работало, в чем заключалась ваша работа? Какие этапы вы реализовали?
Да, вы правы. Продукт уже был рабочим, но с минимумом функционала. Я стал участником его миграции на новые технологии.
Этапы моей деятельности я могу описать достаточно кратко.
Моя работа началась с выноса всего легаси кода в отдельный репозиторий, перехода от монолита к микросервисам и обновления основных библиотек. Затем я провел рефакторинг всего кода в соответствии с современными стандартами. Для гармоничного внедрения нового дизайна я сначала согласовал его с использованием дизайн-системы, заменил старый UI на новый, соответствующий этому дизайну. Далее я переписал основную бизнес логику, чтобы упростить код и ускорить работу.
Добавление новой функциональности на основе моих идей позволило улучшить удобство использования продукта для пользователей и сократить рутину процесса создания новых сущностей до минимума.
Я использовал TypeScript для обеспечения типизации при полной переписи всех страниц и форм с нуля после перемещения в отдельный репозиторий и микросервис. Проведя деконструкцию единого React приложения на отдельные микросервисы с помощью Module Federation, я применил разработанную другой группой дизайнеров систему дизайна, предложил новые компоненты и внес доработки в уже существующие. Вместе с командой я участвовал в утверждении изменений, предлагал правки и корректировки стандартов дизайна на основе моих идей.
Для обеспечения более эффективной работы системы был внедрен индивидуальный механизм EventBus, что позволило адаптировать взаимодействие между различными модулями. Также была осуществлена оптимизация процессов, что привело к ускорению выполнения задач вдвое. В процессе выпуска обновлений пользователи плавно переходили на новые функции. Одной из таких новых опций, внедренных в систему, стали "Заявления". Если раньше, чтобы оформить сотрудника и получить логин и пароль, по которым он мог внести деньги, нужно было подавать заявку в отделении банка, то сейчас достаточно создать заявление в приложении и получить эти данные после проверки банком через смс.
Также была добавлена функциональность сканирования паспорта для автоматического заполнения полей, что значительно упростило и ускорило процесс добавления нового доверенного лица в систему. Алгоритм машинного обучения на сервере использовался для распознавания текста и автоматической подстановки данных, загруженных пользователем.
Для упрощения создания новых запросов была внедрена функция «Шаблоны», которая позволяет использовать их.
Это колоссальная работа. Звучит все достаточно гладко, а встречались ли вы с трудностями?
В начале своей работы в Сбере я столкнулся с трудностями интеграции с бэкендом локально. Для решения этой проблемы я разработал свой инструмент проксирования на JS, который был размещен на внутреннем пакетном сервисе. Этот инструмент был удобен, мог принимать конфигурации Nginx и стал широко использоваться в банке, что принесло мне признание среди разработчиков Сбера.
Несмотря на наличие большого опыта, в начале я также столкнулся с трудностями в работе с легаси кодом и необходимостью удерживать в голове всю архитектуру функциональности. Однако в целом все сложности были преодолены достаточно быстро.
Для решения поставленных руководством задач, я составлял несколько архитектурных карт и сиквенс диаграмм, чтобы убедиться, что ничего не забыто и всё учтено. Небольшие ошибки, конечно, возникали, но их отлавливали на этапе тестирования.