Nie taki bank straszny, jak go malują. Prawdy i mity o pracy w branży bankowej

Nowoczesne rozwiązania czy stare technologie? Dużo wyzwań i zwinne metody pracy czy powtarzające się zadania i przerośnięta biurokracja? Panuje powszechne przekonanie, że do pracy w IT w dużym banku pasują tylko te wymienione negatywne określenia. Na ile to prawda, a na ile stereotyp? Pokażemy to w tym artykule. 

Zgodnie z powiedzeniem, że kto się nie rozwija, ten się cofa, deweloperzy i administratorzy oczekują wyzwań, których według wielu nie znajdą w świecie finansów. Z drugiej strony, bajką byłoby twierdzenie, że w banku spotkasz tylko technologiczne nowinki. Czy to jednak znaczy, że ambitny specjalista nie ma tam czego szukać? Czy też wyzwania znajdzie w zupełnie innym miejscu? 

W bankowości mainframe wiecznie żywy

Musimy pamiętać, że w tak zwanych Państwach Zachodu procesy cyfryzacji banków zaczęły się już w latach 60., 70. ubiegłego wieku, czyli w czasach mainframe’a. Zgromadzone w nich dane wykorzystywane są do dzisiaj, bo dotyczą chociażby tych samych klientów banku. Stąd też niektóre z tych systemów ciągle są w użyciu. Nie znam instytucji, która zrezygnowała w całości z mainframe, przeniosła wszystko i zmieniła całą technologię, bo taka decyzja wiązałaby się z są ogromnymi kosztami – przyznaje Marek Gajowniczek, Head of IT Poland w oddziale Commerzbanku w Polsce, jednego z czołowych europejskich banków z siedzibą w Niemczech. 

Utrzymywanie mainframe jest niemałym wyzwaniem w banku. Do tego przez kilkadziesiąt lat istnienia tworzono kolejne systemy, wykorzystujące kolejne technologie, kolejne języki programowania, które z dzisiejszej perspektywy są przestarzałe, ale nadal działają. 

Te technologie są zwykle nieznane polskim programistom, dlatego uważają je za nudne, bo stare. Tymczasem nie są nudne, tylko inne i wymagają zupełnie innego podejścia, niż przy tworzeniu czegoś od zera – uważa Krzysztof Szydłowski, Chapter Lead w obszarze zajmującym się Customer Data Management.

Tym samym różnorodność technologiczna i mnogość środowisk to codzienność pracy w banku.

Klienci banku oczekują, że będą mogli połączyć się ze swoim kontem z każdego miejsca na świecie, w tym coraz częściej także na komórce, wykonać niemal każdą operację, a interfejs ma być intuicyjny i przyjazny dla oka. Zachowanie kompatybilności między wieloma systemami, do tego sprzed kilkudziesięciu lat z chociażby aplikacją na Androida, to ogromne wyzwanie – wyjaśnia Piotr Józwiak, Software Engineer związany w Commerzbanku z obszarem Digital Banking.

Od IBM DB2 po machine learning

Trudno uniknąć zatem styczności ze starszymi technologiami, gdy pracuje się dla dużego, międzynarodowego banku. Nierzadko trzeba zagłębić się w logikę domenową, szczegółowo przeanalizować, by zrozumieć, dlaczego system był zaprojektowany w taki, a nie inny sposób. Pomocy ze strony architekta próżno szukać, bo często jest już na emeryturze. To wyzwanie zarówno dla administratora aplikacji, gdy szybko musi naprawić awarię, ale także dla dewelopera, który poprawiając niedociągnięcia musi zachować kompatybilność systemu z innymi.

Takich obszarów wykorzystujących stare technologie jest dużo. Z drugiej strony wcale też nie jest rzadkością, że wdrażamy najnowsze rozwiązania, jak chociażby machine learning, rozwiązania chmurowe czy oparte o blockchain – przyznaje Krzysztof Szydłowski.

