BOS jako główny system back-office dla aplikacji obsługującej miliony transakcji miesięcznie

Nasz klient to jeden z dynamicznie rozwijających się europejskich fintechów, który oferuje aplikację do obsługi płatności wraz z wirtualną kartą płatniczą. W ramach aplikacji, nasz klient dostarcza m.in. wymianę walut na atrakcyjnych warunkach, wielowalutowe karty płatnicze, ubezpieczenie na zakupy online, z gwarancją natychmiastowego zwrotu gotówki w przypadku zwrotu towaru, a także cashback za transakcje w partnerskich sieciach handlowych. W tym projekcie INCAT pełni rolę partnera technologicznego i dostawcy głównego systemu transakcyjnego.

Czym jest BOS?

BOS to kompleksowy system transakcyjny, oparty na architekturze mikroserwisów, dedykowany fintechom i nowoczesnym instytucjom finansowym, takim jak challenger banki, digital banki i neo-banki. BOS w architekturze instytucji finansowej pełni rolę centrum przetwarzania danych i transakcji klienta, dając jednocześnie możliwość wdrożenia produktów finansowych, atrakcyjnych z perspektywy klienta końcowego.

Nasz system umożliwia wdrożenie i uruchomienie warstwy back-endowej w aplikacji lub rozwiązaniu klienta, obejmującej moduły transakcyjne, płatnicze oraz konta, przy zachowaniu najwyższej zgodności z wymaganiami regulacyjnymi oraz cyberbezpieczeństwa.

Jakie były potrzeby klienta?

By móc zaoferować swoje rozwiązanie na rynku komercyjnym, klient potrzebował wysoko skalowalnego systemu transakcyjnego, który umożliwi szybki wzrost i sprosta błyskawicznie rosnącej liczbie transakcji oraz klientów aplikacji, bez przestojów i zgodnie z wymaganiami postawionymi przez ustawodawcę.

Poza powyższym, do wymagań klienta należało zaadresowanie wszystkich back-office’owych funkcjonalności, wymaganych dla prowadzenia rachunków swoich klientów i realizacji usług płatniczych, wraz z możliwością możliwie szybkiego rozwoju funkcjonalnego i produktowego.

Rola BOS-a

Funkcjonalności BOS-a adresują wszystkie wymagania biznesowe i techniczne klienta, a architektura mikroserwisów pozwala na wysoką elastyczność w zakresie rozwoju oferty finansowej. Nowoczesne moduły produktowe BOS-a wspierają tworzenie oferty klienta oraz budowanie przewagi biznesowej i marketingowej na komercyjnym rynku finansowym.

Największe wyzwanie wdrożenia

Największym wyzwaniem podczas pracy nad projektem okazał się szeroki zakres funkcjonalności, które należało wdrożyć, a także konieczność integracji z modułami zewnętrznymi w taki sposób, by kompleksowo agregować dane w obrębie Księgi Głównej. Udało nam się zaadresować te wymagania zgodnie z oczekiwaniami klienta, wykorzystując pełen potencjał systemu BOS oraz mnogość jego biznesowych i technologicznych możliwości.

Kluczowe obszary wsparcia biznesu klienta

  • Przetwarzanie danych klientów
  • Zarządzanie rachunkami
  • Procesowanie przelewów oraz płatności
  • Pełna funkcjonalność Księgi Głównej
  • Kaskada walutowa - moduł produktowy, umożliwiający sprawną wymianę walut i płatności w wielu walutach w obrębie aplikacji
  • Cashback - moduł umożliwiający uruchomienie programu partnerskiego, oferującego zwroty za zakupy dokonane w sklepach sieci partnerskiej.

Efekty

Dzięki wdrożeniu BOS-a klient uzyskał:

  • W pełni funkcjonalny moduł back-office aplikacji płatniczej
  • Sprostanie wysokim wymaganiom wydajnościowym na poziomie kilku milionów transakcji miesięcznie
  • Możliwość rozwoju produktowego w oparciu o architekturę mikroserwisów BOS-a
  • Moduł produktowy: cashback, kaskada walutowa
  • Pełną integrację z Księgą Główną
  • Zgodność systemu z wymaganiami regulacyjnymi oraz bezpieczeństwa

6 najdziwniejszych języków programowania w historii IT - subiektywny ranking INCAT

Ktoś, kto powiedział, że przy programowaniu nie ma zabawy, z pewnością nie wiedział co mówi. Autorzy poniższych języków programowania potrafili połączyć przyjemne z pożytecznym i na kanwie szalonych pomysłów, stworzyli kody źródłowe, których składnia nie ma nic wspólnego z klasycznymi językami programowania, a mimo tego, może być wykorzystywana przy tworzeniu programów, komend i poleceń. Przed Wami 6 wyjątkowych języków programowania, które brzmią  i wyglądają nieco niepoważnie, ale za to całkiem poważnie działają: 

LOLCODE

Weteranem spośród specyficznych języków programowania jest niewątpliwie LOLCODE, język programowania stworzony w 2007 roku przez Adama Lindseya. Inspiracją do powstania tego języka, był Lolcat - zabawa, popularna swego czasu na forach internetowych, takich jak np. 4chan, która polega na tworzeniu memów, zawierających obraz kota, z zabawnym podpisem oraz nieprawidłową składnią, wraz z celowymi błędami w zapisie poszczególnych słów. 

To właśnie nietypowy zapis treści memów stał się podstawą języka LOLCODE, bowiem komendy pisane są slangiem i jeśli jest on zrozumiały dla odbiorcy, wystarczy do odczytania składni LOLCODE. Poniżej przykład zapisu “Hello World” w LOLCODE:

HAI - “Hello”

CAN HAS STDIO? - Odpowiada za załadowanie bibliotek z dodatkowymi funkcjami

VISIBLE "HAI WORLD!" - Odpowiada za widoczność tekstu

KTHXBYE - Komenda kończąca każdy program

Co ciekawe, język LOLCODE nadaje się do powszechnego użycia, ze względu na swoją komplementarność. W sieci można także znaleźć sporo tutoriali, dedykowanych różnym elementom LOLCODE. 

ARNOLD C

ARNOLD C to język programowania inspirowany...prawdziwym bohaterem. Nazwa pochodzi od imienia odtwórcy głównej roli w kultowej już serii “Terminator”, Arnolda Schwarzeneggera, a składnia języka zawiera cytaty pochodzące wyłącznie z tych filmów. Zatem jeśli jesteś za pan brat z historią o żądnym krwi androidzie, powinieneś także bez problemu zrozumieć w jaki sposób koduje się “Hello World” w ARNOLD C:

IT'S SHOWTIME

TALK TO THE HAND "hello world"

YOU HAVE BEEN TERMINATED

Do tego przykładu chyba nie potrzeba tłumaczenia, prawda? A dla wszystkich chętnych, którzy jeszcze nie znają kultowych tekstów z Terminatora, polecamy zbiór tych najlepszych, oczywiście w ramach nauki nowej technologii i poszerzania horyzontów: https://www.radiotimes.com/movies/arnold-schwarzenegger-quotes/

WHITESPACE

Whitespace opiera się na znakach, które reprezentują niewidoczne odstępy na stronie, czyli na spacjach, tabulatorach, lub nowych wierszach. Każde inne polecenie, czy znak są ignorowane. Ale jak to właściwie działa? Whitespace korzysta z kodu binarnego do reprezentowania danych ze spacjami jako zerami i tabulatorami jako jedynkami. Tak więc na przykład sekwencja tab-tab-tab-space-space przekłada się na 1100 w systemie dwójkowym lub „12” w systemie dziesiętnym. Ze względu na swoją specyfikę, oraz fakt, że do stworzenia klasycznego “Hello World” w Whitespace konieczne jest użycie niemal 1000 niewidocznych znaków, język ten, sam w sobie nie jest zbyt użyteczny, stanowi raczej coś w rodzaju ciekawostki programistycznej. 

VELATO

VELATO to język programowania, który został napisany przy użyciu plików MIDI. Pliki dźwiękowe pełnią w tym przypadku zarówno rolę utworu muzycznego, jak i komend programistycznych. Kluczowe w przypadku tego zapisu są wysokości nut i wielkości odstępów między nimi. Zapis “Hello World” w języku VELATO wygląda tak:

Źródło: http://velato.net/Language/HelloWorld/

reMORSE

Jak już można zauważyć, twórcy specyficznych języków programowania zazwyczaj czerpią inspirację z już istniejących elementów kultury czy nauki. W tym przypadku nie jest inaczej - jak można wnioskować z nazwy, reMORSE jest oparty na założeniach języka Morse’a. Istnieją w nim tylko cztery komendy: kropka (.), Kropka (.I spacja), myślnik (-) i kreska (- i spacja). Specyfikacja reMORSE jest niepełna, ponieważ sam autor jej nie ukończył. 

Na przestrzeni lat powstały odmiany języka reMORSE w postaci: reMorse2, reMorse2.- i reMorse4ever, które miały za zadanie wypełnić luki w pierwotnej wersji tego języka, niestety żadna z nich nie jest postrzegana jako kompleksowy, gotowy do potencjalnego wykorzystania, kod. Poniżej, zapis “Hello World” w reMORSE:

- - - ..- ...-.---.;newline

- - - .-. - ..-.- ...-. ---.;!

- - - ...- . . -.---.;d

----. . . -.---.;l

----. . -...---.;r

----. -...---.;o

----...-.- ..-. ---.;W

//author didn't feel like doing this part

-..............;output all characters

SHAKESPEARE

SHAKESPEARE to język programowania, który ma za zadanie sprawiać wrażenie, że jest wszystkim, tylko nie kodem źródłowym. Dlatego też, na pierwszy rzut oka, SHAKESPEARE wydaje się wyłącznie sztuką dramatyczną, a to dlatego, że jest zbudowany wyłącznie z aktów, scen i postaci, czyli elementów, które zwyczajowo tworzą dramat. Brzmi jak szaleństwo? Zdecydowanie tak, ale w tym szaleństwie jest metoda. 

