Architektura mikroserwisowa, stosowana jest najczęściej w przypadku dużych, rozbudowanych i skomplikowanych systemów informatycznych, wymagających wielokierunkowych prac rozwojowych. W ramach jednego, zintegrowanego systemu działają niezależne aplikacje obsługujące konkretne działy, funkcje lub procesy biznesowe. Mikroserwisy są od siebie niezależne biznesowo i technologicznie, dzięki czemu mogą być rozwijane równolegle, przez różne zespoły projektowe. W celu wprowadzenia nowej funkcji w jednym obszarze, nie ma potrzeby zmian w innych obszarach, a ewentualne problemy, wynikające z rozwoju poszczególnych modułów, nie powodują więc zakłóceń w działaniu całego systemu.

Zaletą takiego podejścia jest również możliwość wprowadzania nowatorskich rozwiązań technologicznych w poszczególnych mikroserwisach – bez olbrzymich nakładów pracy przy dostosowaniu całego system do tych zmian naraz. Rozwiązanie takie, jeśli jest taka potrzeba, może być następnie wykorzystane w innych obszarach systemu, ale może być również ograniczone tylko do jednego mikroserwisu.

Model ten ułatwia także organizację prac deweloperskich – nad każdym mikroserwisem pracuje inny, kilku lub kilkunastoosobowy zespół projektowy. Bardzo dużą zaletą takiego rozwiązania jest jasny podział odpowiedzialności – każdy zespół odpowiada za całościowy rozwój swojego mikroserwisu. Daje to dużą niezależność i skutkuje dużym zaangażowaniem członków zespołu.

Jak to działa w praktyce?

Klient, firma z sektora finansowego, posiadała przestarzały system informatyczny, z którego korzystała już od 40 lat. Z uwagi na to, że system ten obsługiwał kluczowe dla funkcjonowania firmy procesy, klient zdecydował o konieczności wdrożenia nowego rozwiązania. W tym celu zwrócił się do jednej z wiodących niemieckich firm konsultingowych, CORE Transform GmbH, specjalizującej się w strategicznym zarządzaniu transformacją cyfrową. Analiza potrzeb firmy zaowocowała koncepcją wdrożenia systemu, opartego na nowoczesnej architekturze, wykorzystującej mikroserwisy.

„System miał zostać zaprojektowany i rozwijany w taki sposób, żeby był maksymalnie uniwersalny: w tym momencie klient docelowy działa w branży finansowej w modelu B2B, ale oczekuje że – po niewielkich modyfikacjach – będzie mógł użyć tych samych narzędzi do realizacji jakichkolwiek innych usług w zakresie swojej działalności” – Radosław Szmit, International Business Manager w JCommerce SA.

Zespół JCommerce

Firma CORE, która specjalizuje się w usługach konsultingowych i pośredniczeniu między klientami a firmami dostarczającymi rozwiązania IT, zwróciła się do JCommerce z propozycją realizacji projektu wdrożenia kilku mikroserwisów w tym projekcie. Efektem błyskawicznej reakcji JCommerce było stworzenie pierwszego silnego zespołu specjalistów, niezbędnych do realizacji projektu pilotażowego. W jego skład weszli: koordynator projektu, SCRUM masterzy, architekt, analityk biznesowy, specjaliści Front-End, programiści Java oraz testerzy.

Sukces pierwszego projektu zaowocował rozwojem współpracy, opartej o outsourcing IT i stworzeniem kolejnych zespołów, którym powierzono prace nad czterema mikroserwisami, odpowiedzialnymi za następujące obszary działania firmy:

  • kontrakty,
  • billing & accounting,
  • obsługa zgłoszeń klienta,
  • konfiguracja i negocjowanie umów.

Obecnie zespoły składają się w sumie z 25 specjalistów JCommerce, planowane jest jednak stworzenie kolejnych.

Organizacja projektu

Osoby odpowiedzialne za projekt pochodzą z trzech różnych firm. Do zadań specjalistów firmy CORE należy organizacja prac – tak, żeby poszczególne zespoły sprawnie realizowały swoje zadania w czasie określonym w harmonogramie. Po stronie klienta docelowego w projekt zaangażowanych jest natomiast kilku Business Expertów – każdy jest odpowiedzialny za inny mikroserwis. Osoby te przedstawiają potrzeby, czyli wymagania biznesowe w danym obszarze. Nie są to jednak osoby techniczne, nie są więc w stanie przedstawić technologicznego sposobu realizacji swoich oczekiwań. W zespołach JCommerce pracują więc analitycy biznesowi, których zadaniem jest „tłumaczenie” życzeń klienta na możliwości techniczne i realia biznesowe.

