22 czerwca miało miejsce wydarzenie “Flutter Warsaw #17: Flutter in Banking”. Podczas eventu, został przedstawiony zrealizowany projekt nowej aplikacji mobilnej “CA24 Mobile – pełna korzyści” Credit Agricole Bank Polska. Flutter Warsaw to społeczność IT skupiona wokół nowoczesnej technologii Flutter. Jest to jeden z największych tzw. meetupów dedykowanych Flutterowi w Europie, który został zapoczątkowany przez LeanCode w 2018 roku.
Łukasz Kosman to z kolei współzałożyciel i CEO LeanCode (software house z Warszawy), jak również wykładowca Service Design na studiach MBA Politechniki Warszawskiej. Od ponad 6 lat wspiera startupy w rozwoju ich produktów. Miłośnik technologii – w szczególności Fluttera – oraz dobrego UX designu. To właśnie one w połączeniu z dobrze napisanym kodem tworzą aplikacje mobilne przyjazne użytkownikom. W trakcie wydarzenia rozmawialiśmy z Łukaszem m.in. na temat nowoczesnych technologii w bankowości.
Redakcja: Jakie znaczenie dzisiaj dla bankowości mają aplikacje mobilne?
Łukasz Kosman: Dobry interfejs dla użytkownika może być czynnikiem sukcesu na szerokim rynku. Po pandemii klienci są coraz mniej chętni do wizyt w placówkach. Aplikacje muszą więc oferować możliwość realizacji ogromnej liczby zadań w telefonie, bez konieczności kontaktu bezpośredniego z bankiem.
Dlatego oczekiwania co do aplikcji mobilnych rosną każdego dnia. Zakładanie konta zdalnie poprzez skan dowodu stało się powszechnym standardem, podobnie jak autoryzacja z wykorzystaniem biometrii. Nikogo już niezaskoczy możliwość uruchomienia kredytu, czy założenia lokaty bezpośrednio w aplikacji, wręcz przeciwnie.
Brak tych rozwiązań może być decydujący dla odejścia klienta i decyzji o przeniesieniu swoich finansów do innego, bardziej nowoczesnego banku. Stąd tak ważny jest ciągły rozwój i udoskonalanie aplikacji, a do tego potrzebna jest stabilna platforma, na której są one wykonane.
Redakcja: Dlaczego Flutter został wybrany do stworzenia “CA24 Mobile”?
Ł.K.: Bank Credit Agricole wyznaczył przed sobą niezwykle ambitne cele biznesowe. W krótkim czasie chce zdobyć bardzo silną pozycję rynkową i w swoich analizach zauważył, że jednym z kluczowych czynników sukcesu jest nowa aplikacja do bankowości mobilnej.
Ponieważ zakres projektu był od początku bardzo rozbudowany, nie było możliwym szybkie dostarczenie nowej aplikacji opartej o niezależny development. Stąd też, Zespół CABP rozpoczął analizę cross-platformowych rozwiązań, czyli bibliotek, które umożliwiają tworzenie z jednego kodu aplikacji jednocześnie dla urządzeń z iOS i Android. Dzięki takiemu podejściu na listę potencjalnych technologii trafił Flutter.
Ostatecznie na korzyść Fluttera przeważyła łatwość budowy interfejsów, które zachwycają użytkownika. Wykorzystany w projekcie Design System jest naprawdę pięknie zaprojektowany, a Flutter umożliwił jego wydajne wdrożenie. W momencie podejmowania decyzji znane nam już też były przypadki banków z Brazylii (Nubank) oraz Polski (ING dla klientów korporacyjnych). To były dodatkowe czynniki, które uzasadniły ten wybór.
Redakcja: Jakie funkcje aplikacji w branży bankowości to tzw. „must-have”?
Ł.K.: W ostatnim raporcie Digital Banking Maturity 2020 przytoczono dane, że pandemia zmieniła bankowość i przyspieszyła rozwój kanałów cyfrowych. Z jednej strony 60% banków zamknęło lub skróciło godziny otwarcia swoich oddziałów. Z drugiej jednak, te same instytucje wdrożyły nowe cyfrowe funkcjonalności. Mowa tutaj o takich rozwiązaniach jak chociażby w pełni zdalne otwarcie konta (34% banków), zdalna identyfikacja i weryfikacja (23%) oraz płatności zbliżeniowe (18%).
Tak naprawdę trudno określić listę must-have funkcji w bankowych aplikacjach mobilnych. Wynika to z tego, że ciągle zmienia się zachowanie, ale także potrzeby użytkowników. Właśnie dlatego taka lista powinna być stale rozwijana. Oprócz powyżej wymienionych funkcjonalności, jako standard dla nowoczesnych aplikacji bankowych, możnaby jeszcze wymienić otwieranie kont w innej walucie, zarządzanie swoimi finansami, doradztwo wirtualne i wszelkiego rodzaju chatboty.
Coraz większą rolę w propozycji wartości dla klientów będą odgrywać rónież usługi beyond banking. Chodzi tutaj m.in. o opłacanie biletów parkingowych czy przejazdów autostradą, rejestracje firmy, a nawet ubieganie się o świadczenia socjalne czy kredyty wyłącznie online.
Credit Agricole zaproponował swoim klientom np. “Klub korzyści”. Mogą oni korzystać ze specjalnych ofert polskich i światowych marek, a propozycje te są dopasowywane indywidualnie do każdego klienta. Użytkownik widzi je na ekranie głównym aplikacji poprzez animację, którą bank nazwał rzeką korzyści.
Redakcja: Jakie wyzwania stoją przed twórcami projektów o tak dużej skali?
Ł.K.: Przede wszystkim warto zauważyć co rozumiemy jako dużą skalę, ponieważ jest wiele miar i punktów odniesienia. W projekt budowy aplikacji dla Credit Agricole było zaangażowanych ponad 200 osób z banku oraz kilku zewnętrznych dostawców. Ta skala robi wrażenie.
Dodatkowo sam zespół Flutter liczył średnio 25 osób, z czego 14 Flutter Developerów było dostarczonych przez LeanCode. Organizacja takiego zespołu, tak aby programiści nie wchodzili sobie w drogę i praca przebiegała wydajnie, jest nie lada wyzwaniem. Dlatego zastosowaliśmy kilka reguł, które diametralnie usprawniły proces tworzenia oprogramowania.
Przede wszystkim wprowadzono bardzo silne pojęcie odpowiedzialności za kod. Każdy z 12 squadów biznesowych był odpowiedzialny za swoją część oprogramowania i jej integrakcje z innymi częściami systemu. Po drugie, wprowadzony został zespół odpowiedzialny za ogólną architekturę, części wspólne kodu oraz integracje z zewnętrznymi bibliotekami.
Po trzecie, z perspektywy budowy interfejsu użytkownika, czyli głównej siły Fluttera został wprowadzony squad odpowiedzialny za Design System. Zespół dbał o to, aby wszystkie elementy widoczne dla użytkownika były ze sobą spójne. Zależało nam na tym aby ich zachowanie było identyczne na każdym ekranie. Istotna była również możliwość dostosowania wyglądu interfejsu w zakresie np. wielkości czcionek lub zmieniać tryb na jasny lub ciemny.
Wszystkie te dobre praktyki oraz wiele innych elementów służących optymalizacji procesu budowy tak dużej aplikacji mobilnej we Flutterze zostały podsumowane w formie ebooka “Building Mobile Banking Apps with Flutter”, na którego już teraz można się zapisać.
Redakcja: Z jakich startupowych praktyk, korporacje korzystają podczas tworzenia nowych produktów – aplikacji mobilnych?
Ł.K.: Zespół Credit Agricole doskonale zauważył, że do budowy tak zaawansowanej aplikacji mobilnej potrzebna jest odpowiednia struktura zespołu. Stąd zamiast realizować projekt w kaskadowych technikach, podjęto decyzję o wykorzystaniu startupowego podejścia znanego z metodyk Agile, w szczególności Scrum. To zwinne podejście pozwoliło zachować elastyczność i szybko reagować na zmieniające się wymagania.
Dzięki niemu udało się w bardzo krótkim czasie uruchomić tzw. fazę Friends&Family, czyli wydanie aplikacji adresowane do wąskiego grona użytkowników, którzy przez fazą masowej dystrybucji za pośrednictwem AppStore i Google Play będą w stanie wysyłać pierwsze komentarze. Zwinne podejście umożliwiło szybki i bardzo udany debiut aplikacji na rynku już po roku od startu jej budowy. Biorąc pod uwagę zakres i poziom skomplikowana regulowanego środowiska finansowego należy uznać za ogromny sukces.