W języku SHAKESPEARE, bohaterowie przyjmują rolę zmiennych, z kolei ich wypowiedzi, traktowane są jako wyrażenia o zmiennych wartościach. Pytania, zadawane sobie wzajemne przez postaci, to instrukcje warunkowe, natomiast wartości określają przymiotniki i rzeczowniki. Poza ewidentnym odwróceniem konwencji, charakterystyczne w języku SHAKESPEARE jest to, iż programy w nim pisane są bardzo długie. Poniżej fragment “Hello World”: 

To tylko mała próbka najdziwniejszych instrukcji “Hello World” na świecie - w sieci możecie znaleźć ich dużo więcej, a my wybraliśmy te, naszym zdaniem, najciekawsze. Zważywszy na to, że branża IT rozwija się w zawrotnym tempie, na świecie istnieje około 7 000 języków programowania, a w czasie gdy czytasz ten artykuł, powstały pewnie już trzy lub cztery nowe javascriptowe frameworki, takie drobne, dowcipne odstępstwa od normy nie stanowią żadnej przeciwwagi dla “poważnego” programowania. My jednak uważamy, że są potrzebne, bo wskazują, jak można bawić się kodowaniem i tworzyć coś, co może i nie jest specjalnie użyteczne, za to odsłania tę żartobliwą i humorystyczną stronę branży IT, o której tyle się mówi, a zdecydowanie zbyt rzadko pokazuje.


Historia kobiet w IT - najważniejsze dokonania

Choć coraz częściej kobiety decydują się na pracę w IT, statystyki wciąż są nieubłagane. Według raportu fundacji Carrots kobiety w Polsce stanowią jedynie 30% branży IT i nie wygląda na to, by ta tendencja miała się szybko zmienić. A przecież to właśnie kobiety w dużej mierze położyły podwaliny pod aktualny kształt technologii i dokonały odkryć, które do dziś wpływają na świat IT. Dlatego przygotowaliśmy zestawienie kobiet, które miały niebagatelny wpływ na rozwój branży IT, a swoją historią inspirują i pokazują, że technologia nie jest wyłącznie męską domeną.

Kobiety w informatyce – najbardziej znane nazwiska i ich osiągnięcia

Informatyka to dyscyplina naukowa kojarząca się zapewne większości z nas jako jedna z tych, która w zasadzie od zawsze pozostaje zdominowana przez mężczyzn. W takim jej postrzeganiu nie ma nic dziwnego, ponieważ rzeczywiście tak jest, czego potwierdzeniem są cykliczne badania przeprowadzane zarówno w Polsce, jak i innych krajach. Kobiety w informatyce, choć stosunkowo nieliczne, w niektórych przypadkach odgrywają jednak bardzo istotne role. Nie brakuje wśród nich autorek oprogramowania, inżynierek czy twórczyń gier, choć popularność ich nazwisk na pewno pozostaje nieporównywalnie mniejsza niż Steve’a Jobsa lub Billa Gatesa. Chcąc to zmienić, postanowiliśmy dziś przypomnieć o najważniejszych – naszym zdaniem – paniach, które dzięki swoim dokonaniom zaistniały w świecie informatyki, wpływając w niektórych przypadkach w znaczny sposób na jej rozwój. Mamy jednocześnie nadzieję, że w wyniku tego za jakiś czas będziemy mogli ponownie przedstawić kolejne znane kobiety w IT i ich osiągnięcia, stanowiące potwierdzenie tezy, iż płeć nie ma dużego znaczenia, jeśli chodzi o zdolność do wykonywania skomplikowanych operacji z wykorzystaniem komputera i coraz bardziej zaawansowanych technologii. Jeżeli więc jesteś kobietą i dotąd zastanawiałaś się, czy związać swoją karierę oraz przyszłości z informatyką, mając ku temu predyspozycje, niżej przedstawione sylwetki powinny pozwolić Ci skutecznie rozwiać Twoje wątpliwości.

Kobiety odegrały istotną rolę w dziedzinie informatyki i technologii informatycznych, opracowując niektóre z najważniejszych elementów nowoczesnego IT. Do najważniejszych kobiet w historii technologii należą niewątpliwie:

Ada Lovelace - pionierka programowania

Urodzona w Londynie lady Ada Lovelace (1815–1852), choć była córką poety lorda George’a Byrona, miała pasję i dar do matematyki od najmłodszych lat. Jest uznawana za pierwszą na świecie programistkę komputerową, ponieważ opracowała sposób w jaki maszyna zwana silnikiem analitycznym może wykonywać obliczenia. Maszyna ta, wynaleziona przez jej przyjaciela, matematyka i wynalazcę Charlesa Babbage'a, jest uważana za pierwszy komputer uniwersalny. Lovelace stworzyła algorytm, który wkrótce został uznany za pierwszy na świecie program komputerowy, a jego wciąż są wykorzystywane przy tworzeniu dzisiejszych aplikacji.

Edith Clarke - pierwsza kobieta - inżynier

„Zawsze chciałam zostać inżynierem, ale uważałam, że kobiety nie powinny zajmować się takimi rzeczami, jak studia inżynierskie.” - twierdziła Edith Clarke i...mocno się pomyliła, bowiem kilkanaście lat po tej wypowiedzi została pierwszym w historii inżynierem elektrykiem płci żeńskiej na świecie.

Edith Clarke w wieku 18 lat otrzymała niewielki spadek, który pozwolił jej przejść przez Vassar College, wówczas siostrzaną instytucję Yale; ukończyła studia w 1908 roku. Wkrótce rozpoczęła pracę na pełen etat jako menedżer całkowicie żeńskiego zespołu „ludzkich komputerów” w AT&T.

Zdeterminowana, aby kontynuować swoją karierę, robiąc to, czego „kobiety nie powinny robić”, zapisała się następnie na MIT i została pierwszą kobietą tej instytucji, która uzyskała tytuł magistra elektrotechniki. Ale nawet z dotychczasowymi osiągnięciami, żadna firma technologiczna nie chciała jej zatrudnić w roli kobiety - inżyniera. W związku z tym Clarke opuściła Stany Zjednoczone, aby uczyć fizyki w Women's College w Stambule. Nie porzuciła jednak swojego marzenia o karierze inżyniera i po kilku latach wróciła do USA, by pracować dla General Electric, co pozwoliło jej na osiągnięcie upragnionego celu. W General Electric Clarke stworzyła i opatentowała The Clarke Calculator, graficzne urządzenie rozwiązujące równania używane do przesyłania energii elektrycznej liniami przesyłowymi dłuższymi niż 250 metrów. Jej ogromny wkład w międzykontynentalną komunikację telefoniczną uciszył sceptyków; w 1922 roku, mając 38 lat, Edith Clarke została pierwszym zawodowym inżynierem elektrykiem.

Kobiety ENIAC: pionierki komputerów

W 1946 roku, w przeddzień swojego debiutu, pierwszy na świecie komputer ogólnego przeznaczenia zawiódł. W związku z tym, do ratowania projektu oddelegowano siedem kobiet - inżynierów, które miały jedną noc, by naprawić urządzenie o nazwie ENIAC (Electronic Numerical Integrator And Computer), który był przodkiem dzisiejszych komputerów. Do grona tych kobiet należały:

  • Betty Jean Jennings Bartik
  • Kathleen McNulty
  • Mauchly Antonelli
  • Ruth Lichterman Teitelbaum
  • Frances Bilas Spence
  • Marlyn Wescoff Meltzer
  • Frances Snyder Holberton

System nie był ani mały, ani prosty, ważył 30 ton i zajmował 140 metrów kwadratowych. Był wyposażony w 18 000 lamp próżniowych, 70 000 rezystorów, 10 000 kondensatorów i 5 milionów ręcznie lutowanych złączy. Biorąc pod uwagę jego zdolności do obliczania trajektorii balistycznych, potrzeba, by działał, była wielka - Stany Zjednoczone pogrążone były wtedy głęboko w II wojnie światowej.

Niestety, choć projekt się powiódł, bohaterki ENIAC, przez dłuższy czas nie otrzymały należnego im uznania. Dopiero w 1997 roku zostały wprowadzone do Hall of Fame Women in Technology International (WITI). W 2014 roku Walter Isaacson w swojej książce “Innowatorzy” zestawił Siódemkę ENIAC z takimi postaciami jak Steve Jobs i Nikola Tesla, a parę lat temu ukazał się film dokumentalny zatytułowany „Projekt Eniac Programmers”, w którym szczegółowo opisano, w jaki sposób kobiety wymyśliły sposób programowania tej maszyny.

Grace Hooper - ekspertka od bugów

Amerykanka Grace Hopper (1906-1992) była admirałem w marynarce wojennej Stanów Zjednoczonych i jedną z pierwszych programistek kalkulatora mechatronicznego Mark 1, protoplasty dzisiejszych komputerów, wykorzystywanego podczas działań II wojny światowej. Stworzyła także 500-stronicowy podręcznik, w którym wyszczególniono podstawowe zasady działania maszyn komputerowych. Ale to nie koniec jej zasług dla branży IT.

Hopper wraz ze swym zespołem stworzyła pierwszy w historii kompilator komputerowy, który stał się prekursorem dla języka programowania COBOL (Common Business Oriented Language). Niedługo potem COBOL miał się okazać jednym z najczęściej używanych języków w świecie informatyki i choć dziś część ekspertów uważa go za przestarzały, wciąż się z niego korzysta.

