Разработали новое ДБО для крупного банка
О проекте
- Годы проекта: 2018–2024
- Платформы: Натив для iOS, Android
- Виды работы: бизнес-анализ, UX/UI дизайн, разработка, тестирование, продуктовая аналитика
О заказчике
Мы не называем заказчика по условиям NDA, но к нам обратился один из крупнейших российских банков — он входит в 25 крупнейших банков России по ключевым показателям деятельности. Компания оказывает банковские и финансовые услуги физическим и юридическим лицам по всей России через физические отделения и дистанционно через сайт и мобильное приложение.
Бизнес-цель заказчика
В 2018 году банки активно дорабатывали мобильные приложения и превращали их из информационных сервисов в функциональные. Если до этого банки делали приложения так, чтобы клиенты в основном могли узнавать баланс и отслеживать переводы, то начиная с 2018 года банки стали делать приложения для всестороннего дистанционного обслуживания клиентов.
У нашего заказчика также было мобильное приложение для физических лиц, которое работало на базе готового коробочного решения компании BSS. Заказчик столкнулся с тем, что решение не позволяло быстро дорабатывать и кастомизировать приложение под потребности рынка: глобально менять дизайны интерфейсов, разрабатывать и внедрять новые механики, улучшать путь пользователя, добавлять и продвигать новые банковские продукты. Наш клиент был ограничен в инструментах конкуренции с более технологичными банками.
Чтобы нарастить конкурентоспособность и получить гибкий инструмент для долгосрочного развития, банк решил перейти на собственное мобильное приложение и отказаться от коробочного решения.
Наши задачи на проекте
Основная цель проекта — перевести банк с коробочного решения на собственное приложение незаметно для пользователей. То есть, нам нельзя было останавливать работу мобильного банка и нужно было перевести клиентов на новую технологическую платформу «на лету». Для этого нужно было:
- Организовать процессы взаимодействия между участниками проекта: руководителями банковских продуктов, технической командой банка, подрядчиком по бэкенду и нашей командой.
- Придумать и разработать новый дизайн приложения.
- Разработать с нуля нативные мобильные приложения для iOS и Android.
- Интегрировать приложения с существующим банковским бэкендом.
- Запустить первую версию приложения со всеми функциональными возможностями существовавшего коробочного приложения.
- Обеспечить постепенную миграцию пользователей из старой версии в новую.
- Внедрить пользовательскую аналитику, чтобы анализировать потребности и предпочтения клиентов и вносить соответствующие изменения в приложение.
- Развить новое приложение по дорожной карте банка, внедрить все функциональные возможности в последующих версиях и передать продукт внутренней команде банка.
Коротко о результатах
Полностью перевели банк с коробочного решения ДБО на собственное и запустили нативные iOS и Android-приложения. Спустя шесть лет сотрудничества полностью передали проектную экспертизу и продукты в инхаус-команду банка. Для этого перевели своего проектного менеджера и двух iOS и Android-разработчиков во внутреннюю команду банка.
В результате этого перехода:
- В 2022 году банк полностью перешел на собственные нативные приложения и увеличил число пользователей в 15 раз в течение года.
- Банк перестал зависеть от ограничений коробочного продукта и поставщика, научился внедрять новые функциональные возможности и подстраивать приложение под свои бизнес-процессы, а не наоборот.
- Банк смог предоставить все основные банковские возможности в новом приложении без потери клиентов: полностью дистанционное открытие и закрытие счетов, платежи и переводы по СБП между физлицами, бизнесом и государством, оформление кредитов и другие функции.
- Банк получил подробную пользовательскую аналитику по ключевым банковским воронкам и получил возможность вносить изменения в продукт на основе данных.
- Появилась своя команда для разработки приложений.
Параллельно работе с нами команда банка написала новый бэкенд на микросервисах и практически отказалась от коробочного бэкенда. Когда мы передавали проект инхаус, банк заканчивал работы по переходу на собственный бэкенд.
Что мы сделали, чтобы всё получилось
Провели аудит существующей архитектуры и выявили ограничения
На старте проекта подключили бизнес-аналитиков, дизайнеров и разработчиков, чтобы изучить банковскую архитектуру, учесть особенности и интеграции и детально проработать все требования к приложению. В результате выявили технические возможности бэкенда, ограничения по реализации дизайна, сформировали список необходимых API, составили техническое задание и описали логику работы приложения.
Такая подготовка позволила обнаружить несоответствия и скорректировать план работ на старте, а также избежать масштабных переделок по ходу проекта, увеличения сроков и сметы.
Привнесли проектную культуру и процессы в команду банка
Когда мы начинали проект, у банка не было сформированной ИТ-команды и устоявшихся процессов работы по разработке приложения. Это нормально для компании, которая только запускает или масштабирует онлайн-направление. За шесть лет работы мы постоянно дорабатывали процесс взаимодействия и меняли некоторые аспекты, но сохранили три главные договоренности:
- Мы предложили составлять годовые, квартальные и ежемесячные дорожные карты проектов и разбивать их на релизные планы. То есть мы в начале временного отрезка уже знали, над чем и когда будем работать.
- Мы перешли на релизы каждый месяц вместо релизов каждые три месяца. Так мы смогли сократить объем каждой сборки приложения и быстрее доставлять новые работающие возможности до клиентов банка и руководства.
- Строго ограничили число доработок или новых функций в одном релизе. Строго говоря, мы могли брать в релиз только три большие задачи и ни при каких условиях не брали четвёртую. Если четвёртая оказывалась срочной, то мы убирали из спринта ранее запланированную задачу.
Такая организация процесса позволила следовать планам и регулярно в назначенные сроки выпускать новые сборки приложений с новыми работающими возможностями. Такой процесс сохраняется в команде банка и после полного выхода нашей команды из проекта.
Разработали свежую концепцию дизайна, но отложили из-за коробочного бэкенда
Приложение банка было стилизовано под строгий фирменный стиль банка, а также унаследовало ограничения коробочного решения. Мы придумали и предложили банку новую уникальную концепцию дизайна, в которой сохранили фирменные цвета банковской группы и освежили элементы интерфейсов.
Продуктовая команда банка оценила этот дизайн и хотела внедрить, но не смогла согласовать реализацию с руководством. Руководство решило отложить переработку дизайна до момента, когда банковская инфраструктура полностью откажется от коробочных решений и сделает свой бэкенд на микросервисах.
Сфокусировались на разработке первой версии приложения и его последующей доработке
Совместно с руководителем проекта со стороны банка договорились разработать новое приложение в существовавшем дизайне и выполнить первоочередную задачу — уйти с коробочного решения ДБО на собственную платформу. Решили дорабатывать дизайн по ходу проекта строго в рамках фирменного стиля всей банковской группы.
По ходу проекта команда банка составляла ежегодные и ежеквартальные планы развития приложения — мы примерно понимали, какие функциональные возможности планирует внедрить банк в рамках года, приоритезировали их и определяли последовательность внедрения этих возможностей. В результате получали релизный план. При этом мы сразу договорились с командой банка, что можем дополнять требования банка, проводить улучшения и доработки поверх минимально необходимых запросов.
За шесть лет работы мы разработали и внедрили более сотни различных возможностей. В этом кейсе не приводим все, а рассказываем про самые основные и важные для банка.
Продолжили разрабатывать и выпускать новые возможности в банковском приложении
Добавили индивидуальные предложения продуктов на главный экран
Помимо разработки функциональностей из основного банковского бэклога, мы прорабатывали проблемные места в приложении и неучтённые сценарии использования. Например, вместе с продуктами банка добавили на главный экран баннеры с индивидуальными предложениями для клиента.
Команда банка может создавать и показывать баннеры для клиента на основе его данных и предпочтений. Баннеры мотивируют открыть новую карту, оформить страховку или кредит, открыть депозит с выгодными условиями.
Интегрировали систему быстрых платежей и настроили операции между физическими лицами, бизнесом и государством
В ходе проекта доработали приложение в соответствии с техническими спецификациями и требованиями со стороны национальной системы платёжных карт (НСПК) и системы быстрых платежей (СБП). В результате реализовали в приложении платежи между разными типами клиентов:
- C2C (customer-to-customer) — денежные переводы между физическими лицами по номеру мобильного телефона.
- C2B (customer-to-business) — оплата по QR-коду от физических лиц в пользу юридических лиц и индивидуальных предпринимателей.
- C2G (customer-to-government) — платежи от граждан в пользу государства через СБП вместо платежей по реквизитам.
Реализовали возможности полностью дистанционной верификации клиентов и открытия счетов
Для этого подключили так называемые Know Your Customer Solutions (KYC) или решения типа «Знай своего клиента». Это различные процедуры по сбору и обработке персональных данных клиентов и биометрическому распознаванию перед тем, как открыть счета и позволять автоматически проводить банковские операции. Требования KYC прописаны в ФЗ № 115, а также в Положении Банка России № 499-П.
Механика достаточно простая и базовая для российских банков, но чтобы она работала корректно, необходимо проработать механизм передачи данных между всеми независимыми сторонами: нами как фронт-разработчиком, пользователем как владельцем и источником данных, CRM банка как обработчиком данных, базами данных из бэкенда, ЕСИА и другими государственными службами.
Чтобы собирать данные клиента и навигировать его по всем шагам, мы разработали мобильные анкеты и экраны с подсказками и инструкциями. Чтобы дистанционно верифицировать клиентов и открывать счета, мы интегрировали приложение банка с Госуслугами и единой биометрической системой от Ростелекома. Также настроили защищенную передачу данных между сторонами.
Добавили диплинки в пуш-уведомления, чтобы перенаправлять пользователей в конкретные разделы приложения
Банк может дополнять свои пуш-уведомления ссылками. Когда пользователь нажимает на такую ссылку в уведомлении, операционная система смартфона перенаправляет его на соответствующую страницу в приложении. Там пользователь увидит предложение, которое для него подготовил банк: например, сниженную ставку по кредиту или цифровую карту.
Настроили бесконтактную оплату через NFC
Сделали так, что клиенты банка могут оплачивать покупки бесконтактно — даже если их устройство перестало поддерживать банковские карты внутри мобильного кошелька. Для этого добавили в приложение возможность находить NFC-метки бесконтактно. Это работает так:
- Пользователь подносит устройство к терминалу оплаты.
- Устройство бесконтактно обнаруживает NFC-метку владельца магазина.
- Приложение запускается и предлагает оплатить заказ по нажатию кнопки.
Механика похожа на оплату QR-кодом, только без сканирования камерой.
Внедрили международные переводы
Когда в некоторых странах СНГ заработала НСПК, банку потребовалось внедрить возможность переводить деньги в разные страны по российским и зарубежным номерам телефонов. Мы разработали такую возможность. Для этого мы добавили в приложение справочники номеров новых стран. При переводе страну определяли по коду телефона.
Работали вместе с банковской бэкенд-командой и подрядчиком по бэкенду, чтобы интегрироваться и обмениваться данными
На проекте мы работали с командой бэкенда через ещё одного подрядчика банка: он адаптировал и передавал наши запросы друг к другу. В него стягивалась вся информация с бэкенда и из внутренних систем банка — например, из справочников. Такая схема работы потребовала от всей команды проекта особенной внимательности и точности: мы подробно фиксировали все требования и действия в документации. В результате мы реализовали приложение, которое стабильно работало с учётом всей специфики внутренних систем банка.
Например, процесс оформления онлайн-заявки на кредит для пользователя выглядит просто и понятно. Но в основе этой функции — технически сложная логика и интеграции со множеством банковских систем:
- С бэкендом банка, где обрабатываются транзакции и KYC-верификация.
- Со справочниками и базами данных, из которых подтягивается информация для анкет.
- С отделом оценки рисков, который анализирует информацию и рассчитывает процентную ставку.
Внедрили автотесты, чтобы сократить время и повысить качество тестирования
На подобных проектах мы рекомендуем использовать автотесты. Проект задействует десятки ответственных лиц и развивается короткими итерациями. В каждой итерации может быть 10 новых изменений. Чтобы продукт функционировал, нужно проверять каждую сборку и устранять ошибки вовремя. Иначе каждая пропущенная ошибка будет тормозить или ломать больший объём работ.
В результате приходится вручную тестировать каждую сборку и оттягивать последующие сборки до полного устранения ошибок, либо рисковать и тестировать по ходу. Но также можно использовать автотесты: с ними можно тестировать больше за меньшее время и обнаруживать потенциальные проблемы гораздо раньше.
На первом этапе работы с банком мы использовали кроссплатформенный фреймворк с открытым исходным кодом Calabash. С его помощью мы автоматизировали регрессионное тестирование: оно проверяет стабильность приложения, ищет явные ошибки и проверяет функции, которые изменились в новой версии. За счёт внедрения автотестов мы покрыли код приложений тестами на 90% и ускорили тестирование.
Со временем мы перешли на более эффективный инструмент, Appium. Теперь мы экономим 8 часов на каждой сборке и уменьшили утечку дефектов пользователям на 25% — автотесты обнаруживают эти дефекты.
Автотесты пишем на «человеческом» языке — русском диалекте Gherkin. Использование Gherkin — хорошее решение, если компания заказчика собирается продолжать разработку самостоятельно. К такому тестированию легко подключить любого тестировщика — даже если он изначально не знаком с технологией.
Сократили количество багов по ходу проекта
В начале проекта мы столкнулись со старыми багами, которые висели без проработки. Ошибки выявлялись и на регрессионном тестировании. Параллельно с их исправлением наша команда планировала, как избежать появления багов в дальнейшем.
Договорились с банком о тестировании на готовом бэкенде
Раньше мы тестировали приложение только на подменённых данных. Чтобы багов было меньше, нам нужны были реальные данные. Тогда мы выстроили релизы так, чтобы они выходили на 7–10 дней раньше, чем мы начинали внутреннее тестирование. За счёт этого мы смогли сократить число багов на 30%.
Сравнили и объединили наши тестовые модели с банковскими
Мы проанализировали, какие модели для тестов использует банк. Сопоставили их с нашими и выявили недочёты и непокрытые кейсы. Эти данные мы включили в тестовый модуль. Расширенный модуль дополнительно сократил число багов на проекте.
Тестировали смежные функции вместе
В приложении есть однотипные функции: например, переводы C2B, C2C и Me2Me. Раньше на проекте мы тестировали такие смежные функции отдельно. Чтобы снизить число ошибок, мы начали тестировать все ближайшие по смыслу функции вместе. Это помогло ещё больше расширить тестовый модуль и найти упускаемые баги.
Ввели импакт-отчёт и добавили больше общения в работу
Мы перестроили процессы так, чтобы функции детальнее проверялись на этапе разработки — до тестирования. Всю сборку перед выходом ещё раз тщательно проверяли по ТЗ: часто на этом этапе баги можно отладить самостоятельно. А чтобы в большой команде было легче найти информацию, мы наладили процессы обратной связи между коллегами.
После этих изменений регрессионное тестирование обнаруживало не более 1–2 багов.
Результат
Банк полностью перешёл на кастомное решение и перестал зависеть от ограничений коробочного продукта и поставщика. В новом приложении есть все основные банковские возможности: дистанционное открытие и закрытие счетов, платежи и переводы по СБП, оформление кредитов и другие функции. Переход прошёл без потери клиентов, а за первый год работы нового решения пользователей стало в 15 раз больше.
Для развития продукта банк может использовать пользовательскую аналитику, которую мы внедрили в новое приложение.
Процессы разработки и тестирования наладили так, чтобы минимизировать число багов. Проект передали внутренней команде банка и перевели к ним часть наших сотрудников, работавших над приложением.