Development \w Devpark from scratch - based on WiemCoMam
Development / DevPark news

WiemCoMam uruchomione

We wrześniu 2016 została uruchomiona pierwsza wersja portalu WiemCoMam. Poniżej zamieszczamy wywiad z klientem, który prezentuje jak z punktu widzenia właścicieli serwisu wyglądała współpraca z DevPark oraz opis managera projektu, jakie wyzwania czekały zespół developerski.


Izabela Grylewicz prezes zarządu WiemCoMam sp. z o.o.
Tomasz Dobak wiceprezes zarządu WiemCoMam sp. z o.o.

W skrócie – jakiego rodzaju portalem jest WiemCoMam.pl?

Izabela: Ideą portalu jest możliwość uzyskania przez klienta jak najlepiej dopasowanych ofert ubezpieczeniowych w stosunku do potrzeby i ceny. Dzięki utworzeniu aukcji, klient otrzyma bez wychodzenia z domu oferty od różnych agentów ubezpieczeniowych i w łatwy, przejrzysty sposób je porówna, wybierając najkorzystniejszą dla siebie. W innym przypadku wymagałoby to sporo czasu, aby zebrać i porównać oferty wielu różnych towarzystw ubezpieczeniowych.

Dlaczego wybraliście DevPark?

Tomasz: W trakcie planowania naszego projektu wiedzieliśmy, że musimy postawić na jakość. Wybraliśmy Devpark z kilku powodów, takich jak to, że realizują projekty dla firm ze Stanów Zjednoczonych (a jest to rynek mający opinię najbardziej wymagających klientów) oraz otrzymaliśmy dobre opinie na temat zrealizowanych przez DevPark projektów.

Jakie były największe wyzwania w realizacji projektu?

Izabela: Wyzwań było sporo. Ponieważ był to nasz pierwszy projekt informatyczny realizowany na taką skalę, potrzebowaliśmy firmy, która zaangażuje się i sprosta naszym potrzebom. Firmy, która będzie mogła nas wesprzeć w szerokim zakresie, zarówno pod względem rozwiązań technologicznych jak i samego sposobu efektywnego realizowania projektu.

Tomasz: Zespół specjalistów z DevPark bardzo nam pomógł. Już na etapie wstępnych rozmów otrzymaliśmy sporo informacji zwrotnych o tym, co jeszcze musimy uwzględnić, jakie możemy napotkać trudności, o czym warto pomyśleć. Ogrom spraw jaki został nam uświadomiony był spory, ale daliśmy radę wszystko wspólnie rozwiązać.

Czy jesteście zadowoleni z sposobu realizacji projektu?

Izabela: Bardzo. To, co zasługuje na uznanie to profesjonalne podejście i dotrzymywanie obietnic. Istotne było dla nas, aby termin realizacji pierwszej wersji serwisu był dotrzymany (czyli wrzesień 2016r). Dzięki zaangażowaniu i szerokiej wiedzy zespołu (w szczególności pana Marcina Nabiałka oraz Andrzeja Fenzel) wiele ważnych detali, z których nie zdawaliśmy sobie sprawy, zostało w projekcie uwzględnionych.

Tomasz: Jak widać, termin uruchomienia serwisu został dotrzymany. Jesteśmy zadowoleni ze współpracy, dlatego dalszy rozwój serwisu i pełna opieka techniczna będzie realizowana przez DevPark. Dzięki temu, my możemy się skupić na rozwoju Portalu mając pewność, że część techniczna jest w rękach profesjonalistów wysokiej klasy.

A jakieś minusy?

Izabela: No cóż… Programiści DevPark do najtańszych nie należą, ale za jakość obsługi oraz terminowość realizacji projektu, którą otrzymaliśmy – gdybym miała wybrać ponownie – znowu padłoby na DevPark.


Marcin Nabiałek – project manager projektu WiemCoMam.pl

Byłeś odpowiedzialny za realizację projektu od podstaw. Jakie były największe wyzwania z Twojego punktu widzenia?

Marcin: Jeśli chodzi o realizację projektu – wyzwań było kilka. Przede wszystkim branża ubezpieczeniowa to dosyć rozległa dziedzina, więc trzeba było na początek zrozumieć jak wygląda praca agentów ubezpieczeniowych i w jaki sposób przebiega sam proces zawierania ubezpieczenia.
Dla przykładu – w przypadku ubezpieczenia samochodu, to jakie informacje muszą być zebrane od klienta przed przedstawieniem oferty ubezpieczenia może zależeć od wielu czynników, w tym od firmy ubezpieczeniowej, której ofertę chcemy przedstawić.