Grace Hopper jako pierwsza wprowadziła określenie “bug”, dla błędów w kodzie. Wiąże się z tym anegdota, jakoby któregoś razu do wnętrza sprzętu, na którym pracowała Hooper wleciała ćma, która spowodowała zwarcie. Od tego momentu Hopper spopularyzowała określenie "komputerowy bug" (bug z angielskiego to robak), które odnosi się do błędu programu komputerowego.

Margaret Hamilton - programowanie dla NASA

Margaret Hamilton to amerykańska programistka, inżynier systemów i założycielka dwóch firm technologicznych, która przez lata projektowała systemy NASA. Była dyrektorem działu inżynierii oprogramowania w MIT Instrumentation Laboratory, który stworzył pokładowe oprogramowanie lotnicze, umożliwiające realizację misji Apollo Neila Armstronga i Buzza Aldrina. 22 listopada 2016 roku Hamilton otrzymała od prezydenta Baracka Obamy Prezydencki Medal Wolności za pracę przy misjach NASA Apollo Moon.

Siostra Mary Kenneth Keller - pierwsza kobieta z tytułem doktora informatyki

Pierwszą kobietą, która otrzymała tytuł doktora informatyki, była zakonnica: Mary Kenneth Keller wstąpiła do „Sióstr Miłosierdzia” w 1932 roku, składając śluby w 1940 roku. Keller uzyskała tytuł magistra matematyki na Uniwersytecie DePaul w Chicago i krótko studiowała w Dartmouth. Tam odegrała znaczącą rolę w opracowaniu kluczowego języka komputerowego: uniwersalnego symbolicznego kodu instrukcji dla początkujących o nazwie BASIC.

Dzięki językowi BASIC pisanie oprogramowania nie było już ograniczone do matematyków i naukowców. Jej wkład sprawił, że korzystanie z komputera stało się znacznie bardziej dostępne dla szerszej populacji. Keller wróciła na Środkowy Zachód i w 1965 roku uzyskała tytuł doktora na Uniwersytecie Wisconsin, a następnie stanęła na czele wydziału informatyki Clarke College w Iowa, gdzie pracowała przez kolejne 20 lat.

Susan Kare - odkrycie Steva Jobsa

Chociaż na początku swojej kariery Susan Kare pracowała dla Microsoftu, jej największe osiągnięcia przypadają na okres, gdy współpracowała ze Stevem Jobsem w Apple.

Kare marzyła o karierze artystycznej i po ukończeniu szkoły przybyła do San Francisco, by tam odnaleźć swoją szansę. Przypadkowe spotkanie ze starą koleżanką z liceum zaowocowało rozmową o pracę w Apple. Steve Jobs, zainspirowany graficznym interfejsem użytkownika (GUI) firmy Xerox, poszukiwał artysty, który mógłby zaprojektować ikony Macintosha. Projekty Kare spodobały się Jobsowi na tyle, że zdecydował się podjąć z nią współpracę.

Używając bloku papieru milimetrowego, Kare zaprojektowała więc ikony do Maca, które spełniały trzy zasady: były proste, eleganckie i zrozumiałe. W ramach swojej pracy w Apple Susan stworzyła także krój pisma Chicago, używany w pierwszych czterech generacjach iPoda. Projekty Kare były wykonywane wręcz z obsesyjną i charakterystyczną dla Jobsa dbałością o szczegóły, która zresztą definiuje Apple do dziś.

Carol Shaw - twórczyni gier na Atari

Carol Shaw urodziła się i wychowała w Palo Alto w Kalifornii. Choć od początku świetnie radziła sobie z matematyką, dopiero gdy odziedziczyła model kolejki elektrycznej po swoich braciach, Shaw zaczęła majstrować przy elektronice.

Po ukończeniu programu dla absolwentów informatyki w Berkeley, Shaw przyjęła posadę w firmie produkującej gry Atari pod koniec lat 70. Nosząc okulary w grubych oprawkach i nieśmiertelną flanelową koszulę, rozpoczęła projektowanie i programowanie gier wideo. Shaw zaprogramowała jedną z najbardziej znanych strzelanek Atari, River Raid, która została uznana za najlepszą grę wojenną roku 1984, a praca Shaw jako pioniera w projektowaniu gier uczyniła z niej legendę dwóch pokoleń graczy.

Adele Goldberg

Bez Adele Goldberg pulpit Apple wyglądałby dziś zupełnie inaczej. Pracując w Xerox Palo Alto Research Center (PARC), Adele była jedyną kobietą w grupie, która stworzyła Smalltalk-80, jeden z najpopularniejszych i najbardziej wpływowych wczesnych języków programowania. Przedstawiła również Smalltalk Steve'owi Jobsowi, który zaimplementował sporo założeń tego języka w pierwszych produktach Apple. Poza Apple, wiele nowoczesnych graficznych interfejsów użytkownika (GUI) posiada standardy projektowe, które odnoszą się bezpośrednio do oryginalnej pracy Goldberg.

Radia Perlman - „Nie nazywajcie mnie matką Internetu”

Radia Perlman przez wielu jest uważana za założycielkę Internetu, choć ona sama mocno się od tego odżegnuje, podkreślając, że ​​„Internet nie został wymyślony przez jedną osobę”. Pewnym jest jednak, że to Perlman stworzyła algorytm stojący za protokołem Spanning Tree Protocol (STP), który jest istotną częścią fundamentów Internetu.

Perlman, jako jedna z nielicznych kobiet rozpoczęła karierę naukową na MIT, gdzie w 2000 roku opublikowała swój podręcznik „Połączenia międzysieciowe”, znacznie upraszczając routing sieci i mostkowanie. „Moja książka stworzyła porządek” - powiedziała później.

Pomimo swoich indywidualnych sukcesów, a zwłaszcza stworzenia protokołu STP Perlman podkreśla znaczenie pracy zespołowej w rozwoju technologii i nie chce skupiać się wyłącznie na swoich dokonaniach.

Kobiet, które w znaczący sposób przyczyniły się do rozwoju technologii jest oczywiście o wiele więcej, my jednak wybraliśmy sylwetki tych dziesięciu, które na przestrzeni lat udowadniały, że mogą przecierać szlaki w różnych obszarach IT i nie boją się wyzwań związanych z tworzeniem nowoczesnych rozwiązań informatycznych. Wszystkim kobietom, które mają aspiracje, by wejść do branży IT, życzymy, by nie wahały się i próbowały swoich sił, idąc za przykładem bohaterek naszego artykułu.


5 lat INCAT - co udało nam się osiągnąć?

W tym roku minęło pięć lat trwania naszej spółki, w związku z tym pokusiliśmy się o podsumowanie tego czasu. Choć za nami sporo trudnych chwil, wyzwań i wymagających klientów, dziś jesteśmy w miejscu, o którym nawet nie marzyliśmy, tworząc INCAT. Zaczynaliśmy od drobnego outsourcingu IT, a dziś jesteśmy jednym z nielicznych dostawców systemów transakcyjnych na świecie. Zrobiliśmy ogromny postęp i dziś chcielibyśmy go podsumować. Wybraliśmy więc 5 przełomowych momentów, które pozwoliły nam się mocno rozwinąć, choć czasami kosztowały nas kilka nieprzespanych nocy :).

Początek

Rozpoczęliśmy działalność w roku 2016, jako dostawcy body leasingu, udostępniając specjalistów IT naszym partnerom i klientom. Zaczynaliśmy skromnie, od kilku specjalistów i małych projektów, mając nadzieję, że na stałe zagrzejemy miejsce na rynku usług outsourcingowych. Z czasem pula naszych specjalistów sukcesywnie rosła, a liczba projektów, które obsługiwaliśmy, zapewniała nam tak potrzebny rozwój.

Rozwój outsourcingu i nowy model współpracy

Na przełomie 2017 i 2018 rozwinęliśmy zakres naszych usług outsourcingowych o team sharing i zaczęliśmy udostępniać naszym klientom całe zespoły projektowe. Jednocześnie rosnąca popularność body leasingu pozwoliła nam podjąć współpracę z kilkoma kluczowymi bankami w Polsce. To jednak nie wszystko. Wkrótce okazało się, że sporo naszych klientów, bardziej niż outsourcingu, potrzebuje bardziej kompleksowego wsparcia technologicznego w prowadzonych projektach IT. To dało nam przestrzeń do adaptacji modelu outsourcingowego o nazwie CoLab, w ramach którego przyjęliśmy rolę partnera technologicznego, oraz sporą część odpowiedzialności za prowadzone projekty. Wątki outsourcingowe rozwijały się bardzo sprawnie, tymczasem my nabraliśmy chęci, by nieco rozszerzyć zakres naszego portfolio - tym razem o rozwiązania dla branży finansowej.

Powstanie BOS Fintech

Wkrótce wraz z jednym z naszych kluczowych Klientów rozpoczęliśmy pracę nad naszym pierwszym  produktem, jakim jest kompleksowy system transakcyjny dla podmiotów finansowych BOS. Założyciele INCAT wywodzą się z branży bankowej, nic więc dziwnego, że nasze zainteresowanie skupiło się wokół zmian i rozwoju rynku finansowego. Wraz z rosnącą popularnością fintechów i pozabankowych podmiotów finansowych pojawiła się potrzeba stworzenia nowoczesnego i elastycznego systemu transakcyjnego, który, w przeciwieństwie do klasycznych systemów transakcyjnych, będzie szybki we wdrożeniu, oraz łatwy w modyfikacji. Stąd pomysł na BOS Fintech, system zarządzania rachunkami i transakcjami finansowymi. Od pomysłu do realizacji jednak długa droga, zwłaszcza, że systemy transakcyjne są niezwykle skomplikowane funkcjonalnie, a ekosystem finansowy obwarowany jest wieloma legislacyjnymi ograniczeniami. Dzięki wierze w końcowy sukces i ogromnej pracy naszych zespołów, udało nam się stworzyć projekt wykraczający poza pierwotne założenia. To oczywiście nie koniec. Dziś i przez kolejne lata będziemy rozwijać nasze rozwiązanie, zwłaszcza, że rynek usług finansowych zmienia się w zawrotnym tempie, a my zamierzamy dotrzymać mu kroku.

