Новое банковское приложение: в 15 раз больше пользователей, на 80% быстрее тестирование

Заказчик Крупный российский банк — входит в 25 крупнейших банков России по ключевым показателям деятельности (не называем заказчика по условиям NDA)ЗадачаПеревести банк с коробочного решения на собственное, не останавливая работу мобильного банка.

У банка уже было приложение на базе коробочного решения. Но оно не позволяло быстро кастомизировать мобильный банк под потребности рынка. Поэтому банк обратился к команде Surf, чтобы создать собственное приложение.

Нам нужно было:

— Придумать новый дизайн и разработать с нуля мобильные приложения для iOS и Android со всеми возможностями, которые были у коробочного решения.

— Интегрировать приложения с существующим бэкендом.

— Обеспечить миграцию пользователей из старой версии в новую без перерывов в работе приложения.

— Внедрить пользовательскую аналитику, чтобы совершенствовать приложение на основе анализа аудитории.

— Развить новое приложение по дорожной карте и передать продукт внутренней команде банка.

В результате проекта банк:

Полностью перешёл на собственные приложения и перестал зависеть от ограничений «коробки».

Увеличил число пользователей в 15 раз в течение года.

Реализовал дистанционные сервисы: открытие и закрытие счетов, платежи и переводы по СБП между физлицами, бизнесом и государством, оформление кредитов. 

Ведёт подробную пользовательскую аналитику и теперь может вносить изменения в продукт на основе данных. 

- Получил свою команду для разработки приложений.

Параллельно работе с нами команда банка практически отказалась от коробочного бэкенда и перешла на собственный бэкенд на микросервисах. 

Как работали над проектом: провели аудит и наладили процессы

На старте проекта наши бизнес-аналитики, дизайнеры и разработчики:

— Выявили технические возможности бэкенда и ограничения по реализации дизайна.

— Сформировали список необходимых API.

— Составили техническое задание.

— Описали логику работы приложения.

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

У банка не было сформированной ИТ-команды и устоявшихся процессов разработки. Поэтому в начале проекта мы договорились:

1. Составлять годовые, квартальные и ежемесячные дорожные карты проектов и разбивать их на релизные планы. Чтобы в каждый момент знать, над чем и когда будем работать.

2. Перейти на релизы каждый месяц, а не раз в три месяца. Так мы смогли сократить объем каждой сборки приложения и быстрее внедрять новые функции.  

3. Брать в каждый релиз только три большие задачи, не больше. Если четвёртая оказывалась срочной, то мы убирали из спринта другую задачу. 

Такая организация позволяет выпускать новые сборки приложений регулярно и в срок.

Разработали свежую концепцию дизайна, но отложили из-за коробочного бэкенда

Мы придумали и предложили банку новую концепцию дизайна, в которой сохранили фирменные цвета банковской группы и освежили элементы интерфейсов. Сделали всё с учётом ограничений бэкенда.

AD_4nXdj0FKqvaMvNbpzBehVrpdsX_D2mT9sP2Gc

Продуктовая команда банка оценила этот дизайн и хотела внедрить. Но руководство решило отложить это до момента, когда банк перейдёт на свой бэкенд на микросервисах.

Спланировали состав первой версии приложения и последующих доработок

По ходу проекта команда банка составляла ежегодные и ежеквартальные планы развития приложения.

Мы определяли приоритет новых функций и порядок их внедрения. Договорились с командой банка, что можем дополнять требования и проводить улучшения поверх минимально необходимых запросов.

AD_4nXdUllL5dyKTGSaBqKVrzdgcIWiIdzJbLl8h

За шесть лет работы мы разработали и внедрили более сотни различных возможностей. В этом кейсе не приводим все, а рассказываем про самые основные и важные для банка.

Добавили индивидуальные предложения на главный экран

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

Команда банка может создавать и показывать баннеры на основе данных клиента: ему могут предложить открыть новую карту, депозит с выгодными условиями, или оформить другой продукт.

AD_4nXfpTbDzJtkmLL75vci09GejUsMtdD51rQ1j

Интегрировали удобные способы переводов и платежей внутри и за пределами страны

В соответствии с требованиями национальной системы платёжных карт (НСПК) и системы быстрых платежей (СБП) реализовали платежи между разными типами клиентов:

C2C (customer-to-customer) — денежные переводы между физическими лицами по номеру телефона.

C2B (customer-to-business) — оплата по QR-коду от физических лиц в пользу юридических лиц и ИП.

C2G (customer-to-government) — платежи от граждан в пользу государства через СБП вместо платежей по реквизитам.

AD_4nXe1Nuzeb90Onr352W8W2W0vpqScWv9ewMkJ

Также добавили бесконтактный поиск NFC-меток, чтобы пользователь оплачивал покупки смартфоном даже если оплачивать банковской картой через приложение-кошелёк он больше не может.

Чтобы пользователи могли переводить деньги по номерам телефонов и в другие страны, мы добавили в приложение справочники номеров разных стран. При переводе страну определяли по коду телефона.

Реализовали дистанционную верификацию клиентов и открытие счетов