Dużym wyzwaniem było takie zaprojektowanie interfejsu użytkownika, aby wystawianie aukcji i wszystkie operacje powiązane z nią były dla osoby korzystającej z serwisu jak najbardziej przejrzyste i łatwe do wykonania. Myślę, że osiągnęliśmy w tym sukces – to co z punktu widzenia realizacji projektu jest skomplikowanym procesem – dla użytkownika końcowego wygląda na coś prostego w obsłudze i działaniu.

Dodatkowo, na co warto zwrócić uwagę, serwis realizowany był etapowo i poszczególne etapy były udostępniane Agentom Ubezpieczeniowym na długo przed całościowym uruchomieniem pełnej funkcjonalności. Oznaczało to konieczność realizacji pewnych części systemu od razu tak jak będą wyglądały docelowo. Co się z tym wiązało, to z jednej strony konieczność testów i zmian w już udostępnionej funkcjonalności, dbanie o jej stabilność oraz jednocześnie pracę nad kolejnymi elementami serwisu, które dopiero będą udostępnione. Był to proces bardzo dynamiczny, ponieważ już w trakcie realizacji nanoszone były zmiany adekwatnie do sugestii użytkowników. Miało to ogromy wpływ na harmonogram prac. Na szczęście dzięki doświadczeniu oraz zaangażowaniu zespołu, cały proces był pod kontrolą.

Jak wyglądał proces realizacji takiego projektu?

Marcin: Jednym z najważniejszych etapów realizacji było określenie wymagań klienta, co do całości funkcjonowania serwisu. Mimo, że początkowo zespół WiemCoMam miał wizję działania serwisu, to mimo wszystko, z punktu widzenia programisty i project managera była to wizja dosyć ogólna, której nie dało się jeszcze przełożyć na funkcjonującą aplikację.

Konieczne było zatem wydzielenie najważniejszych elementów serwisu, rozmowy z klientem, dostrzeżenie potencjalnych problemów lub szczególnych przypadków w funkcjonalności,
których nie można było dostrzec na pierwszy rzut oka, zaproponowanie rozwiązań i ponowne rozmowy z klientem.
Sam proces tworzenia specyfikacji był mocno iteracyjny. Kładliśmy duży nacisk na dobre przygotowanie dokumentacji, ponieważ przy tej skali projektu łatwo o nieporozumienia. Jak można się domyślić, nie był to proces krótki, ale dzięki temu już w momencie planowania serwisu udało się rozwiązać i przewidzieć wiele sytuacji, których rozwiązanie na późniejszym etapie byłoby na pewno trudniejsze i bardziej pracochłonne. W tej fazie zostały wybrane również technologie w których został zrealizowany serwis.

Całościowym efektem tego etapu prac jest ponad 150-stronicowa dokumentacja z założeniami funkcjonowania serwisu WiemCoMam, zawierająca liczne diagramy i modele wyglądu serwisu – a to nie wszystko, bo dochodzi jeszcze dokumentacja techniczna.

Jaką architekturę wybraliście?

Marcin: Serwis został zrealizowany w technologii klient-serwer, co daje największe możliwości rozbudowy serwisu w przyszłości i w razie potrzeby dodania kolejnych
aplikacji, jak na przykład dedykowanych aplikacji na telefony komórkowe. Jako warstwa klienta został wybrany AngularJS, a jako warstwa serwera (API) – popularny na całym świecie, jednak nie doceniany jeszcze w Polsce – framework Laravel, działający na wersji PHP 7.

Jak przebiegał sam proces pisania kodu, ilość programistów?

Marcin: Po etapie podzielenia realizacji serwisu na sprinty (SCRUM) przeszliśmy do zaplanowania harmonogramu prac. W całym procesie realizacji serwisu ze strony DevPark wzięło udział w sumie 8 osób, z czego 5 programistów.
Mimo, że zakres prac każdej z osób nie był taki sam, to konieczne było takie rozplanowanie zadań, aby móc zrealizować w terminach poszczególne etapy serwisu, a jednocześnie przydzielić każdej z osób pewien zakres funkcjonalności, bez ścisłego powiązania z pozostałymi częściami, nad którymi pracował inny programista.
Dzięki takiemu podziałowi prac, każda z osób czuła się bardzo mocno odpowiedzialna za swój zakres zadań i realizowała go z największą starannością, co przełożyło się na efekt końcowy – działający serwis WiemCoMam, który można zobaczyć w tym momencie.