Pomysł na INCAT FaaS AI

Analizując potrzeby biznesowe nowoczesnych fintechów i challenger banków, uznaliśmy, że podmioty finansowe, które są w początkowej fazie rozwoju, potrzebują rozwiązania technologicznego, które będzie optymalne kosztowo i nie będzie wymagać znaczącego zaangażowania ze strony klienta. We współpracy ze specjalistami Politechniki rozpoczęliśmy projekt INCAT FaaS AI, czyli platformy transakcyjnej w formie usługi. Udało nam się jednocześnie otrzymać dofinansowanie przedsięwzięcia w ramach programów Narodowego Centrum Badań i Rozwoju, co znacząco zwiększyło nasz budżet projektowy i pozwoliło błyskawicznie rozpocząć pracę nad platformą. Co ciekawe, już po kilku miesiącach pracy nad projektem, mogliśmy rozpocząć pierwsze, komercyjne wdrożenie INCAT FaaS AI, w jednym z polskich fintechowych start up’ów, co potwierdziło słuszność naszego pomysłu.

Pandemia

Początek 2020 roku to oczywiście ogólnoświatowa pandemia, konieczność pracy zdalnej i spowolnienie gospodarcze. Na szczęście, zwłaszcza w porównaniu do innych branż, INCAT ominęły większe problemy. Udało nam się sprawnie przejść na całkowitą pracę zdalną i choć potrzebowaliśmy nieco czasu by poczuć się pewnie w takiej formule, wkrótce okazało się, że nasza efektywność i skuteczność nie zmalała. W tym niełatwym czasie kontynuowaliśmy współpracę naszymi Klientami bez zakłóceń.

Z kolei w listopadzie byliśmy świadkami triumfu jednego z naszych partnerów biznesowych. ZEN.COM, bo o nim mowa, wystartował komercyjnie ze swoją aplikacją do płatności mobilnych i dedykowaną kartą Mastercard. Dla nas był to także spory sukces, bowiem jesteśmy głównym dostawcą systemu transakcyjnego, na którym opierają się płatności ZEN. Rok udało nam się zamknąć jeszcze jednym, bardzo ciekawym projektem team sharingowym dla klienta z Bliskiego Wschodu, zatem grudniowe i świąteczne klimaty zostały odrobinę przytłumione intensywnymi negocjacjami umowy.

Co dalej?

Właściwie nasze plany na kolejne miesiące mogłoby oddać jedno zdanie: idziemy do przodu. Kontynuujemy współpracę z dotychczasowymi Klientami - pracujemy z ZEN nad rozwojem technologicznym ich oferty biznesowej, rozwijamy platformę podstawowych usług finansowych dla klientów inwestycyjnych, którą oferuje jeden z naszych fintechowych partnerów, a nasze zespoły projektowe wspierają budowanie innowacji w dużych polskich bankach. Wewnętrznie rozwijamy także nasze produkty i usługi, dodając do nich nowe moduły i mikroserwisy. O rozwoju systemu BOS i jego nowych funkcjonalnościach możecie przeczytać tutaj. Przed nami także rebranding produktowy, który wizualnie i komunikacyjnie ułatwi odbiór naszych produktów i usług.

Patrząc na najbliższe kilka miesięcy, widzimy, że czeka nas mnóstwo wyzwań i jeszcze więcej pracy, ale to dobrze, bo naszym celem jest stały rozwój.

 

 


Prognoza branży finansowej - co przyniesie 2021 rok?

Rok 2020 zapamiętamy na długo. Ze względu na wciąż trwającą pandemię, miesiące stresu, niepewności i problemów gospodarczych na całym świecie. Koronawirus wpłynął na niemal każdą z branż - dla jednych lockdown oznaczał drastyczne problemy z płynnością, dla innych przede wszystkim konieczność dostosowania się do wprowadzonych zmian i funkcjonowania w nowej rzeczywistości. Nie inaczej jest w branży bankowej, której dotychczasowy status quo w wyniku pandemii stanął pod dużym znakiem zapytania, a zmiany, które eksperci przewidywali na przestrzeni najbliższych kilku lat, dzieją się niemal z dnia na dzień. 2020 rok zbliża się ku końcowi, w związku z tym przygotowaliśmy prognozę zmian w branży finansowej na 2021 rok w postaci mini słownika trendów. Dowiecie się z niego jakie trendy i technologie zyskają na popularności w branży bankowej w nadchodzącym roku. Kolejność alfabetyczna (nie)przypadkowa :). 

A jak Automatyzacja procesów i obsługi klienta

Praca zdalna ujawniła procesy, które mogą być zautomatyzowane lub wymagają ulepszenia ze względu na rozproszoną / nie scentralizowaną siłę roboczą. Doświadczenia pandemii pokazały konieczność niemal całkowitego przeniesienia obsługi klienta do sieci i ograniczenia pracy stacjonarnej. Można zatem zakładać, że w najbliższych miesiącach instytucje finansowe będą podążać tym tropem, aż do niemal całkowitej automatyzacji procesów, zarówno wewnętrznych jak i tych dotyczących obsługi klienta. 

C jak Cloud Computing

Choć przeniesienie zasobów do chmury w branży bankowej nie jest już innowacją, ani nawet nowością, wciąż zadziwiająca liczba podmiotów finansowych ma opory, by skorzystać z tej opcji. Banki długo opierały się korzystaniu z rozwiązań chmurowych, uznając je za ryzykowne pod względem bezpieczeństwa. Choć z ubiegłorocznego badania branży bankowej firmy Efma i Finastra wynika, że aż 81% podmiotów bankowych traktuje transformację cyfrową za swój priorytet, branża dotychczas dosyć silnie opierała się przeniesieniu choć części zasobów do chmury. 

Podczas gdy większość banków nadal polega na lokalnych systemach serwerowych, w ostatnich latach nastąpiły zmiany, w wyniku których tradycyjni gracze przenoszą się do chmury, aby skorzystać z nowoczesnych odpowiedników. W 2021 roku spodziewamy się, że więcej banków skorzysta z chmury, a niektóre przejdą na platformy chmury publicznej. Proces ten z pewnością nabierze tempa, bowiem ubiegłe miesiące z uwagi na pandemię, przyspieszyły zmiany w legislacji bankowej dotyczącej między innymi cyfryzacji sektora finansowego (Komisja Europejska), czy rekomendacji dotyczących korzystania z chmury w branży bankowej (KNF). Przeniesienie zasobów do chmury to przede wszystkim spora oszczędność, ale także, wbrew wątpliwościom bankowych decydentów, także wyższy poziom bezpieczeństwa danych.

Epidemia COVID-19 z pewnością wpłynie na popularyzację tego rozwiązania w branży finansowej. Podczas miesięcy lockdownu mogliśmy zaobserwować jak technologia chmurowa pozwoliła na zwiększenie wydajności w obszarze sprzedaży, płatności online i pracy zdalnej, zapewniając jednocześnie ciągłość działania i przyczyniając się do zachowania dystansu społecznego. Nie dziwi więc fakt, że wedle raportu firmy IDC, aż ⅓ firm z branży bankowej planuje w najbliższym czasie przejście na usługi chmurowe, uwzględniając te działania w swojej długoterminowej strategii IT. Dlatego 30% firm chce w najbliższym czasie przejść w kierunku chmury, uwzględniając te działania w długoterminowej strategii IT. Jak donosi IDC, wydatki na chmurę (PaaS, IaaS i SaaS) w najbliższych latach będą rosły w przeciwieństwie do technologii noncloud.

F jak Fintech jako usługa

Branża fintech rozwija się coraz sprawniej. Pojawiają się kolejne pomysły biznesowe, rozwiązania obejmujące wybraną niszę, czy technologie, które adresują dotychczas, wydawałoby się, nierozwiązywalne problemy i niedogodności. Połączenie technologii z branżą finansową kusi wieloma możliwościami, bowiem to właśnie tutaj rewolucyjny pomysł może nie tylko podbić rynek, ale także bardzo szybko wygenerować ogromny przychód. Niestety, na drodze do realizacji takiego pomysłu najczęściej stoi szereg ograniczeń, takich jak brak odpowiedniej infrastruktury IT, zbyt niskie finansowanie, czy brak wiedzy technologicznej. Odpowiedzią na te problemy może być skorzystanie z gotowej platformy transakcyjnej, takiej jak INCAT FaaS AI. Ze względu na rosnące zainteresowanie branżą fintech i ograniczenia o których pisaliśmy wyżej, tego rodzaju gotowe do wdrożenia rozwiązania staną się coraz popularniejsze. 

M jak Modernizacja systemów bankowych

Rosnące wymagania klientów dotyczące ofert usług w czasie rzeczywistym i ostra konkurencja ze strony innowacyjnych firm z branży fintech narzuca bankom konieczność modyfikacji swoich modeli biznesowych w taki sposób, by uwzględnić w nich działania zmierzające w kierunku cyfrowej transformacji. Jednakże przyjęcie nowych technologii w bankowości jest ograniczone przez starsze systemy - przestarzałe oprogramowanie powodujące nadmierne koszty utrzymania, tarcia w przepływie pracy i utrudnioną elastyczność biznesową. Przyszłość komercyjną banków warunkuje obecnie możliwość zastąpienia starszych systemów i wykorzystania najnowocześniejszych rozwiązań cyfrowych do obsługi współczesnej bankowości.