Для этого подключили Know Your Customer Solutions (KYC) — процедуры по сбору и обработке персональных данных и биометрическому распознаванию клиентов перед тем, как открыть счета и позволять автоматически проводить банковские операции.

Чтобы KYC работали корректно, проработали передачу данных между всеми независимыми сторонами:

— Нами как фронт-разработчиком.

— Пользователем как владельцем и источником данных.

— CRM банка как обработчиком данных.

— Базами данных из бэкенда.

— ЕСИА и другими государственными службами. 

Также настроили защищённую передачу данных между сторонами.

Чтобы дистанционно верифицировать клиентов и открывать счета, интегрировали приложение банка с Госуслугами и единой биометрической системой.

AD_4nXe0PxIjV1gKyli-I4Jc4gwmYEPJPnROVwfO

Чтобы собирать данные клиента и направлять его по всем шагам, разработали мобильные анкеты и экраны с подсказками и инструкциями.

Добавили в пуш-уведомления диплинки, ведущие в конкретные разделы приложения

Когда пользователь нажимает на такую ссылку, операционная система смартфона перенаправляет его на соответствующую страницу в приложении. Там пользователь увидит предложение от банка: например, сниженную ставку по кредиту или цифровую карту.

AD_4nXcpLcNuY5X4xYJN9iYIepo93usdIm_MQZaO

Интегрировали работу трёх команд и наладили обмен данными

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

Как это работает: оформление онлайн-заявки на кредит

Для пользователя процесс выглядит просто и понятно. Но в основе этой функции — технически сложная логика и интеграции со множеством банковских систем:

— В бэкенде банка обрабатываются транзакции и KYC-верификация.

— Из справочников и баз данных подтягивается информация для анкет.

— Отдел оценки рисков анализирует информацию и рассчитывает процентную ставку.

Такая схема работы потребовала от всей команды проекта особенной внимательности: мы подробно документировали все требования и действия.

В результате мы реализовали приложение, которое стабильно работало с учётом всей специфики внутренних систем банка.

AD_4nXf8JCFO8pu4lm9kEjwFn85DT2cbU4RUc2o8

Повысили качество и скорость тестирования с помощью автотестов

Проект задействует десятки ответственных лиц и развивается короткими итерациями. В каждой итерации может быть 10 новых изменений.

Чтобы продукт функционировал, нужно проверять каждую сборку и устранять ошибки вовремя. Иначе каждая пропущенная ошибка будет тормозить или ломать больший объём работ.

На таких проектах мы рекомендуем автотесты: с ними можно тестировать больше за меньшее время и обнаруживать потенциальные проблемы гораздо раньше.

AD_4nXdXn7WTTaS4ftgaAd7DzdrR72NeeA3CVGyp

Код приложений покрыли тестами на 90% и ускорили тестирование с помощью автотестов.

На первом этапе работы мы использовали кроссплатформенный фреймворк с открытым исходным кодом Calabash. Со временем перешли на более эффективный инструмент, Appium.

Теперь мы экономим 8 часов на каждой сборке и уменьшили утечку дефектов пользователям на 25% — автотесты обнаруживают эти дефекты.

Автотесты пишем на «человеческом» языке — русском диалекте Gherkin. К тестированию на Gherkin легко подключить любого тестировщика, даже если он не был знаком с технологией.

AD_4nXf4l4CyKZbhQRMLWVD7sWDlbEClHKDJJ3qs

Сократили количество багов по ходу проекта

В начале проекта мы столкнулись со старыми багами, которые висели без проработки. Ошибки выявлялись и на регрессионном тестировании. Параллельно с их исправлением наша команда планировала, как избежать появления багов в дальнейшем.

Договорились с банком о тестировании на готовом бэкенде. Выстроили релизы так, чтобы они выходили на 7–10 дней раньше, чем мы начинали внутреннее тестирование. За счёт этого мы сократили число багов на 30%.

Объединили наши тестовые модели с банковскими. Сопоставили модели и выявили недочёты и непокрытые кейсы. Эти данные включили в новый расширенный тестовый модуль, который также сократил число багов.

Тестировали смежные функции вместе. Например, переводы C2B, C2C и Me2Me. Это помогло ещё больше расширить тестовый модуль и найти упущения.

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

После этих изменений регрессионное тестирование обнаруживало не более 1–2 багов.

Результаты

Банк полностью перешёл на кастомное решение — и перестал зависеть от ограничений коробочного продукта и поставщика.

В новом приложении есть все основные банковские возможности: дистанционное открытие и закрытие счетов, платежи и переводы по СБП, оформление кредитов и другие функции.

Переход прошёл без потери клиентов, , а за первый год работы нового решения пользователей стало в 15 раз больше.

Банк может использовать пользовательскую аналитику для развития продукта, которую мы внедрили в новое приложение.

Число багов минимизировали за счёт налаженных процессов разработки и тестирования.

Перевели в команду банка часть наших сотрудников, работавших над приложением, и передали проект банку.

Перейти на сайт

Полный текст статьи читайте на CMS Magazine