Mikroserwisy – nowa
jakość w międzynarodowych projektach IT

Artykuły eksperckie | 10.05.2017 | Czas czytania: 7 minut

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:

  1. kontrakty,
  2. billing & accounting,
  3. obsługa zgłoszeń klienta,
  4. konfiguracja i negocjowanie umów.

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

Potrzebujesz doświadczonego specjalisty IT lub całego zespołu? Masz pytania?

 

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, JCommerce

Scrum Master

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. 

Komentarze

  • Aktualnie brak komentarzy.

Skontaktuj się z nami