Ze względu na fakt, iż modernizacja starszych systemów bankowych w całości jest niemalże niemożliwa i bardzo kosztowna, banki w najbliższym czasie skupią się na stopniowej wymianie i wdrażaniu nowoczesnych elementów infrastruktury, bez naruszania ciągłości centralnego systemu transakcyjnego. Takie podejście pozwoli nie tylko na zwiększenie wydajności bazy danych i ograniczeniu długu technicznego, ale także, dzięki włączeniu w struktury platformy bankowej mikrousług i zaawansowanych interfejsów API, umożliwi szybsze wdrożenie nowoczesnych rozwiązań dla klientów. 

O jak Otwarta Bankowość

Otwarta bankowość została uznana za jedną z innowacyjnych sił, które mają przekształcić sektor bankowy. Jeśli tradycyjne banki w pełni skorzystają z tej możliwości, rozwiną się w sposobie analizowania i przesyłania danych, poszerzą swój ekosystem i będą w stanie lepiej obsługiwać klientów. Dostęp do szerokiego zakresu danych klientów pozwoli z jednej strony na zbudowanie konkurencyjności pomiędzy podmiotami, a z drugiej na większą personalizację oferty, co w konsekwencji pozwoli na utrzymanie lojalności klienta. Rosnąca transparentność banków i większa konkurencyjność wygeneruje nie tylko rozwój produktowy, ale także, a może przede wszystkim - technologiczny. 

Szanse, jakie otwiera przed branżą finansową Otwarta Bankowość:

  1. Zaawansowane i nowoczesne usługi cyfrowe
  2. Lepsza personalizacja klientów
  3. Niższy koszt pozyskania klienta
  4. Szanse rozwoju na globalnych rynkach
  5. Dostęp do danych klientów innych podmiotów finansowych

Wciąż jeszcze spora część liderów branży finansowej podchodzi ostrożnie do cyfrowej transformacji, z daleka obserwując możliwości, które daje otwarta bankowość. Jednak ostatnie branżowe raporty wskazują, że ta tendencja ulegnie zmianie. Według danych InfoPulse, aż 30 % instytucji finansowych planuje w najbliższym czasie uwzględnić w swojej strategii innowacji wdrożenie inicjatyw otwartej bankowości. Z kolei co czwarta organizacja planuje działalność sandboxową, aby współpracować z fintechami i móc testować nowoczesne rozwiązania dla bankowości oparte na filozofii Open Banking.

R jak Rozwój regulacji w branży fintech

Branża fintech rozwija się imponująco szybko, na co składa się szereg czynników. Jednym z nich jest niewątpliwie fakt, że dotychczas fintechy nie podlegały tak surowym regulacjom jak branża bankowa, co ułatwiało realizację sporej liczby projektów, które w tradycyjnym banku nie byłyby możliwe, lub ich wdrażanie trwałoby zbyt długo. Tym niemniej, sytuacja ta z pewnością wkrótce ulegnie zmianie. Fintechy zajmują już na tyle sporą część rynku usług finansowych, że potrzebne jest ujednolicenie i zwiększenie liczby regulacji którym podlegają. Ponadto, technologie tworzone przez fintechy będą coraz mocniej wykorzystywane przez tradycyjne instytucje finansowe, więc by umożliwić tę wymianę technologiczną, fintechy muszą spełniać odpowiednie ku temu warunki. 

Mając na uwadze dynamiczne zmiany na rynku usług finansowych, rozwój otwartej bankowości, szerokie wykorzystanie zdalnych kanałów nawiązywania relacji z klientami, rozwój sztucznej inteligencji oraz globalizację świadczenia usług, konieczne jest proaktywne podejście nadzorców do rozwoju sektora FinTech. To wpisuje się w cele ustawowe nadzoru jakimi są m.in. działania mające na celu wspieranie rozwoju innowacyjności rynku finansowego - mówi Zbigniew Wiliński, Dyrektor Departamentu Innowacji Finansowych FinTech w Urzędzie Komisji Nadzoru Finansowego, w raporcie “How to do fintech in Poland”.

S jak Sztuczna inteligencja

Wciąż jeszcze trudno mówić o wykorzystaniu potencjału sztucznej inteligencji w obszarze cyberbezpieczeństwa, zwłasza w branży finansowej. Rosnąca popularność bankowości cyfrowej co prawda bardzo ułatwia życie klientom instytucji finansowych, ale z drugiej strony otwiera furtkę nadużyciom i oszustwom finansowym. By temu zapobiec banki i fintechy będą jeszcze intensywniej rozwijać obszar analiz behawioralnych, monitorowania anomalii, czy profilowania klientów, do czego niezbędne będą moduły AI. 

V jak Voiceboty

Chatboty, czyli programy pełniące rolę wirtualnych asystentów, oparte na technologii sztucznej inteligencji są już wykorzystywane w bankowości, zwłaszcza w obszarze obsługi klienta. Chatboty idealnie nadają się do pełnienia roli osobistych asystentów cyfrowych i wykonywania prostych, powtarzalnych działań, ale nie tylko. W dłuższej perspektywie chatboty będą w stanie wykonywać coraz bardziej złożone zadania związane z obsługą oraz wspierać sprzedaż produktów finansowych, poprzez bieżące profilowanie klientów i analizę dostępnych danych.

Rozwinięcie roli chatbotów w obsłudze klienta, to nie jedyna ścieżka rozwoju sztucznej inteligencji. W nadchodzącym roku coraz większą popularność będą cieszyć się voiceboty - czyli boty występujące w roli asystentów głosowych, prowadzące rozmowy z klientami. Według Capgemini’s Conversational Commerce: Why Consumers Are Embracing Voice Assistants in Their Lives konsumenci corazbprzychylniej patrzą na udział botów, a zwłaszcza botów głosowych, w ich interakcjach z firmami. Capgemini prognozuje się, że w ciągu trzech lat udział botów w konwersacjach z klientami może wzrosnąć do 40%. Voiceboty łączą ze sobą zalety standardowych chatbotów, takie jak generowanie oszczędności oraz wzrost liczby obsłużonych zapytań, z zaletami klasycznej formy komunikacji, jaką jest telefoniczna rozmowa z konsultantem. 

Wśród przykładowych zastosowań voicebotów w bankowości wymienić można:

  • identyfikację użytkownika oraz usługi, której sprawa dotyczy,
  • autoryzację klienta,
  • sprawdzenie statusu zgłoszenia,
  • informacje o środkach na kontach,
  • badania satysfakcji klienta,
  • sprzedaż usług i produktów,
  • aktywacja i dezaktywacja usług,
  • windykacja zaległych należności,
  • potwierdzenie zaksięgowania wpłaty,
  • umawianie spotkań.

Voicebot w bankowości nie jest jednak schematycznym rozwiązaniem, ale raczej szerokim spektrum pomysłów, które każdy bank czy instytucja finansowa może indywidualnie dopasować do swoich potrzeb.

W jak Współpraca zamiast rywalizacji

Początkowa rywalizacja fintechów i tradycyjnych banków powoli zamienia się w korzystną dla obu stron współpracę. Banki, świadomie konieczności rozwoju technologicznego korzystają z dobrodziejstw rozwiązań wypracowanych przez fintechy, nierzadko opierając na tym swoją strategię innowacji. Fintechy natomiast zyskują na stabilizacji i zasięgu partnera biznesowego jakim jest bank. Nadchodzące miesiące najprawdopodobniej jeszcze przyspieszą tę tendencję, zwłaszcza w zakresie bezdotykowych płatności czy innowacji w aplikacjach mobilnych.

Jak pokazują opublikowane niedawno dane Capgemini, historycznie niechęć do współpracy była równie duża po stronie fintechów, jak i banków. Co czwarty decydent w banku, badany przez tę firmę consultingową przyznawał, że infrastruktura jego firmy nie daje możliwości współpracy ze zwinnymi fintechami. Z kolei fintechy frustrują bariery organizacyjne blokujące możliwość rozwoju innowacji w dużym banku oraz trudność w znalezieniu porozumienia z partnerem. Jednak jak konkludują autorzy raportu, nasza nowa rzeczywistość nie pozostawia bankom wyboru – poprawa doświadczenia klientów w usługach cyfrowych jest koniecznością, a nie luksusem. A najszybsza droga do osiągnięcia tego celu to skorzystanie z doświadczeń fintechów. Współpraca na linii bank-fintech to przede wszystkim możliwość łączenia usług finansowych oraz cyfrowych i coraz bardziej zindywidualizowanych technologii w większym stopniu wykorzystujących bazy danych (Big Data, Cloud Computing), sztuczną inteligencję, a także nowe formy płatności mobilnych i wirtualne waluty. 


Scrum w dużych projektach bankowych - pierwszy podcast!

W INCAT rozpoczęliśmy przygodę z podcastami. W efekcie przygotowaliśmy dla Was rozmowę z naszym incatowym Scrum Masterem, Karolem Kłaczyńskim, z którym omawiamy temat Scruma w dużych projektach bankowych. Odnośnik do podcastu znajdziecie poniżej, a jeśli nie macie tyle czasu by przesłuchać całość, zapraszamy do poniższego artykułu, w którym zebraliśmy dziesięć kluczowych wskazówek i ważnych stwierdzeń, które padły w podcaście. Bierzcie więc i czytajcie z tego wszyscy :).

O zwinności biznesowej

Zwinność biznesowa to swoisty mindset, sposób myślenia nastawiony na ludzi, na dostosowywanie się do zmian. Scrum z kolei to framework, który promuje podejście zwinne, czyli jest to zestaw pewnych zasad, zdarzeń, ról i artefaktów, które można obudowywać swoimi elementami i który pomaga sobie radzić ze skomplikowanymi projektami biznesowymi i tworzeniem rozbudowanych systemów. Zwinny sposób myślenia pomaga się dostosowywać do wymagań klienta i, w efekcie, tworzyć lepsze rozwiązania.

O zwinności w projekcie i zwinności na poziomie organizacji

