Metodologia pracy

Systemy prowadzenia projektów i rozliczanie

METODYKI PROWADZENIA PROJEKTÓW I UŻYWANE NARZĘDZIA

Projekty prowadzimy zwykle w oparciu o metodykę SCRUM. Na życzenie klienta możemy zastosować metodykę PRINCE2. Posiadamy w swoim zespole osoby certyfikowane w tej metodyce. Używając SCRUM-a organizujemy pracę zgodnie z podejściem AGILE. Cały zakres projektowy dzielimy na etapy a wdrożenie projektu polega na realizacji, odbiorze i zamykaniu poszczególnych etapów. W AGILE kładziemy również nacisk na schemat działania, hierarchię przepływu informacji oraz stosowanie user-stories i use-cases jako pomocnych metod do opisu poszczególnych składowych projektu.

W projektowaniu wykorzystujemy również makiety interfejsu oraz projekty graficzne do stworzenia zakresu wymagań całego projektu. Przy dużych realizacjach oferujemy również nieodpłatne spotkania konsultingowe w celu usystematyzowania zakresu oraz stworzenia studium wykonalności (feasibility study). Doradzamy również w zakresie UX.

Przy prowadzeniu projektów korzystamy z nowoczesnych metod ewidencji zgłoszeń i uwag. Dzięki system JIRA czy Redmine nie toniemy w setkach maili a wyszukanie odpowiedniego tematu, który był dyskutowany zajmuje kilkanaście sekund.

W naszych projektach stawiamy na przeprowadzenie bardzo szczegółowej analizy wymagań i zbudowanie jasnej wizji działania projektowanego systemu. Wszędzie gdzie to możliwe rekomendujemy przeprowadzenie prac analitycznych jako odrębnej usługi przed ostateczną wyceną, przyjęciem harmonogramu oraz rozpoczęciem głównych prac projektowych. Takie podejście umożliwia w bardzo precyzyjny sposób oszacować ilość pracy oraz czasu na wykonanie projektu a także minimalizuje ryzyko wystąpienia nieporozumień na etapie wykonawczym.

