W banku duży nacisk kładziemy na testowanie. Historia Piotra Józwiaka
Zaprosiliśmy Piotra Józwiaka, Chapter Leadera w Centrum Technologii Cyfrowych Commerzbanku w Polsce, by opowiedział nam o prawdach i mitach pracy w branży bankowej. Jednym z zadań Centrum jest proces digitalizacji instytucji finansowych tak, by odeszły od papierowej komunikacji. Jak digitalizuje się bank? Dla kogo bank to idealne miejsce? Jak od środka wygląda praca w Commerzbank? Tego dowiecie się z tej rozmowy.
Spis treści
Jak i dlaczego zostałeś programistą?
Stało się to bardzo dawno temu. Pierwszy kurs programowania – wtedy jeszcze TurboPascala – zaliczyłem mając 12 lat. Od tamtego czasu zaczęło mnie to pasjonować i cały mój świat zaczął kręcić się wokół komputerów. Programowanie było we mnie od małego chłopca. Dostałem pierwszego peceta w ‘95 roku i zacząłem wtedy kombinować, do czego więcej można go wykorzystać, niż tylko do grania. Wtedy najprościej było nauczyć się Turbo Pascala, więc rodzice zapisali mnie na kurs. I tak to się zaczęło.
Jak wyglądał ten kurs programowania?
Zajęcia odbywały się w szkole, dwa razy w tygodniu po kilka godzin. Prowadziła je programistka, która na przykładach pokazywała, z jakimi problemami spotyka się na co dzień. To był 90. któryś rok, więc całe IT w Polsce rosło. Kurs wspominam bardzo dobrze, od niego się zaczęło, później była szkoła średnia, profil informatyczny, gdzie też mieliśmy dużo informatyki z elementami programowania. No i studia, naturalny wybór. W tamtych czasach wszyscy wiedzieli, że i tak pójdę na informatykę.
Jak znalazłeś pierwszą pracę?
Aplikowałem przez najpopularniejszy wówczas portal pracy i poszedłem na rozmowę. Od razu dostałem pracę. Nie była to firma IT, tylko firma odzieżowa z działem IT. Bardzo prężnym, było dość dużo programistów, ponieważ stawiała na posiadanie własnego działu IT, rozbudowanego, z różnymi kompetencjami i stroniła usług outsourcingowych. Jedynie przy jakichś dużych, typowych projektach, których nie było w stanie robić kilka osób. Kupowali wtedy gotowe rozwiązania, ale reszta powstawała szyta na miarę w dwóch pokojach.
Na wstępnym etapie szukania pracy zwracałeś uwagę na to, co będziesz robił, czy po prostu chciałeś się gdzieś zaczepić, żeby zobaczyć, jak praca programisty wygląda od środka?
Podczas rozmowy rekrutacyjnej z kierownikiem, przedstawił mi, że są w trakcie wdrażania nowego systemu ERP. Było wiele elementów związanych z bazami danych. Bardzo mnie to zafascynowało. Był to nawet dla mnie argument przekonujący, żeby rozpocząć tam pracę i wziąć udział właśnie w tym projekcie. Zobaczyć jak wygląda. Wdrożenie tego procesu robi się w firmie raz na kilka, kilkanaście lat. Tutaj miałem to szczęście i udało się.
Dlaczego zrezygnowałeś z pracy w tej firmie?
Skończyliśmy wdrażać ten system ERP, a praca przerodziła się w utrzymanie. A że programiści lubią rozwój, to na niego postawiłem i przeszedłem do innej firmy. Trafiłem do software house’u, mieliśmy większy budżet na nowy sprzęt i na szkolenia. Jeżeli pracujesz w dziale IT, to zawsze trudniej namówić pracodawcę na inwestycję w ten sektor, bo zawsze jest to koszt. A jeżeli pracujesz w software housie, to dużo łatwiej dostać się na szkolenia i inaczej to wygląda z perspektywy budżetu.
Szybciej też uczysz się wszystkiego, jest dużo więcej nowych technologii, a poza tym pracujesz w większym, dynamiczniejszym środowisku. Spotyka się dużo więcej programistów, co pozwala na szerszy punkt widzenia, na większą dyskusję i analizę, a co za tym idzie, wybierania najlepszych opcji. Moim zdaniem to bardzo dobre miejsce na rozwinięcie swojej kariery w IT
Później trafiłeś do Commerz System, czyli do dzisiejszego Commerzbanku?
To bardziej skomplikowane. Najpierw trafiłem do firmy outsourcingowej – spółki zależnej od Commerzbanku – powstał w niej dział IT, który miał wspierać stronę niemiecką w produkcji oprogramowania. Następnie przekształciliśmy się w Commerz Systems i trafiliśmy do części odpowiedzialnej za programowanie. Później z Commerz Systems do Commerzbanku.
Czym różni się praca seniora w software housie od pracy seniora w branży bankowej? Najlepiej na konkretnym przykładzie.
W software housie wszystko dzieje się dużo szybciej, dużo bardziej dynamiczniej. Tutaj się żyje spokojniej, ale dokładniej. Deadline’y oczywiście obowiązują, są równie istotne jak w każdej innej firmie. Commerzbanku bardzo duży nacisk kładziemy na testowanie produktu. Nie spotkałem się w tej firmie, żeby wyszedł produkt na produkcje, nie testowany i nie zatwierdzony przez testerów.
Wydaje się to standardem…
W software housie dużo ważniejsze jest dowiezienie produktu na czas i rozpoczęcie następnego. Różni się to tym, że w Commerzbanku bardzo często dowozisz produkt i później za niego jesteś odpowiedzialny. W software housie bywa tak, że robimy projekt i jak go zrobimy to idzie do działu utrzymania i zajmujemy się kolejnymi. Tu jesteśmy bardziej pogrupowani nie po technologiach, tylko po działach, gdzie są odpowiedzialni ludzie za produkty. Ponosisz odpowiedzialność za to, co robisz od punktu A do punktu Z. Jeśli na początku zrobisz coś źle, to później będziesz musiał to poprawić.
Opowiedz o aplikacji stworzonej dla klienta, żeby pokazać czym rzeczywiście zajmuje się Commerzbank?
Mam kilka dobrych przykładów, klientów, którzy współpracowali z Commerzbankiem. Projekt trwał około pół roku, z czego do napisania kodu było parędziesiąt linijek, a reszta czasu poświęcono na testy. Produkt ten łączył się z kilkoma dodatkowymi produktami, które znajdują się w Commerzbanku. Do części wysyłał dane, od części pobierał. Trzeba było więc wszystkie interfejsy przetestować i zebrać ze sobą. Tutaj powstaje obraz tego, ile czasu trzeba poświęcić, żeby można było coś wypuścić na produkcję.
Klient ma pomysł na jakąś funkcjonalność czy aplikację, ale Wy także macie zapewne swoje zdanie na ten temat. Jak przedstawić klientowi swoje zdanie?
Dzisiaj kiedy stwierdzamy, że trzeba coś zmienić, dla dobra projektu, to implementujemy zmianę od razu i podczas wdrożenia, oddawania na desktop, przekazujemy tę informację do klienta z wyjaśnieniem, dlaczego poprawiliśmy ustalenia. Wcześniej informujemy go mailowo o tym, ale pełną wiadomość przekazujemy mu podczas pierwszych testów, prezentacji i wyjaśniamy czemu uważamy, że tak będzie lepiej.
Sam kontakt z klientem też jest ciekawy. Myślę, że mało osób zaczynających przygodę z programowaniem wie o tym, że będzie kontaktować się z klientem, prawda?
Tak, to raczej niespodziewany element tej pracy, ale takie spotkania uczą rozmowy z człowiekiem. Często są to rozmowy z osobami, które nie rozumieją sloganów IT. Trzeba więc mówić w sposób zrozumiały, czyli nie skrótami myślowymi programisty. Kiedy usiądzie pięć osób z biznesu i dwóch programistów, to też trzeba znaleźć ten wspólny język, żeby wszyscy się rozumieli.
Twoim zdaniem bank to dobre miejsce dla programisty?
Pracujemy na wielu różnych technologiach, więc każdy znajdzie dla siebie projekt, który będzie spełniać oczekiwania oraz technologie. Mamy przekrój technologii od Javy przez C#, Pythona, bazy danych, SQL-e, Oracle, więc przekrój jest tutaj bardzo szeroki. Dużą wartością tej pracy są nowe wyzwania. W Commerzbanku sami możemy wpływać na kształt aplikacji, która powstaje, ponieważ poza samą specyfikacja czy wymaganiami klienta, my jesteśmy za nią bardziej odpowiedzialni niż w software housie. Z drugiej strony, dzięki temu mamy więcej możliwości co do ingerowania i kształtowania tego programu niż w innych firmach.
Jakie umiejętności miękkie potrzebne są każdemu programiście pracującymi w branży bankowej?
Umiejętność, a może raczej chęć poznawania nowych ludzi oraz komunikatywność.
Komunikatywność – to niby takie zrozumiałe słowo. Jak Ty rozumiesz je w kontekście pracy w banku?
W software housie mamy najczęściej eksperta od biznesu czy analityka, który głównie rozmawia z klientem. Ci ludzie, kiedy klient przychodzi do nas zamówić aplikację, opracowują jej projekt, a programiści dostają dokumentację i zaczynają kodować. W Commerzbanku bardzo ważna jest komunikatywność. Może zdarzyć się tak, że aplikacja nie działa komuś z biznesu i zadzwoni bezpośrednio do ciebie, czy możesz sprawdzić, dlaczego dzieje się tak, a nie inaczej.
Myślę, że wielu czytelnikom Commerzbank będzie kojarzyć się z korporacją niż z taką, powiedzmy, dynamiczną firmą.
Faktem jest, że każda zmiana musi być zaakceptowana. Ale decyzji o tym, że trzeba coś poprawić, nie trzeba mieć popartej pięćdziesięcioma approve’ami. Jeśli coś nie działa, mamy być zwinni i rozwiązywać problemy. Dlatego stawiamy duży nacisk na tę otwartość i komunikatywność.
Możesz opowiedzieć o jednym z takich ciekawszych projektów, który robiłeś w Commerzbanku?
Pracuję w nim teraz, a produkt odpowiada za analizę operacji stanu konta dla klientów korporacyjnych i małych przedsiębiorstw. Pokazuje, co się działo w ostatnim czasie na koncie plus prognoza przychodów i rozchodów na następne trzy miesiące. Tak, żebyś widział na podstawie danych historycznych, jak według nas będzie wyglądać stan Twojego konta. I to jest ciekawe z powodów programistycznych, ponieważ używamy różnych technologii, Reacta, .Net czy Azure.
Ta funkcja jest bardziej przydatna klientowi czy bankowi?
Z tego co się orientuję, to klienci często używają takich narzędzi do analiz. Te same funkcjonalności znajdziemy w innych bankach i sam jednej z nich używam. Sprawdzasz na wykresie, na co wydałeś środki, jak kształtowały się przychody i rozchody w przeciągu ostatnich kilku miesięcy.
Jak wygląda tworzenie takiej funkcjionalności od środka? Korzystacie ze wzorca z innych banków czy wymyślacie funkcje na nowo?
Ta akurat powstała na nowo. Nawiązaliśmy ścisłą współpracę z mBankiem, więc było to podyktowane wymianą doświadczeń. Cała infrastruktura, od strony programistycznej, to niezależna funkcjonalność, która powstała od zera w naszym banku.
Jak digitalizuje się bank? Jak rozumiem, to jedno z zadań Commerzbanku.
Od kiedy przeszliśmy do Commerzbanku, rozpocząłem pracę od dość dużego projektu nazwanego digitalizacją banku. Teraz jedną z głównych strategii jest kontynuacja i pogłębianie jej. Od prostych rzeczy jak odchodzenie od form papierowych po elektroniczne, ponieważ jeszcze duża część procesów w banku odbywa się w formie papierowej. Duży nacisk stawiamy na najnowsze technologie, na budowanie nowych produktów tak, aby klienci byli zadowoleni i mogli załatwić wiele spraw, nie wychodząc z domu.
Ile czasu poświęcacie na testowanie swoich produktów?
Wszystko zależy od złożoności produktu, ale jest to dość znacząca część czasu podczas pisania produktu, poświęcona na testowanie od testów jednostkowych przez testy automatyczne. Każda funkcjonalność musi zostać gruntownie i bardzo szczegółowo przetestowana, tak aby na produkcji nie pojawiły się bugi i stawiamy duży nacisk na to.
Tym zajmują się bezpośrednio testerzy czy też sami programiści?
Jeśli mówimy o testach jednostkowych, to musi to napisać programista, ale niektóre projekty mają również działy testerów, którzy są odpowiedzialni za przygotowanie testów automatycznych. Od programisty przez dział testów plus departament testów, ale również product owner, czyli ta osoba, która zlecała pewną modyfikację też przetestuje, sprawdzi czy to jest to, o co jej chodziło.
Ilu w Commerzbanku pracuje seniorów, midów i juniorów? Pytam tylko o polski oddział.
Zespół składa się od juniorów po ekspertów. Każdy w naszej organizacji jest potrzebny, mamy wielu juniorów, trochę więcej regularów oraz seniorów. O proporcjach nie opowiem dokładnie, bo musiałbym się zapytać dział HRu.
Pytam bo mam wrażenie, że są dwie szkoły, czyli są takie firmy, które w ogóle nie zatrudniają juniorów, ale są też takie, które nie widzą w tym żadnego problemu.
Nie ma z tym problemu u nas. Zatrudniamy bezpośrednio po studiach, ale także w trakcie studiów, bo to kwestia indywidualna.
Branża bankowa kojarzy się z kwestiami bezpieczeństwa, poufnością itd., przez co powstaje wrażenie, że taka firma jest… sztywna. Z tego co mówisz, wydaje się, że organizacja nie różni się praktycznie od innej firmy.
Jesteśmy otwartą firmą i chcemy, żeby było to dobre miejsce do pracy. Kwestie bezpieczeństwa są, czasem coś trwa ciut dłużej ze względu na sprawdzenie wszystkich zależności i wymagań, ale wiele rzeczy da się tutaj zorganizować.
To porozmawiajmy o twoich wrażeniach dot. branży bankowości. Rzeczywiście, jeśli chodzi zasady bezpieczeństwa, poufności danych, jest inaczej niż w innych firmach?
Największy szok przeżywają osoby, które przychodzą z firm IT i zaczynając pracę nie mają uprawnień na lokalnym komputerze. Najczęściej właśnie w software house’ach, gdzie produkuje się oprogramowanie, to developerzy mają uprawnienia administratora, aby mogli swobodnie modyfikowac konfigurację systemu. Tutaj tego nie ma, bez wyjątku. Trzeba było przestawić się na sposób pracy, wszystko robi się na serwerach niż lokalnie. Inaczej wygląda skonfigurowanie środowiska developerskiego, ale każda firma organizuje to inaczej.
Są plusy i minusy tego podejścia.
Plusy są takie, iż trudniej stracić dane, więc chodzi w dużej mierze o względy bezpieczeństwa. Odpada przypadek zgubienia czy uszkodzenie laptopa. Dzięki temu na pewno lepiej zorganizowane są kwestie kopii zapasowych.
Jak myślisz, jaka będzie przyszłość bankowości?
Moim zdaniem nadal będziemy rozwijać wszystkie technologie, interfejsy dla użytkowników, dla klientów, tak, aby jak najrzadsze było pojawianie się w banku osobiście. Rozwiną się strony mobilne, aplikacje oraz “klasyczne” strony z dostępem do banku. Ponieważ bank, poza samymi młodymi osobami również obsługuje cały przedział wiekowy. U mnie wszyscy chcą używać telefonów, ale myślę, że to jeszcze przez najbliższe kilkanaście lat będą potrzebne strony klasyczne.
Nie pójdziemy stricte w same mobile, chociaż dla wielu osób jest to najwygodniejszy i najszybszy sposób, włącznie z płaceniem telefonem. Świetnym przykładem jest też Blik, który bez telefonu nie istnieje. Myślę, że to będzie się nadal rozwijało, patrząc na to, jak został gorąco przyjęty na rynku. Będziemy szli w kierunku mocnego rozwoju mobilnych aplikacji, mobilnych możliwości na naszych telefonach.
Piotr Józwiak. Chapter Lead w Commerzbank. Programista od wczesnych lat młodzieńczych. Fan technologii Microsoftu oraz webowych. Od trzech lat pracuje dla Commerzbanku, obecnie na stanowisku Chapter Lead. Wraz z zespołem rozwija produkty w obszarze Digital Banking.