Zwinność na poziomie tworzenia produktu jest kluczowa, ale równie ważne jest, aby zwinne podejście prezentowała cała organizacja. Najlepiej widać tę zależność na przykładzie. Problem, który może się pojawić, to na przykład kwestia tego, że potrzebujemy nowego sprzętu w projekcie. I jeśli organizacja nie działa zwinnie, a osoby, które odpowiadają za tego rodzaju sprawy są swoistym wąskim gardłem organizacji, to nawet jeśli na poziomie projektu zespoły działają zwinnie, niewiele to pomoże, jeśli na trzy monitory i dwa notebooki będziemy czekać trzy-cztery tygodnie. Zespół jest zblokowany zewnętrznymi zależnościami, co odbija się na powodzeniu projektu.

O transformacji w organizację zarządzaną zwinnie

Ważne jest zrozumienie i wola ze strony zarządu. Zrozumienie, że jeśli organizacja nie będzie działać zwinnie, to efekty będą ograniczone. Warto też wybrać “agentów zmiany”, czyli osoby, które mają doświadczenie w pracy zwinnej i mają na tyle duże poważanie oraz posłuch u pozostałych członków organizacji, by móc tę zmianę propagować i przeprowadzać. Na początku kluczowe jest jednak, aby ustalić zasady, reguły i proces przejścia na agile w organizacji, w taki sposób, by był on jak najbardziej dopasowany do specyfiki i wymagań danej firmy. Stworzenie kontraktu w takiej sytuacji może być dobrym pomysłem, natomiast warto pamiętać o tym, by raczej go nie spisywać - określić i zobowiązać się do jego przestrzegania, ale niekoniecznie traktować jak pisemnej umowy. To jest na początku bardzo trudne, ale z mojego doświadczenia wynika, że im większy poziom zaufania w zespole/ organizacji, tym z czasem jest łatwiej trzymać się opracowanych postanowień.

O projektach, w których scrum się nie sprawdza

Bardzo małe produkty, albo tworzenie proof of concept to coś, do czego scrum niespecjalnie przystaje i może być czymś w rodzaju armaty na wróble. Inwestycja w scruma w małych, niewymagających projektach może być wyższa niż oczekiwane korzyści. Jeśli produkt jest oczywisty i mamy bardzo dokładnie opisane wymagania i pewność, że założenia biznesowe raczej się nie zmienią, to w takiej sytuacji wprowadzanie scruma nie jest dobrym pomysłem. Scrum dobrze radzi sobie w projektach rozbudowanych, dynamicznych, z często zmieniającymi się zarówno oczekiwaniami klienta, jak i warunkami rynkowymi.

O narzędziach, które daje scrum

Scrum daje pewne zasady, definicje, nadaje role w projekcie. Cele poszczególnych ról i wydarzeń są dobrze i jasno opisane w Scrum Guide, co bardzo ułatwia promowanie zwinności w organizacji. Jeśli się wczytamy w Scrum Guide’a, zobaczymy w jaki sposób każdy ten element wspiera zwinność. Na przykład Daily Scrum tę zwinność wspiera w ten sposób, że de facto cały czas planujemy i mamy pod kontrolą to co robimy jako zespół na bieżąco, dostosowujemy się natychmiast do nowych wymagań, od razu rozwiązujemy problemy, wyciągamy je “na wierzch” każdego dnia, a nie raz na dwa tygodnie, gdy zdążą już urosnąć do niebotycznych rozmiarów. Backlog z kolei pokazuje jaki mamy plan na najbliższy czas, a dostosowanie backlogu do nowych warunków pomaga łapać szerszą perspektywę nie tylko na najbliższy sprint, ale także na miesiąc, czy dwa do przodu.

O relacji Scrum Mastera z Product Ownerem

Rola Scrum Mastera wobec Product Ownera to przede wszystkim nauka pracy w ramach zespołu scrumowego, wsparcie w kwestiach budowania backlogu i tworzenia analizy biznesowej. Product Owner to taka osoba, która musi dużo mówić “nie”, bo, zwłaszcza w dużych organizacjach, istnieje sporo stakeholderów i osób decyzyjnych, a każdy z nich jest tak samo mocno przekonany o tym, że jego pomysł, jego funkcjonalność jest kluczowa. I jakoś trzeba tym zarządzić, w czym czasami nieodzowna jest pomoc i wsparcie Scrum Mastera.

O wyzwaniach scruma w dużych projektach

Sporym problemem jest to, że wiele organizacji chce zbyt szybko skalować swoje bardzo zaawansowane produkty, bez podchodzenia do tematu iteracyjnie. Podejście iteracyjne to takie, w którym mamy jeden zespół, on pracuje na zwinnych zasadach, a następnie rozwijamy kolejny, w którym umieszczamy agentów zmiany i oni uczą ten nowy zespół przestrzegania zasad agile. Niestety, zazwyczaj jest tak, że mamy jeden zespół, dorzucamy osiem kolejnych, nikt nie rozumie na czym polega zwinność, ale liczy się sam fakt, że “pracujemy w scrumie”. Inna sprawa to fakt, że w dużych, wielozespołowych projektach planowanie odbywa się na wyższym poziomie, czasami trzeba je organizować pomiędzy reprezentantami poszczególnych zespołów. Jest też kwestia komunikacji wewnątrz zespołów - problemy jednego zespołu wpływają na pozostałe. Wyobraźmy sobie, że mamy jakiś wspólny komponent, czy bibliotekę z której korzystają wszyscy w projekcie i nagle zmieniamy jej wersję. Pozostałe zespoły muszą o tym wiedzieć, przygotować się na to, zsynchronizować działania. Jeśli komunikacja pomiędzy zespołami zawodzi, takich procesów nie da się przeprowadzić bez wpadek. Mówiąc krótko - wszystkie problemy, które występują na poziomie jednego zespołu, w przypadku kilku lub kilkunastu mocno się skalują - i to w postępie geometrycznym.

O zwinności w branży bankowej

Zwinność w branży bankowej już jest. Jeszcze nie na poziomie systemów centralnych, ale na poziomie np aplikacji czy portali, podejście zwinne całkiem nieźle się przyjęło. Klienci w branży bankowej niejako wymagają tych zmian - istnieją rozwiązania typu Revolut, które świetnie i szybko odpowiadają na zmiany w obrębie wymagań biznesowych i to sprawia, że branża bankowa musi się szybciej dostosowywać do klienta, bo konkurencja, nierzadko bardziej elastyczna, nie śpi.

O procedurach w bankowości

Zwinność i Scrum może w pewien sposób uświadomić decydentom w projektach bankowych po co istnieją wybrane procedury. I ze względu na transparentność, rozwiązywanie problemów i reagowanie na bieżąco, nierzadko może się okazać, że praca w Scrumie identyfikuje, które procedury są przestarzałe, nieadekwatne, niepotrzebne. Scrum pyta “dlaczego” i “po co” i dzięki temu pomaga uporządkować pracę, oszczędzać czas i w efekcie pieniądze.

O pogodzeniu monolitu ze Scrumem

Monolity nie lubią zmian, to rzecz oczywista. Ale, zazwyczaj monolity mają takie elementy, które można powoli wydzielać i przekształcać je w elementy zwinne. Oczywiście, można mieć ambicję, by projektem monolitycznym zarządzać całkowicie zwinnie, natomiast wiąże się z to dużymi wyzwaniami typu koszty, czas, nieodporność na zmiany. Wydaje się więc, że strategia wolniejsza, ale pozbawiona tych wszystkich ryzyk, polegająca na wydzielaniu modułów które da się elastycznie zarządzać jest lepszą opcją.

Chcesz sięgnąć po więcej? Całą rozmowę z Karolem znajdziesz tutaj:

https://soundcloud.com/user-381845270/scrum-w-duzych-projektach-bankowych


7 nieoczywistych kompetencji miękkich przydatnych w pracy programisty

O kompetencjach miękkich w kontekście IT mówi się w ostatnich latach coraz więcej, co bardzo cieszy, bowiem przez dłuższy czas obszar inteligencji emocjonalnej był w IT mocno niedoceniany. Dziś to podejście podlega sporym zmianom, a managerzy i szefowie działów IT  dostrzegają zalety budowania zespołów technicznych z uwzględnieniem kompetencji miękkich. Specyfika IT pokazuje jak ważne w codziennej pracy zespołów technicznych są umiejętności komunikacyjne czy zdolność do skutecznej pracy w grupie. Istnieją jednak takie kompetencje, które z pozoru wydają się w IT niepotrzebne, jednak po głębszym zastanowieniu można dojść do wniosku, że posiadanie ich bardzo ułatwia codzienną pracę. Wybraliśmy 7, naszym zdaniem przydatnych i nieoczywistych kompetencji miękkich, które są bardzo ważne w kontekście pracy w IT:

Zarządzanie emocjami

Zarządzanie emocjami jest umiejętnością przydatną ogólnie w biznesie, natomiast w branży IT pełni szczególną rolę. Zarządzanie emocjami najogólniej rzecz ujmując sprowadza się do interpretowania, kontrolowania i bieżącej regulacji własnych emocji w taki sposób by nie przeszkadzały one w działaniu.

W psychologii zdolność do dostrzegania i interpretowania własnych emocji, określa się mianem wglądu. To niezbędna umiejętność do tego, by pracować nad samokontrolą, nie reagować pod wpływem silnego wzburzenia, a także przyjmować właściwe interpretacje różnych sytuacji, nie zniekształconych przez emocje. W branży pełnej wyzwań, jaką jest niewątpliwie IT nie brakuje okazji do spięć, frustracji czy złości, więc tym ważniejsze jest kontrolowanie tych sytuacji na tyle, by nie wpływały one zbyt silnie na pracę. Wysoki poziom pobudzenia emocjonalnego wpływa negatywnie na efektywność, skupienie i uwagę, a przecież to właśnie te procesy nierzadko stanowią o powodzeniu przy pisaniu skomplikowanego algorytmu, lub analizowaniu krytycznych błędów w aplikacji. 