Sam proces realizacji, jak zostało już wspomniane, wymagał uwzględnienia faktu, że pewne elementy serwisu będą oddawane do użytku jeszcze przed całościowym zakończeniem prac.
Dlatego też konieczne było odpowiednie przygotowanie techniczne projektu tak, aby móc w sposób optymalny prowadzić działania programistyczne, testowanie, nanoszenie poprawek.
W tym celu zostały przygotowane 3 niezależne środowiska – środowisko developerskie, środowisko przedprodukcyjne oraz środowisko produkcyjne – zupełnie niezależne od siebie, wraz z automatycznym wgrywaniem i aktualizacją projektu na serwerze.

Taki sam zestaw środowisk został przygotowany zarówno dla backendu (REST API w Laravel), jak również dla frontendu (AngularJS), co daje bardzo dużą elastyczność, jeśli chodzi o sam proces zarządzania projektem i testowania nowych funkcji, zarówno przez zespół DevPark jak i zespół WiemCoMam.

Sam proces rozbudowy portalu trwa nadal. Już teraz wiemy o kolejnych rodzajach ubezpieczeń które pojawią się w serwisie, dlatego jeśli tylko potrzebujesz ubezpieczenia – zapraszamy na WiemCoMam. My polecamy 🙂

Z punktu widzenia developmentu – jaka część była najtrudniejsza?

Marcin: Jednym z największych wyzwań było przygotowanie odpowiedniej struktury bazy danych, która do pewnego stopnia przygotuje aplikację na wszystkie przyszłe zmiany i nowe funkcje (a wiemy, że będzie ich sporo).

Takie same założenia trzeba było przyjąć w przypadku samej aplikacji. Już sam kod aplikacji został podzielony na niezależne moduły, aby łatwiej było nim zarządzać. Każdy element aplikacji został dodatkowo zaprojektowany z myślą, aby zmiany były jak najłatwiejsze bez ingerencji w pozostałe elementy systemu, jednocześnie unikając duplikacji kodu. Przykładem może być tutaj rejestracja użytkowników. W serwisie można zarejestrować kilka typów kont użytkowników (nie wszystkie są publicznie dostępne), a każde konto ma jeszcze swoje podtypy. Dzięki odpowiedniemu przygotowaniu aplikacji, kod jest nadal dosyć przejrzysty i łatwy w utrzymaniu.

Z uwagi na dynamikę zmian, niezbędnym etapem realizacji było ręczne testowanie samych procesów zarówno przez zespół DevPark, jak i zespół WiemCoMam.
Jednak bardzo ważnym elementem w sprawnej realizacji projektu oraz dokonywaniu zmian i dodawaniu nowych funkcji są automatyczne testy API, które to są uruchamiane automatycznie zawsze przed opublikowaniem zmian na którymkolwiek ze wspomnianych wcześniej serwerów.
Na szczęście framework Laravel jest dosyć dobrze przygotowany pod tym kątem, dzięki czemu pisanie testów było stosunkowo przyjemne, chociaż dosyć pracochłonne.

Warto wspomnieć, że w tym momencie jest już blisko 1200 testów, a nowe testy są dodawane cały czas wraz z każdą nową funkcjonalnością. Wspomniane testy są bardzo dokładne, dzięki czemu nawet mała – wydawać by się mogło – niegroźna zmiana w funkcjonowaniu API powodująca błąd, jest wyłapana. Dzięki temu już na etapie realizacji można było uniknąć wielu problemów, które normalnie nie zostałyby dostrzeżone.

Tak duża ilość dokładnych testów miała oczywiście wpływ na koszty realizacji serwisu. W DevPark wierzymy jednak, że najważniejsze jest bezbłędne działanie aplikacji (i tym samym satysfakcja klienta), nawet jeśli oznacza to nieco wyższe koszty, niż tworzenie projektu bez testów, nad którym tak naprawdę nikt nie ma kontroli.