Kilka tygodni temu, na początku sierpnia br. Commerzbank ogłosił na przykład, że przetestował nowy system płatności machine-to-machine (M2M) oparty na technologii blockchain. Operacja polegała na w pełni automatycznym rozliczaniu płatności między elektronicznym punktem ładowania a systemem ciężarówek Daimlera. Na potrzeby tej transakcji Commerzbank stokenizował jednostki euro, które umieszczono na blockchainie w celu przetworzenia płatności. 

Pilotaż z powodzeniem pokazał, że zarówno pobieranie opłat, jak i kolejne procesy płatności mogą być wykonywane w pełni automatycznie i bez ingerencji człowieka. Przy tej okazji Stephan Mueller, jeden z dyrektorów odpowiedzialnych za IT podkreślił, że po przeprowadzeniu całkowicie zdigitalizowanych transakcji na papierach wartościowych w poprzednich projektach pilotażowych, skupiono się teraz właśnie na strukturach płatności opartych na DLT. 

Równie gorącym tematem w bankowości jest obszar Big Data. 

Wdrażamy obecnie projekt, w ramach którego będziemy tworzyć repozytorium baz danych, w których gromadzone będą absolutnie wszystkie dane potrzebne do raportowania. Wykorzystujemy do tego Hadoopa z elementami machine learningu – zdradza Piotr Bogucki, Chapter Lead w obszarze Big Data Technology and Innovation.

Myśląc o Big Data należy pamiętać, że banki tej wielkości co Commerzbank, obsługują dziesiątki milionów klientów na całym świecie, więc gromadzą niewyobrażalne ilości danych z każdą minutą, 24 godziny na dobę. Systemy muszą być więc tak zaprojektowane, by móc szybko i efektywnie przetworzyć ogromne wolumeny danych, stąd wykorzystywane są też zagadnienia distributed computing. 

Kiedyś banki miały jedną ofertę pożyczki dla wszystkich. Potem zaczęto dzielić klientów na grupy, a dzisiaj, dzięki wprowadzaniu nowoczesnych technologii, można będzie przedstawić klientowi zindywidualizowaną ofertę, na podstawie indywidualnego profilu ryzyka i historii transakcji, a wszystko niemalże w czasie rzeczywistym. By tak się stało nie wystarczą nowoczesne technologie, ale przede wszystkim znajomość, jakie algorytmy zastosować i w jaki sposób je zakodować, by same się uczyły – mówi Marek Gajowniczek.

Lepsze jest wrogiem dobrego

Naszym zdaniem znacznie ważniejsze od nowinek technologicznych jest to, by technologia była sprawdzona.

Mamy ustalony stos technologiczny, dobrze rozpoznany i choć nie są to najnowsze technologie, to jego zmiana nie jest priorytetem. Oczywiście rozwijamy go, ale ważniejsze jest zrozumienie algorytmów. Czy to będzie najnowsza Java, czy C++, to język jest tylko narzędziem, które trzeba umieć użyć w odpowiedni sposób, by zadziałał algorytm – uważa Paweł Skalczyńki, Technical Leader pracujący nad silnikami decyzyjnymi.    

Nowinki technologiczne mają to do siebie, że wymagają częstych poprawek i aktualizacji, a w banku nie ma miejsca na niedociągnięcia i pomyłki.

Gdy zawiesi nam się aplikacja licząca kroki, to w najgorszym wypadku ją zrestartujemy i stracimy informację, ile kroków dotychczas przeszliśmy. W przypadku banku taka awaria aplikacji może skutkować realną stratą środków na koncie – dodaje Marek Gajowniczek.

Trudno wyobrazić sobie tym samym, by proces produkcji trwał kilka tygodni, jak w przypadku chociażby aplikacji rozrywkowych. Nikt nie wypuści do użytku systemu, który nie przeszedł testów bezpieczeństwa i wydajnościowych w różnych środowiskach. To wszystko trwa, a każdy potencjalny wyłom w aplikacji cofa ją do dewelopera. 

