Usługi wsparcia technologicznego dla Kanady

Klient z Kanady | Case studies | 22.04.2015 | Czas czytania: 5 minut

Jak szybko rozpocząć działania projektowe bez konieczności dodatkowego szkolenia własnych programistów i ponoszenia wysokich kosztów stałego zatrudnienia nowych? Czy warto postawić na outsourcing?

Kanadyjski Klient poszukiwał profesjonalnego zespołu, który stworzy od podstaw nowoczesną aplikację internetową (webową). Jednym z głównych wymagań było znalezienie doświadczonego Front-End Developera oraz UX Lead Designer’a, którzy mieli zapewnić wizualną atrakcyjność oraz intuicyjność obsługi tworzonej aplikacji. Elementem decydującym o poszukiwaniu partnera biznesowego była perspektywa obniżenia kosztów, dzięki przeniesieniu wybranych działań firmy za granicę i korzystaniu z usług dedykowanych specjalistów (outsourcing).

Dzięki skorzystaniu z usług wsparcia technologicznego Klient miał możliwość rozpoczęcia działań projektowych bez potrzeby dodatkowego szkolenia swoich developerów (m.in. transition phase) oraz ponoszenia kosztów stałego zatrudnienia, nowego zespołu doświadczonych programistów.

Ostatecznie w zespole projektowym JCommerce znaleźli się:

  • UX Lead Designer (Lider Techniczny)
  • Front-End Developer
  • Java Senior Developer
  • Java Professional Developer

Odpowiedni model realizacji projektu outsourcingowego

Projekt w swoich początkowych założeniach łączył dwa modele współpracy outsourcingu: Team Extension oraz Development Outsourcing. Takie podejście pozwoliło utworzyć dedykowany zespół wokół Lidera Technicznego, który docelowo był jedynym łącznikiem polskiego zespołu z osobą kontaktową po stronie Klienta. Współpraca naturalnie ewoluowała z modelu Team Extension w model Development Outsourcing – stało się to w momencie, kiedy zespół poznał dokładnie charakterystykę środowiska projektowego oraz zakres wymagań.

Od samego początku współpracy modelem rozliczeniowym pomiędzy Klientem a JCommerce był Time&Material, który wyróżnia możliwość stałego wglądu Klienta
w wykonywane działania oraz bieżące raportowanie zrealizowanych czynności. Umożliwiło to transparentność i kontrolę wykonywanych zadań projektowych.

Słownik pojęć

Team Extension – typ współpracy mający na celu rozszerzenie lokalnego zespołu o specjalistów JCommerce, w którym to Klient wyznacza i egzekwuje powierzone zadania. Lokalny zespół projektowy i zespół JCommerce pracują jako jeden.
Development Outsourcing – rozwój istniejącego projektu przez zespół specjalistów JCommerce. W pierwszym etapie zadania projektowe zostają zaprojektowane przez lokalny zespół w ścisłej współpracy z Klientem końcowym. Kiedy wymagania i cele są jasno określone i zatwierdzone, projekt jest przekazywany do zespołu specjalistów JCommerce, który kontynuuje jego rozwój i jest odpowiedzialny za prawidłowe wdrożenie oraz dodawanie kolejnych usprawnień.
Time&Material – metoda rozliczania projektu, w której koszt usług naliczany jest w oparciu o stawkę godzinową oraz bezpośrednie zaangażowane i zakupione materiały.

Scrum w pracach programistycznych

Metodologia Scrum jest jednym z najszybciej zdobywających popularność sposobów realizacji zwinnego (ang. agile) podejścia do produkcji oprogramowania.

Specjaliści JCommerce korzystają z niej do planowania i kontroli przebiegu prac. W każdym realizowanym projekcie zespół przedkłada ludzi i interakcje ponad procesy i narzędzia, działające oprogramowanie ponad obszerną dokumentację, współpracę z Klientem ponad formalne ustalenia oraz reakcję na zmiany ponad podążanie za planem. Podstawowym założeniem jest to, że uzgodniony czas, budżet i jakość projektu są nieprzekraczalne. Parametrem, który pozwala na sprawne zarządzanie projektem jest zakres wymagań Klienta.

Komunikacja wewnętrzna vs komunikacja zewnętrzna

Po pierwsze: przekroczyć bariery językowe
Zespół projektowy w komunikacji wewnętrznej posługiwał się językiem polskim, a w komunikacji z Klientem językiem angielskim. Jednym z wymagań względem członków zespołu była płynność władania językiem angielskim, co miało wyeliminować komplikacje wynikające z wzajemnego niezrozumienia.

Po drugie: być niezależnym od lokalizacji
Kontakt między zespołem JCommerce a klientem odbywał się dzięki wykorzystaniu narzędzia do prowadzenia rozmów video - Google Hangouts. Wideokonferencje organizowano raz lub dwa razy w tygodniu. Zespół prezentował wówczas wykonane prace i przedstawiał nowe pomysły, Klient przekazywał swoje uwagi i sugestie dotyczące realizacji konkretnych zadań.

Po trzecie: dać możliwość wglądu w realizację zadań Klientowi
Do raportowania wykonanych zadań używany był serwis iDoneThis. Co więcej, iDoneThis był zintegrowany z GitHubem - czyli repozytorium kodu źródłowego.

Technologie i narzędzia użyte w projekcie:

GitHub – hostingowy serwis internetowy służący za repozytorium kodu, pokazuje listę commitów - zestawu plików z kodem źródłowym wysłanym do repozytorium, które potwierdzają wykonane zadania danego dnia

MongoDB – wydajna i skalowalna baza danych z dynamiczną strukturą danych

Jersey – narzędzie umożliwiające łatwą i sprawną implementację wzorca architektury oprogramowania (RESTful Web Services)

Gradle – elastyczne narzędzie do budowania projektu i zarządzania zależnościami

Eclipse – środowisko programistyczne dla języka Java

Jenkins – serwer mający na celu częste, regularne włączanie (integracje) bieżących zmian w kodzie do głównego repozytorium

WebStorm – środowisko programistyczne do tworzenia aplikacji webowych

AngularJS – framework JavaScript umożliwiający szybkie tworzenie zaawansowanych aplikacji webowych typu Single Page App

Bootstrap – popularny framework front-end

Metodologia Scrum - dzieli prace dedykowanego zespołu na krótsze iteracje trwające od tygodnia do miesiąca, po których dostarczane są kolejne, bardziej dopracowane części rozwiązania finalnego. Każdy z okresów procesu projektowania nazwany jest Sprintem, wyznaczanym po analizie listy wymagań użytkownika oraz priorytetyzacji wymagań przez Właściciela Produktu. Podział pracy w danym projekcie odbywa się według planowania Sprintu (Sprint Planning). Każdy Sprint kończy się spotkaniem podsumowującym, na którym prezentowane są wyniki zakończonych zadań. Integralną częścią prac wg. metodologii Scrum jest przeprowadzanie codziennych maksymalnie 15-minutowych spotkań, które podsumowują prace dnia poprzedniego i planują zadania na dzień bieżący.

Wyzwania w projekcie

Programiści JCommerce twierdzą, że jednym z największych wyzwań był prototypowy charakter aplikacji oraz konieczność wielokrotnych modyfikacji interfejsu użytkownika. Utrudnieniem w pracach projektowych bywały też nieregularne spotkania z Właścicielem Produktu (Product Owner), co wpływało na brak konkretyzacji wymagań dotyczących kolejnych etapów prac. Zdarzało się wtedy, że zespół przyjmował najlepsze wg siebie założenia, które nie zawsze stuprocentowo pokrywały się z oczekiwaniami Klienta. W pewnych fazach projektu niektórzy członkowie zespołu byli nierównomiernie obciążeni zadaniami, które dotyczyły różnych warstw back-endowych i front-endowych. Rozwiązaniem okazało się poszerzenie kompetencji poszczególnych osób, co zrównoważyło podział prac umożliwiając jednocześnie rozwój pracownikom. Mimo występowania utrudnień projekt zrealizowany został w wyznaczonym terminie, z zachowaniem standardów jakościowych i w przyjętych ramach budżetowych.


Jak klient ocenił współpracę?

W okresie blisko dwuletniej współpracy odbyły się 4 rozmowy ewaluacyjne na poziomie programistów i managementu. Informacja zwrotną, którą otrzymała firma JCommerce była jasna. Mimo początkowych obaw związanych z realizacją zadań offsite (w siedzibie w Katowicach) przez polskich programistów, współpraca oceniona została bardzo wysoko. Wpływ na to miały przede wszystkim:

  • Aktywna, dwustronna komunikacja,
  • Jasno zdefiniowane oczekiwania,
  • Stabilność finansowa obydwu partnerów.


Aspekty geograficzne i kulturowe

Ku obopólnemu zaskoczeniu nie dostrzeżono problematycznych różnic kulturowych między zespołem kanadyjskim a pracownikami JCommerce. Jedyną niedogodnością była zmiana stref czasowych, jednakże dzięki sprawnej organizacji i ten problem udało się łatwo rozwiązać. Spotkania online odbywały się w określonych porach - godzinach wczesnoporannych czasu polskiego (np. 7:00 rano, 23:00 czasu Calgary) lub późnym popołudniem czasu polskiego (np. 17:00, 9:00 czasu Calgary). Współczesne narzędzia znacznie ułatwiły pracę zdalną. Programiści wskazywali czasem, że brakuje im bezpośredniego kontaktu z Klientem, dzięki czemu można byłoby znacznie skrócić czas podejmowania decyzji. Rozwiązaniem okazały się w tym przypadku niezbyt częste, ale regularne osobiste spotkania z Klientem zarówno w Polsce jak i w Kanadzie.


Klient

Kanadyjska firma działająca w branży w IT, specjalizująca się w dostarczaniu rozwiązań dedykowanych, systemów Business Intelligence i ERP, automatyzacji procesów biznesowych dla kluczowych przedstawicieli branży telekomunikacyjnej i wydobywczej.

Autorem wpisu jest

Andrzej Leśkiewicz, JCommerce SA

Senior JAVA Developer

Absolwent wydziału EAIiE krakowskiego AGH, od 8 lat zawodowo związany z programowaniem. Swoje pierwsze szlify zbierał współpracując z portalem interia.pl, od czterech lat związany z JCommerce. Szczęśliwy mąż i ojciec. Entuzjasta nowych technologii i technik programowania związanych z JVM. Propagator zasad czystego kodu oraz architektur mikroserwisowych.

Komentarze

  • Aktualnie brak komentarzy.

Skontaktuj się z nami