Zespoły działają w dużym stopniu samodzielnie – wykorzystując metodykę Scrum, a więc organizowane są wszystkie zalecane spotkania (Daily, Grooming, Sprint planning, Estymacja, Demo), ale poza tym generalne spotkania wszystkich zaangażowanych stron organizowane są rzadko.

W projekcie nie ma czegoś takiego jak sztuczne, cykliczne spotkania, ponieważ z doświadczenia wiem, że są mało efektywne. Nasza codzienna komunikacja opiera się na otwartości i wzajemnym zaufaniu: gdy członkowie zespołu, rozrzuconego przecież po różnych biurach naszej firmy w całym kraju, potrzebują omówić jakiś aspekt techniczny czy problem, po prostu dzwonią do siebie, gdy tylko jest taka potrzeba. Podobnie sytuacja ma się z komunikacją w tym projekcie, zarówno z pracownikami CORE jak i klienta końcowego”. – Igor Karkoszka, Scrum Master w JCommerce – „To, co cechuje naszą współpracę, to zaufanie; często sami proponujemy nowe rozwiązania czy technologie, na których zastosowanie i wykorzystanie klient nierzadko się zgadza. Dzięki takiemu podejściu, zacieśnia się więź współpracy i odpowiedzialności za projekt, a co za tym idzie – zwiększa zaangażowanie każdej ze stron w wykonywane zadanie”.

Współpracę ułatwia też elastyczność JCommerce pod kątem składu zespołu, np. kiedy są potrzebni kolejni specjaliści, w przypadku konieczności organizowania zastępstw chorobowych lub zmiany jednej technologii na drugą.

Komunikacja i wymiana informacji

Bardzo ciekawym aspektem współpracy jest kooperacja między trzema zaangażowanymi stronami: klientem docelowym, firmą konsultingową i partnerem technologicznym. Ze względu na wysoki poziom skomplikowania projektu, współpraca ta musi opierać się na sprawnej komunikacji i zaufaniu, a także dużej elastyczności w komunikacji i planowaniu, bez których nie byłoby możliwości pracy w takim modelu.

Bieżący przepływ ogólnych informacji formalnych i komunikacja ogłoszeń odbywa się za pośrednictwem poczty email, a także platformy Slack. Skype natomiast wykorzystywany jest do komunikacji głosowej i tekstowej adhoc. Stworzone zostały dedykowane kanały z odpowiednimi grupami osób (np. cały zespół, developerzy, osobny kanał dla analityków do kontaktu z klientem końcowym, itd.), dzięki czemu komunikaty docierają do właściwych osób, szanując czas reszty zespołu.

Oprócz ogólnych narzędzi poszczególni członkowie zespołów wykorzystują wyspecjalizowane rozwiązania pod konkretne cele komunikacyjne, są to:

  • JIRA – do zarządzania zadaniami i wymaganiami oraz realizacji procesu Scrumowego, a także do doprecyzowania wymagań;
  • Bitbucket Server – do przechowywania i wersjonowania kodu, a także technicznych specyfikacji (np. formatu zapytań REST etc.);
  • TestLink – do przechowywania procedur testowych;
  • Confluence – do dotworzenia dokumentacji i informacji ogólnych dla projektu.

Korzyści biznesowe

  • po stronie klienta końcowego jest to przede wszystkim dostęp do wysokiej klasy specjalistów, mocno zaangażowanych w realizację zadań, dzięki temu, że mogą realizować je w dużym stopniu samodzielnie;
  • specjaliści partnera technologicznego (JCommerce) wnoszą swoje doświadczenie i znajomość najnowszych rozwiązań, korzystając również z doświadczenia projektowego partnera konsultingowego (firmy CORE), a także zdobywają wiedzę domenową z branży klienta docelowego;
  • firma CORE ma z kolei możliwość współpracy z zaangażowanym partnerem technologicznym, który jest w stanie zrealizować ambitne założenia projektowe, których celem jest dostarczenie w pełni satysfakcjonującego systemu dla klienta docelowego.
Autorem wpisu jest:
Paweł Smagała

Z branżą IT związany od 10 lat. Absolwent Wydziału Informatyki Uniwersytetu Śląskiego. Zarządzał projektami z różnych branż, od systemów alarmowych w chmurze do systemów autonomicznej jazdy. Ma duże doświadczenie w prowadzeniu analizy biznesowej, projektowaniu i implementacji aplikacji mobilnych oraz kierowaniu zespołami specjalistów.

Dodaj komentarz

Komentarze:

Skontaktuj się z nami

Chcesz dowiedzieć się więcej o naszych usługach? Napisz do nas – odpowiemy na każdą wiadomość.

Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
• w celach handlowych,
• w celach marketingowych,
• w celach rekrutacyjnych;
• w celach przyszłych rekrutacji.
3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.