Sprawdzone i przetestowane w wielu środowiskach technologie, które gwarantują jakość, jakość i jeszcze raz jakość to najważniejsze, czym kierują się banki. Dlatego są zwykle do tyłu za nowościami opisywanymi na blogach, bo zanim w nowej technologii zostaną wyeliminowane niedociągnięcia, zwykle mija kilka lat– stwierdza Piotr Józwiak.

Oczywiście rodzi to nierzadko problemy dla samych pracowników IT.

W jednym z projektów potrzebowaliśmy dostępu do bibliotek Pythona, które nie były wcześniej zatwierdzone do wykorzystania. Straciliśmy bardzo dużo czasu, zanim je dostaliśmy – przyznaje Piotr Bogucki.

By zrozumieć takie podejście wystarczy jednak spojrzeć na bank z perspektywy klienta, którym jest każdy z nas.

Nie wszystko w IT musi być sexy, najnowsze i błyszczeć. Od swojego banku oczekujemy, żeby działał i bezpiecznie przechowywał nasze pieniądze, a to gwarantują sprawdzone technologie – zauważa Antoni Łęcki, Scrum Master w obszarze Customer Data Management.

Zmiany przemyślane i oczekiwane

Stawianie na pierwszym miejscu stabilności aplikacji przekłada się na jeszcze jeden istotny element pracy w bankowym IT. 

Poznawanie wielu systemów to nauka na lata. Dopiero z czasem zdobywa się bowiem wiedzę nie tylko o obsługiwanej akurat aplikacji, ale też jak wprowadzane w niej zmiany będą skutkowały na inne systemy – mówi Marek Gajowniczek, Head of IT Poland

Nawet drobna modyfikacja, jak dodanie punktu do formularza osobowego, może wpływać na dziesiątki innych aplikacji – od takich, które przetwarzają dokumenty z wersji papierowej na cyfrową, poprzez te zajmujące się ochroną danych osobowych, a kończąc na aplikacjach analizujących potrzeby klienta czy raportujących do instytucji nadzorujących banki. Nie każdy kandydat odnajdzie się w takim środowisku.

W software house jest miejsce, by popróbować, sparzyć się na jakiejś technologii. W bankowości praca jest raczej dla tych, którzy mają już jasność, w jakim kierunku chcieliby się rozwijać, które obszary najbardziej ich interesują – uważa Piotr Józwiak, Software Engineer.

Wszystko po to, by stać się ekspertem, będącym w stanie zaproponować stabilne rozwiązanie.

Bezpośrednio rozmawiamy z naszymi klientami, którzy zgłaszają zapotrzebowanie na nowe funkcjonalności używanych aplikacji. To dla nich musimy być ekspertami, bo od nas zależy, jak dana funkcjonalność będzie zaimplementowana. Musimy więc rozumieć nie tylko mały wycinek swojej pracy w IT, ale też szerzej spojrzeć na problem z punktu widzenia innych systemów i możliwości. Zakres odpowiedzialności jest zatem znacznie większy, bo to my dobieramy komponenty, jakich bibliotek potrzebujemy, to my odpowiadamy za design rozwiązania – dodaje Paweł Skalczyński, Technical Leader.

Jak w każdej dużej organizacji wyzwania i ich ilość zależą na końcu od tego, do jakiego projektu się trafi, ale taka specyfika pracy potrafi mieć swoje niezaprzeczalne plusy.

Z racji, że po jednej i po drugiej stronie siedzą osoby, które będą następnie pracowały z tymi aplikacjami, wszelkie wprowadzane zmiany wynikają naprawdę z tego, że są potrzebne, a nie dlatego, by wprowadzić coś nowego. Na dodatek ma się świadomość, że korzysta z nich potem kilkadziesiąt milionów ludzi. To daje satysfakcję, że robimy coś użytecznego, a nie sztukę dla sztuki– podsumowuje Antoni Łęcki, Scrum Master.


Zdjęcie główne artykułu pochodzi z unsplash.com.

Zapraszamy do dyskusji

Patronujemy

 
 
Polecamy
Jak rozwijać się tak, by czuć się spełnionym? Rozwój programisty