Wdrożenia systemów opieramy na klasycznym cyklu życia projektu. Zwykle projekt rozpoczyna się od spotkania z klientem w konwencji brainstorming. Na tym etapie powstaje dość ogólny zarys projektu oraz mapa myśli. Następnie w zależności od decyzji zleceniodawcy przeprowadzona zostaje analiza presale umożliwiająca określenie wstępnych ram budżetowych lub pełna analiza pozwalająca na dokładne określenie budżetu oraz ustalenie harmonogramu. Jeśli klient posiada przygotowany wcześniej brief to prace analityczne przebiegają sprawniej i wydajniej gdyż koncertujemy się specyficznych wymaganiach.
Na podstawie badania potrzeb i wymagań po analizie następuje etap uzgadniania warunków umowy. W tej fazie uzgadniany jest budżet, etapy projektu, harmonogram, kamienie milowe, szkolenia pracowników oraz warunki gwarancji i poziom opieki powdrożeniowej. W umowie określamy również odpowiedzialność stron za poszczególne elementy projektu, np. kto jest odpowiedzialny za dostarczenie platformy sprzętowej pod projekt, certyfikatu SSL czy zestawienia tunelu VPN do wymiany danych pomiędzy systemami.
Po podpisaniu umowy następuje start projektu. Jeśli zamawiający nie zlecił pełnej analizy wymagań przed podpisaniem umowy głównej to pierwszym krokiem w cyklu życia projektu jest przeprowadzenie dogłębnej analizy, która zwykle kończy się sporządzeniem dokumentu. Analiza daje odpowiedź na fundamentalne zagadnienia projektowe i jest jednym z najważniejszych etapów przedwdrożeniowych.
Po fazie analizy następuje faza projektowania. W tej fazie powstaje schematyczny projekt systemu, diagramy ERD, diagramy funkcji i procesów oraz makiety niezbędne do symulacji use-case oraz do wykonania projektu graficznego.
Na tym etapie powstają projekty graficzne. Klient otrzymuje zwykle 2-3 propozycje graficzne strony głównej. Czasami udostępniamy również kilka propozycji graficznych innych podstron, takich jak karta produktu czy listy produktowe. Uzgodniona wersja graficzna projektu jest poszerzana o kolejne podstrony systemu. Po akceptacji wersji desktop przygotowujemy kolejne projekty graficzne RWD dla tabletów oraz smartfonów. Posiadanie strony responsywnej od kilku lat must-have ze względu na przyjęty standard oraz fakt, że Google lepiej pozycjonuje takie strony.
Po akceptacji projektu graficznego następuje etap programowania dodatkowych funkcjonalności i modułów. Z reguły etap programowania i wdrażania systemu może rozpocząć się przed akceptacją projektu graficznego, szczególnie gdy chodzi o oprogramowanie funkcjonalności backendu do których niepotrzebna jest grafika. W zależności od ilości, stopnia skomplikowania oraz trudności w implementacji rozszerzeń systemowych ten etap zaliczany jest do najdłuższych i najbardziej pracochłonnych. W tej fazie zwykle potrzebujemy cyklicznego kontaktu z klientem w celu potwierdzenia i akceptacji poszczególnych faz realizacji.
Po zakończeniu etapu wdrażania i programowania, ekipa wykonawcy przystępuje do testów wewnętrznych. Wszystkie błędy i uwagi zgłaszane są do systemu Redmine w celu szczegółowej kontroli przebiegu prac. Etap ten kończy się wykonaniem kopii systemu ze środowiska developerskiego na środowisku testowym. Następnie klient dostaje dostępy i instrukcje do systemu w celu przeprowadzenia testów końcowych. Przekazanie systemu do testów bardzo często zbiega się ze szkoleniami dla klienta.
W zależności od złożoności i wielkości systemu, po zakończeniu testów prowadzonych przez klienta oraz realizacji poprawek i ustabilizowaniu platformy, system jest przenoszony do środowiska produkcyjnego. Przy mniejszych systemach oraz mniejszych budżetach występują tylko 2 środowiska: developerskie oraz produkcyjne.
Po wdrożeniu systemu do środowiska produkcyjnego następuje faza produkcyjna i związany z nią etap utrzymania systemu. W większości wdrożeń podpisywana jest umowa SLA (service level agreement), która gwarantuje klientowi odpowiedni poziom świadczonych usług w przypadku awarii systemu lub potrzeby rozbudowy. Warunki ustalone w SLA gwarantują m.in. odpowiednie czasy reakcji i naprawy w przypadku problemów z systemem. SLA może również zawierać pewną pulę godzin przeznaczoną na rozwój systemu.
Każdy system, nawet najbardziej wyrafinowany i nowoczesny podlega procesowi „starzenia technologicznego”. Na pewnym etapie trzeba taki system wymieć na nowy lub przebudować oraz wzbogacić o dodatkowe funkcje. Jest to etap rozwoju systemu. Zmiany w systemie robi się na podstawie tzw. change-requestów, które opisują nowe funkcje do zaprogramowania i implementacji. Zmiany w funkcjonującym produkcyjnie systemie są bardziej kłopotliwe w implementacji niż programowanie funkcji w nowej, jeszcze nie wdrożonej platformie. Aby uniknąć problemów stosuje się środowiska developerskie i testowe przed wrzuceniem zmian na produkcje. To zapewnia odpowiedni poziom przetestowania nowych modułów przed użyciem ich w systemie produkcyjnym. Wspomniane wcześniej SLA może zawierać pulę godzin na rozwój systemu, jeśli klient planuje cykliczne wprowadzenie ulepszeń i zmian. W innym przypadku change-requesty są wyceniane osobno.
1Koncepcja

Wdrożenia systemów opieramy na klasycznym cyklu życia projektu. Zwykle projekt rozpoczyna się od spotkania z klientem w konwencji brainstorming. Na tym etapie powstaje dość ogólny zarys projektu oraz mapa myśli. Następnie w zależności od decyzji zleceniodawcy przeprowadzona zostaje analiza presale umożliwiająca określenie wstępnych ram budżetowych lub pełna analiza pozwalająca na dokładne określenie budżetu oraz ustalenie harmonogramu. Jeśli klient posiada przygotowany wcześniej brief to prace analityczne przebiegają sprawniej i wydajniej gdyż koncertujemy się specyficznych wymaganiach.