Elastyczność

Elastyczność to, w dużym uproszczeniu, zdolność dostosowania się do zmieniającej się sytuacji, bez ponoszenia dużych kosztów emocjonalnych. Osobom elastycznym łatwiej jest radzić sobie, gdy “zasady zmieniają się w trakcie gry”, dlatego ta cecha w pracy programisty przydaje się nadzwyczaj często. Bo niech pierwszy rzuci kamieniem ten, kto nigdy nie był w sytuacji, gdy klient zmieniał wymagania lub podważał wcześniejsze ustalenia, podczas gdy projekt był już w zaawansowanej fazie. Takie sytuacje u osób mocno pryncypialnych budzą frustrację i masę negatywnych emocji, co odbija się najczęściej na pracy, natomiast elastyczność pozwala zachować potrzebny spokój, jednocześnie dając możliwość znalezienia alternatywy przy rozwiązywaniu problemów.

Kreatywność

Przecież jestem programistą, niepotrzebna mi kreatywność, powiesz zapewne. I cóż...na pierwszy rzut oka trudno odmówić racji takiemu rozumowaniu, ale wchodząc głębiej, można zobaczyć, że kreatywność bardzo pomaga w pracy technicznej. Bycie kreatywnym jest silnie połączone z umiejętnością rozwiązywania problemów, bo osoby z tą zdolnością potrafią patrzeć na rzeczywistość z trochę szerszej perspektywy niż reszta. Dostrzegają związki i nawiązania, tam, gdzie pozornie ich nie widać, dzięki czemu potrafią znaleźć nieszablonowe rozwiązanie gdy klasyczne sposoby zawodzą. Osoby kreatywne to mistrzowie workaroundów, często tak niezbędnych, gdy stajesz przed dużym technologicznym wyzwaniem.

Autoprezentacja

To kolejna miękka umiejętność, która pozornie wydaje się zupełnie nieprzydatna w świecie IT. Prezentacje czy wystąpienia, to raczej domena działów marketingu i sprzedaży, pomyślisz. To przekonanie traci dziś na aktualności, bowiem coraz częściej zdarza się, że osoby techniczne prowadzą wewnętrzne warsztaty dla młodszych programistów, biorą udział w technicznych webinarach, a także przygotowują prezentacje dla klientów. W dobie social mediów i trendu jakim jest dzielenie się swoją wiedzą z odbiorcami, firmy technologiczne mocno korzystają z potencjału intelektualnego swoich działów IT. Warto więc rozwijać swoje zdolności autoprezentacji, by w takiej sytuacji czuć się pewniej i móc skupić się wyłącznie na treści tego, co jest do przekazania, bez konieczności zamartwiania się o formę. 

Samomotywacja

Firmy technologiczne prześcigają się w tworzeniu pakietów motywacyjnych, systemów premiowych i benefitów, które nie tylko mają zachęcić do pracy w wybranej firmie, ale także utrzymać wysoki poziom motywacji. Takie motywatory zewnętrzne, które nie są immanentną częścią danego zadania mają jednak o wiele niższą skuteczność niż motywacja wewnętrzna, rozumiana jako zaangażowanie w pracę wynikające z chęci wykonania określonego działania, nawet jeśli nie wiąże się z tym żadna nagroda “z zewnątrz”. Ale motywacja wewnętrzna także ma swoje ograniczenia. Zdarza się, że nawet gdy praca w IT jest Twoją pasją i wykonujesz ją z przyjemnością, Twoje chęci z czasem słabną. Wiecznie niezadowolony klient czy przełożony, który regularnie dokłada obowiązków, projekty do “wyklepania”, przy których nie uczysz się nowych rzeczy - to czynniki, które negatywnie wpływają na poziom motywacji wewnętrznej. Dobrze jest więc, gdy potrafisz rozpoznać ten stan i skutecznie mu zaradzić.

Resiliencja

Resiliencja to po prostu odporność psychiczna i umiejętność adaptacji w nieprzewidzianych sytuacjach oraz radzenia sobie z problemami. Ta umiejętność wraca ostatnio do łask, głównie za sprawą pandemii koronawirusa. Można powiedzieć, że ostatnie kilka miesięcy zapewniło organizacjom, pracodawcom i pracownikom ogromny egzamin z resiliencji, który zapamiętamy na lata. Odporność psychiczna to cecha, którą można skutecznie rozwijać, co jest bardzo dobrą wiadomością dla osób, które muszą nad nią popracować. Choć wydaje się, że praca programisty jest bardzo stabilna, nie jest jednak wolna od nieprzewidzianego, zarówno w wymiarze technicznym, jak i biznesowym. Zdarzają się aplikacje, które, mimo najlepszych chęci, okazują się nierentowne i nieatrakcyjne dla odbiorców, bugi, które “wychodzą” już po releasie oprogramowania, czy krytyczne projekty na wczoraj, generujące ogromny poziom stresu. Odporność i umiejętność radzenia sobie z takimi sytuacjami jest niezbędna dla zachowania równowagi, a także sprawia, że każdy kolejny problem przestaje być sytuacją bez wyjścia, a jedynie kłopotem, z którym trzeba sobie poradzić i iść dalej. 

Zarządzanie sobą w czasie

Zdarzają Ci się dni, gdy pracujesz przez cały dzień, a wieczorem dociera do Ciebie, że w gruncie rzeczy niczego konkretnego nie zrobiłeś? Powodem może być właśnie nieumiejętność zarządzania sobą w czasie, czyli między innymi brak nadawania priorytetów zadaniom, słaby poziom planowania działań, czy estymacji czasu, a także problem z ustalaniem celów. To wszystko sprawia, że praca pod presją czasu staje się podwójnie stresująca, bo martwisz się nie tylko o to, by zrobić swoje zadanie dobrze, ale także o to, czy “się wyrobisz”. A w branży IT terminowość i efektywność, zwłaszcza w pracy z klientem jest bardzo ważna, warto więc pochylić się nad tym aspektem swojej pracy. Opisywanie wszystkich najskuteczniejszych technik i metod zarządzania sobą w czasie zajęłoby nam zbyt dużo miejsca, tym niemniej polecamy zapoznać się na początek z macierzą Eisenhowera oraz techniką Pomodoro, które świetnie sprawdzą się jako narzędzia wspierające skuteczne zarządzania czasem. 

Choć wciąż niedoceniane, dobrze rozwinięte kompetencje miękkie w branży IT niosą za sobą szereg zalet. To ten właśnie aspekt naszej codziennej pracy pomaga rozwinąć potencjał i zwiększyć efektywność, a to przekłada się na coraz lepsze rezultaty w pracy, pozbawionej niepotrzebnej frustracji, obaw, czy negatywnych emocji. 

Z punktu widzenia procesów rekrutacyjnych, jakie prowadzimy w INCAT, aby realizować ciekawe zadania w projekcie, w pracy programisty liczą się dla nas nie tylko umiejętność programowania. Wiedza i umiejętności techniczne powinny iść w parze z kompetencjami miękkimi - w codziennych zadaniach programisty ich rola jest o tyle ważna, ponieważ projekty często są różnorodne, wymagają kreatywnych rozwiązań, a także przekazywania informacji technicznych osobom spoza branży. Niezależnie od tego jaką rolę pełni programista, czy jest managerem zarządzającym projektem, czy developerem, powinien być osobą komunikatywną. Zwracamy dużą uwagę na tą umiejętność, gdyż jest ona niezbędna podczas planowania projektu, a także podczas wprowadzania zmian. Tworzenie aplikacji to nie tylko samotne kodowanie – wymaga ono wielomiesięcznej pracy zespołowej oraz współpracy wielu specjalistów, w czym zdecydowanie pomaga wdrożenie opisanych umiejętności w swoją zawodową codzienność. Zdecydowanie wszystkie przekładają się na efektywność pracy, a połączone ze specjalistyczną wiedzą i doświadczeniem zaowocują zdobyciem satysfakcjonującej pracy i poczuciem spełnienia - mówi Karolina Wolf, specjalista ds. HR i rekrutacji w INCAT.  


6 najpopularniejszych języków programowania używanych w bankowości

Gdyby zapytać grupy programistów jaka technologia jest najlepsza przy tworzeniu oprogramowania dla bankowości, z pewnością odpowiedź brzmiałaby “To zależy.” I trudno się z tym nie zgodzić, bo dobór technologii zależy od celu, który ma realizować. Jednak biorąc pod uwagę specyfikę branży bankowej, wyśrubowane standardy bezpieczeństwa i konieczność zgodności z legislacją, wybraliśmy 7 technologii, które najczęściej wykorzystuje się w bankowości. 

 

COBOL 

Cobol jest swoistą legendą bankowego IT. Każdy, kto przynajmniej przez moment miał styczność z tym tematem, kojarzy go jako wieloletnią podstawę wszelkich systemów bankowych. Choć dziś programistom zdarza się żartować z tego języka, okazuje się, że niesłusznie. Według danych Reutersa aż 43% dzisiejszych światowych informatycznych systemów bankowych jest stworzona z użyciem COBOL-a, więc jak widać ma się on nadal całkiem nieźle. Nazwa COBOL to akronim od słów Common Business-Oriented Language i właśnie to, że sprawdza się on świetnie przy realizacji celów biznesowych i komercyjnych tłumaczy w dużej mierze jego zastosowanie w bankowości. Ponadto, COBOL odznacza się także prostą i zrozumiałą składnią, co sprawia, że nawet nietechniczna osoba potrafi sporo rozgryźć podczas czytania kodu. 

 

C#

