Мы используем cookie-файлы. Оставаясь на сайте роботов, человек соглашается на использование cookie-файлов.
Подробнее — в «Условиях использования cookie-файлов».

РосЕвроБанк: догнать за полгода

История о том, как мы за полгода с нуля написали приложение банка.

Нет времени объяснять

Функционал мобильного банка условно можно разделить на три блока: сервис для текущих клиентов, электронный кошелек и платежный агрегатор. На разработку такой системы с нуля могут уйти те самые 5-6 лет, которые потребовались Сбербанку, чтобы допилить свое приложение — столько времени ни у кого нет.

В начале 2016 года «РосЕвроБанк» решил разработать собственное мобильное приложение. Первые две попытки сделать его провалились — инфраструктура банка не позволяла сделать на ее основе рабочее решение, и команды мобильных разработчиков не могли выстроить целевую архитектуру по стандартам индустрии.

В итоге банк провел открытый конкурс, в котором победили роботы. Так мы получили 80 страниц ТЗ на разработку приложения. Команда проекта признается, что целиком его так никто и не прочел. На моменте, где было описано, что для регистрации пользователь должен ввести паспортные данные и СНИЛС, а затем еще и подтвердить регистрацию с электронной почты, читать бросил даже руководитель проекта.

Но общая проблема ТЗ не в том, что описанные в них требования далеки от реальности, а в самом механизме их формирования — отталкивая от запросов стейкхолдеров и имеющихся возможностей. В результате получается документ, руководствуясь которым, ничего нового или рабочего создать нельзя. Мы делаем по-другому: исследование — продукт — тест — доработка.

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

Есть один метод

Само мобильное приложение не выполняет операции и не хранит данные пользователей — вся логика работы прописана на сервере. Его разработка и интеграция с системами банка — это 90 % работы. Мы спроектировали спецификацию API, описали форматы запросов, типы ответов и параметров для каждого пользовательского сценария.

Алиса Морозова

руководитель проекта

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

Иван Вавилов

Team Lead iOS-разработки Redmadrobot

— При проектировании архитектуры взаимодействия между мобильным приложением и сервером мы следовали принципу "навязывания отраслевых стандартов" во всем: форматах передачи данных, протоколах взаимодействия и обеспечении безопасности. Вместе с банком мы спланировали график выхода методов и сделали для них авто-тесты на своей стороне. По результатам тестов формировались статусные отчеты о работоспособности методов. До старта проекта мы не смогли настроить всю внутреннюю инфраструктуру серверов, возникали проблемы с доступом, долгими ответами и ошибками работы, которые мы решали уже в процессе разработки.

Платить за все

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

Иван Вавилов

Team Lead iOS-разработки Redmadrobot

— Одной из самых сложных задач было создание гибкого механизма добавления схем платежей (без выпуска новой версии в AppStore и Google PlayMarket) и работы с ними. Каждый провайдер может потребовать разные данные для выполнения того или иного платежа. В процессе согласования мы вносили минорные изменения в API или UI/UX, когда из-за технических ограничений банк не мог с учетом всех рекомендаций реализовать целевое решение.

В приложении есть отдельная вкладка для платежей и несколько типов умных автоплатежей. Регулярные: когда пользователь указывает сумму, периодичность и возможные ограничения — до определенной даты или количества переводов. И нерегулярные по факту наступления события (налоги, штрафы): в этом случае можно настроить лимит операции и максимальную сумму платежей в месяц (например, оплачивать штрафы до 500 рублей автоматом, но не более пяти раз в месяц).

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

Причем оплатить счета в приложении можно как картой «РосЕвроБанка», так и другого банка — мы предусмотрели возможность привязки к кошельку в приложении внешней карты. Привязанная карта позволяет делать платежи, пополнять баланс карт «РосЕвроБанка» и совершать переводы с нее на любые другие карты. Между картами других банков можно совершать переводы с комиссией всего 1%. Для операций с внешними картами нужно только вводить их CVV/CVC коды.

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

Службы безопасности

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

Иван Вавилов, Team Lead iOS-разработки Redmadrobot:

— Особое вниманием мы уделили безопасности клиента и сервера, что особенно важно для банковских приложений. К сожалению, несмотря на огромные репутационные и финансовые риски, далеко не все приложения банков из топ-10 максимально защищены. Успешно пройденный аудит безопасности подтвердил, что пользователи приложения «РосЕвроБанка» могут быть спокойны за свои данные и средства.

Предусмотрено

Уже на первом этапе работы мы выстроили архитектуру, которая позволит развивать не только приложение, но и веб-сервисы банка.

Алексей Щербаков

Алексей Щербаков, IT-руководитель «цифрового банка», «РосЕвроБанк»:

— На мобильном приложении мы успешно опробовали смену архитектурного подхода, и теперь веб- и мобильное приложения будут синхронизированы и по функциональности, и с архитектурной точки зрения. Унификация упростит дальнейшее развитие банка: любой новый продукт мы можем быстро вывести на все доступные digital-каналы – web, mob, sms, ussd и так далее.

За полгода мы сделали сложное приложение с потенциалом для развития. Вместе с командой банка настроили внутренние процессы и реализовали практически весь доступный в backend банка функционала, и мобильное приложение по возможностям уже обгоняет веб-версию. Через пот и боль мы выстроили систему по стандартам индустрии и выпустили релиз с функционалом, который не исчерпывается MVP.