2Umowa

Na podstawie badania potrzeb i wymagań po analizie następuje etap uzgadniania warunków umowy. W tej fazie uzgadniany jest budżet, etapy projektu, harmonogram, kamienie milowe, szkolenia pracowników oraz warunki gwarancji i poziom opieki powdrożeniowej. W umowie określamy również odpowiedzialność stron za poszczególne elementy projektu, np. kto jest odpowiedzialny za dostarczenie platformy sprzętowej pod projekt, certyfikatu SSL czy zestawienia tunelu VPN do wymiany danych pomiędzy systemami.

3Analiza

Po podpisaniu umowy następuje start projektu. Jeśli zamawiający nie zlecił pełnej analizy wymagań przed podpisaniem umowy głównej to pierwszym krokiem w cyklu życia projektu jest przeprowadzenie dogłębnej analizy, która zwykle kończy się sporządzeniem dokumentu. Analiza daje odpowiedź na fundamentalne zagadnienia projektowe i jest jednym z najważniejszych etapów przedwdrożeniowych.

4Projektowanie funkcjonalne

Po podpisaniu umowy następuje start projektu. Jeśli zamawiający nie zlecił pełnej analizy wymagań przed podpisaniem umowy głównej to pierwszym krokiem w cyklu życia projektu jest przeprowadzenie dogłębnej analizy, która zwykle kończy się sporządzeniem dokumentu. Analiza daje odpowiedź na fundamentalne zagadnienia projektowe i jest jednym z najważniejszych etapów przedwdrożeniowych.

5Projektowanie graficzne

Na tym etapie powstają projekty graficzne. Klient otrzymuje zwykle 2-3 propozycje graficzne strony głównej. Czasami udostępniamy również kilka propozycji graficznych innych podstron, takich jak karta produktu czy listy produktowe. Uzgodniona wersja graficzna projektu jest poszerzana o kolejne podstrony systemu. Po akceptacji wersji desktop przygotowujemy kolejne projekty graficzne RWD dla tabletów oraz smartfonów. Posiadanie strony responsywnej od kilku lat must-have ze względu na przyjęty standard oraz fakt, że Google lepiej pozycjonuje takie strony.

6Programowanie systemu

Po akceptacji projektu graficznego następuje etap programowania dodatkowych funkcjonalności i modułów. Z reguły etap programowania i wdrażania systemu może rozpocząć się przed akceptacją projektu graficznego, szczególnie gdy chodzi o oprogramowanie funkcjonalności backendu do których niepotrzebna jest grafika. W zależności od ilości, stopnia skomplikowania oraz trudności w implementacji rozszerzeń systemowych ten etap zaliczany jest do najdłuższych i najbardziej pracochłonnych. W tej fazie zwykle potrzebujemy cyklicznego kontaktu z klientem w celu potwierdzenia i akceptacji poszczególnych faz realizacji.

7Testowanie i stabilizacja systemu

Po zakończeniu etapu wdrażania i programowania, ekipa wykonawcy przystępuje do testów wewnętrznych. Wszystkie błędy i uwagi zgłaszane są do systemu Redmine w celu szczegółowej kontroli przebiegu prac. Etap ten kończy się wykonaniem kopii systemu ze środowiska developerskiego na środowisku testowym. Następnie klient dostaje dostępy i instrukcje do systemu w celu przeprowadzenia testów końcowych. Przekazanie systemu do testów bardzo często zbiega się ze szkoleniami dla klienta.

8Wdrożenie systemu

W zależności od złożoności i wielkości systemu, po zakończeniu testów prowadzonych przez klienta oraz realizacji poprawek i ustabilizowaniu platformy, system jest przenoszony do środowiska produkcyjnego. Przy mniejszych systemach oraz mniejszych budżetach występują tylko 2 środowiska: developerskie oraz produkcyjne.

9Utrzymanie systemu