C# to wysokopoziomowy język obiektowy stworzony przez Microsoft. Pomimo upływu lat, wciąż zajmuje wysokie pozycje w rankingach popularności języków programowania. Sprawdza się świetnie w tworzeniu rozbudowanych systemów i dużych projektów, co poniekąd tłumaczy jego miejsce w tym artykule. Tym co wyróżnia C#, jest przede wszystkim fakt, że to technologia ze stajni Microsoftu, co ma przynajmniej dwie spore zalety. Pierwsza to oczywiście kwestia tego, że za tym językiem stoi jeden z technologicznych gigantów, z ogromnym budżetem na rozwój i bardzo dużym wsparciem. Druga to niewątpliwie duża kompatybilność wsteczna (cecha oprogramowania, dzięki której − mimo zmiany funkcjonalności − nowa wersja umożliwia współpracę z całym otoczeniem wcześniejszej wersji i jej wszystkimi komponentami). W kontekście tak pożądanej przewidywalności, Microsoft otwarcie określa kierunek rozwoju swojej technologii, dzięki czemu dosyć jasno i klarownie można przewidzieć z jakimi zmianami przyjdzie się nam zmierzyć na przestrzeni kolejnych kilku lat. 

 

C/C++

Choć C/C++ został stworzony w latach osiemdziesiątych ubiegłego wieku, szeroki zakres jego zastosowania sprawia, że nadal opiera się na nim wiele dużych systemów i aplikacji. C++ wyróżnia to, że sprawdza się przy tworzeniu skomplikowanych, wielopoziomowych systemów, ze względu na specyficzny kompilator. Kompilator C++ silnie przestrzega zgodności typów, dlatego w kodzie napisanym w C++ trudniej jest popełniać błędy, co prowadzi nas do większego bezpieczeństwa aplikacji pisanych w tym języku. 

 

JAVA/ SPRING

Java to niekwestionowana królowa technologii bankowych, której nie trzeba nikomu przedstawiać. Świetnie sprawdza się w projektach, które wymagają bardzo wysokiego poziomu bezpieczeństwa i dużej wydajności. Ponadto odznacza się dużą stabilnością i często wykorzystuje się ją w dużych wdrożeniach. Tym co bardzo wyróżnia Javę, jest jej niezależność od architektury. Powstały kod jest niezależny od systemu operacyjnego i procesora, a wykonuje go tzw. wirtualna maszyna Javy, która (między innymi) tłumaczy kod uniwersalny na kod dostosowany do specyfiki konkretnego systemu operacyjnego i procesora. Taka uniwersalność sprawia, że wszędzie tam gdzie możliwe jest zainstalowanie wirtualnej maszyny, możliwe jest również korzystanie z Javy. 

 

JAVASCRIPT/ ANGULAR.JS

JavaScript, a właściwie framework tego języka, Angular.js jest najczęściej wybieraną technologią przy tworzeniu warstwy front-end aplikacji bankowych. JavaScript pozwala budować aplikacje webowe w technologii SPA - Single Page Application, która bardzo ułatwia intuicyjne korzystanie z aplikacji. Podobnie jak w przypadku pozostałych języków, Javascript jest bardzo stabilnym językiem, wspieranym od wielu lat. Zważywszy na to, że technologie front-endowe zmieniają się niemal z dnia na dzień i można wśród nich zauważyć duże rozwarstwienie, w kontekście stabilności i przewidywalności JavaScript wydaje się najbardziej optymalnym wyborem.

 

PYTHON

Python to technologia, którą wykorzystuje się najczęściej w obszarze sztucznej inteligencji i uczenia maszynowego, a także w analizie danych i data science. Jest to język bardzo szerokiego zastosowania, a biorąc pod uwagę, że banki coraz mocniej wykorzystują algorytmy AI, nie dziwi więc rosnąca popularność Pythona w tej branży. Python jest przyjazny matematyce, a przez to dobrze “rozumie się” właśnie z algorytmami finansowymi. Co ciekawe, wiele organizacji z obszaru fintech i core banking często wykorzystuje Pythona do analizy danych, a biorąc pod uwagę rosnącą konieczność współpracy technologicznej pomiędzy branżą bankową a pozostałymi instytucjami quasi finansowymi, można się spodziewać, że jego popularność w tym obszarze jeszcze wzrośnie.

 

Podsumowanie

To co jest bardzo znamienne w przypadku technologii bankowych, to fakt, że do tworzenia oprogramowania i poszczególnych komponentów wybiera się zazwyczaj języki długo wspierane i stosunkowo przewidywalne. Jako że systemy bankowe są skomplikowane i rozbudowane, banki rzadko decydują się na ich przepisywanie z jednej technologii na inną. W związku z tym kluczowa jest stabilność oraz gwarancja tego, że język będzie jak najdłużej wspierany, nierzadko jednak kosztem rozwoju technologicznego branży. Tym, co z pewnością będzie stanowić jedno z wyzwań dla bankowości na najbliższe lata, to znalezienie kompromisu pomiędzy korzystaniem ze sprawdzonych rozwiązań, bezpieczeństwem i stałością, a możliwością rozwoju i wykorzystania najnowszych technologii.


Co sprawia, że architektura mikroserwisów jest tak efektywna?

Od kilku lat na rynku IT możemy obserwować rosnącą popularność mikroserwisów, które powoli spychają na boczny tor dominującą do tej pory architekturę monolityczną. Struktura mikroserwisów, w przeciwieństwie do monolitu to zbiór wielu, niezależnych od siebie usług i procesów, które razem tworzą aplikację. Mikroserwisy to wygodne rozwiązanie przy tworzeniu zaawansowanego systemu lub dużych aplikacji - pozwala na szybkie wdrożenie projektu oraz równoległą pracę nad kilkoma modułami jednocześnie. Choć na mikroserwisach swoje rozwiązania oparli tacy giganci jak Netflix czy Uber, nie tylko to stanowi o niezwykłości tego podejścia.

Elastyczność
Mikroserwisy, w przeciwieństwie do architektury monolitów pozwalają na łatwą modyfikację funkcjonalności w projekcie. Ze względu na to, że każdy mikroserwis to niezależny element aplikacji, można zmieniać, dodawać i usuwać kolejne komponenty w taki sposób, by nie wpływało to na funkcjonowanie całości. Odpadają zatem takie problemy jak cykliczna zmiana testów automatycznych czy ryzyko zatrzymania całej aplikacji przy wdrożeniu następnego modułu.

Łatwa integracja
Otwarte API, wykorzystywane w architekturze mikroserwisów pozwala na szybką i bezproblemową integrację z innymi serwisami. Rozwiązanie takie jak API Gateway pośredniczy w komunikacji pomiędzy modułami, umożliwiając wygodne dostosowanie API pod konkretnych klientów, bez potrzeby umieszczenia go w każdym mikroserwisie.

Skalowalność
Podejście modułowe pozwala błyskawicznie i efektywnie reagować na dynamikę środowiska biznesowego - zmiana wymagań biznesowych nie oznacza restrukturyzacji całej aplikacji, a jedynie tego modułu, który dotyczy danej funkcjonalności. Ponadto w przypadku dużych obciążeń mikroserwisy pozwalają na sprawne zwiększenie liczby instancji, które balansują nadmiarowy ruch w aplikacji, co także adresuje problem wydajności.

Szybkie wdrożenie 
Mikroserwisy dają możliwość szybkiego releasu MVP systemu. Wdrożenie w pełni działającej, podstawowej i gotowej do dalszego rozwoju aplikacji jest przy tej architekturze kwestią kilku tygodni. Z kolei dodawanie kolejnych modułów i modyfikacja już istniejących nie komplikuje w żaden sposób możliwości korzystania z systemu przez klientów, ponieważ jest zwyczajnie mniej inwazyjne niż w przypadku monolitu i nie oddziałuje na core aplikacji.

Niezależny development i autonomia
Architektura rozproszona oznacza także niezależność zespołów projektowych. Nie ma tutaj centralnego ośrodka zarządzającego, dzięki czemu przepływ informacji jest płynniejszy. Każdy zespół pracuje nad “swoim” elementem aplikacji i nie musi brać pod uwagę baz danych czy architektury pozostałych modułów. Co ciekawe, mikroserwisy pozwalają na rozwijanie każdego elementu w innej technologii i języku, oraz utrzymanie serwisów na osobnych serwerach i w repozytoriach. Tak rozumiana niezależność rozwiązuje problem długu technicznego oraz zwiększa efektywność samego systemu.

 

Oczywiście, mikroserwisy nie są lekiem na całe zło. Póki co, nie istnieje architektura, która byłaby pozbawiona wad, a przy tym nadawałaby się do każdego typu aplikacji. Nie inaczej jest z mikroserwisami. W przypadku gdy rozważasz wdrożenie architektury mikroserwisów, kluczowym pytaniem, które powinieneś sobie zadać nie jest “Czy?”, tylko “Jak?”, bowiem nieprawidłowe opracowanie wymagań technicznych i struktury, czy brak przemyślanej obsługi ruchu pomiędzy serwerami, może wyrządzić ostatecznie więcej złego niż dobrego. Zaniedbanie tych kwestii na etapie planowania może spowodować klasyczne wylanie dziecka z kąpielą i w efekcie najprawdopodobniej okaże się, że architektura, która w założeniu miała wiele spraw ułatwić, tak naprawdę spędza sen z powiek wszystkim zainteresowanym. Warto wtedy rozważyć wsparcie partnera technicznego, który ma doświadczenie w tworzeniu rozwiązań opartych o mikroserwisy. Dzięki temu ominiesz wiele trudności związanych z wdrożeniem i jednocześnie będziesz mieć pewność, że czeka Cię sprawny release oraz system, który można modyfikować na tyle elastycznie, by na bieżąco dostosowywać się do szybko zmieniających się wymagań biznesowych.