Po wdrożeniu systemu do środowiska produkcyjnego następuje faza produkcyjna i związany z nią etap utrzymania systemu. W większości wdrożeń podpisywana jest umowa SLA (service level agreement), która gwarantuje klientowi odpowiedni poziom świadczonych usług w przypadku awarii systemu lub potrzeby rozbudowy. Warunki ustalone w SLA gwarantują m.in. odpowiednie czasy reakcji i naprawy w przypadku problemów z systemem. SLA może również zawierać pewną pulę godzin przeznaczoną na rozwój systemu.

10Rozwój systemu

Każdy system, nawet najbardziej wyrafinowany i nowoczesny podlega procesowi „starzenia technologicznego”. Na pewnym etapie trzeba taki system wymieć na nowy lub przebudować oraz wzbogacić o dodatkowe funkcje. Jest to etap rozwoju systemu. Zmiany w systemie robi się na podstawie tzw. change-requestów, które opisują nowe funkcje do zaprogramowania i implementacji. Zmiany w funkcjonującym produkcyjnie systemie są bardziej kłopotliwe w implementacji niż programowanie funkcji w nowej, jeszcze nie wdrożonej platformie. Aby uniknąć problemów stosuje się środowiska developerskie i testowe przed wrzuceniem zmian na produkcje. To zapewnia odpowiedni poziom przetestowania nowych modułów przed użyciem ich w systemie produkcyjnym. Wspomniane wcześniej SLA może zawierać pulę godzin na rozwój systemu, jeśli klient planuje cykliczne wprowadzenie ulepszeń i zmian. W innym przypadku change-requesty są wyceniane osobno.

ROZLICZANIE PROJEKTÓW

Na całym etapie wdrożeniowym utrzymujemy stały kontakt z klientem. Fazy projektowe są rozdzielone kamieniami milowymi. Koniec i początek każdej fazy to okazja do spotkania z Klientem i weryfikacja dotychczasowych prac. Często projekt jest rozliczany na podstawie dostarczonych i zaakceptowanych etapów.

W pierwszej, wstępnej fazie projektu gdy jest opracowywana koncepcja całego przedsięwzięcia ustalane są też główne fazy projektu. Na tym etapie powstaje również wstępny harmonogram projektowy, który jest uszczegóławiany i korygowany po wykonaniu kompleksowej analizy.

W przypadku kiedy finalna wizja projektu nie została dokładnie określona i klient preferuje iteracyjne podejście do wdrożenia, proponujemy zamiast ustalonego z góry budżetu i czasu realizacji przyjąć metodę rozliczenia time & materials. W skrócie polega ona na rozliczaniu etapów pracy na podstawie zaewidencjonowanego przepracowanego czasu przez różnych specjalistów biorących udział w danym etapie.

Inną metodą rozliczenia jest fixed price. Ta metoda opiera się na określonym z góry budżecie i czasie realizacji poszczególnych etapów.

Określenie pracochłonności, z której wynika budżet i czas jest możliwe tylko po wykonaniu szczegółowej analizy projektowej i przyjęciu wspólnie wypracowanego zakresu projektowego.

Obie metody mają wady i zalety. Z jednej strony przy time & materials klient nie zna finalnych kosztów całego projektu ale może dowolnie modyfikować zakres w czasie trwania etapu. Z drugiej strony przy fixed price znany jest całkowity koszt oraz harmonogram ale jakiekolwiek modyfikacje mogące wpłynąć na czas realizacji lub pracochłonność projektu są możliwe dopiero po zakończeniu projektu lub etapu i stanowią dodatkowy koszt. Zwykle takie zmiany wymagają również modyfikacji umowy oraz dokumentacji więc implikują dodatkowe prace.

Pomimo, że projekty rozliczane metodą fixed price jak sama nazwa wskazuje mają ustalony budżet i harmonogram my zwykle przyjmuje jakiś bufor w ramach, którego możemy zrealizować drobne prace dodatkowe. Oczywiście wszelkie poprawki w przypadku kontraktów opierających się na metodzie fixed price realizujemy zawsze w ostatnim etapie realizacji. W innym przypadku terminy i cały harmonogram byłyby zagrożone.

Metodologia pracy
Prosimy o ocenę