Firmy informatyczne coraz częściej proponują swoim klientom wdrażanie oprogramowania z wykorzystaniem tzw. metodyk zwinnych - przede wszystkim Scruma. Reklamuje się go jako bardziej efektywny i korzystniejszy sposób implementacji rozwiązań informatycznych od podejścia tradycyjnego. Czy jest tak rzeczywiście? W dzisiejszym artykule omówię największe zalety Scruma oraz kilka zagrożeń, jakie za sobą niesie.
{flike}
Czym jest Scrum?
Scrum jest jedną z tzw. zwinnych metodyk realizacji projektów (zazwyczaj informatycznych, lecz nie tylko), zgodna z manifestem Agile (o którym więcej można przeczytać tutaj). W metodyce tej rozwój produktu odbywa się w ramach krótkich, następujących bezpośrednio po sobie etapów - tzw. sprintów bądź przyrostów, trwających zwykle (w zależności od ustaleń) od 1 tygodnia do 1 miesiąca. Efektem każdego ze sprintów jest nowa, udoskonalona względem poprzedniego etapu, działająca wersja produktu.
Jednym z podstawowych założeń Scruma jest intensywna, bieżąca współpraca klienta (beneficjenta projektu) z firmą wdrożeniową (twórcą produktu) - na każdym etapie realizacji projektu. To klient definiuje swoje potrzeby i kierunek rozwoju oprogramowania, weryfikując jego funkcjonalności po każdym oddanym sprincie i, w razie potrzeby, zmieniając założenia.
Realizacja projektu metodyką Scrum
Proces realizacji projektu z wykorzystaniem metodyki Scrum można w uproszczeniu przedstawić następująco:
- Analiza przedwdrożeniowa - wspólne omówienie kształtu przyszłego produktu, wyznaczenie celów wdrożenia, a także przybliżonego zakresu projektu.
- Określenie zakresu sprintu I - określenie przez klienta prac do wykonania w ramach sprintu I.
- Oszacowanie czasochłonności / kosztu prac w sprincie I - analiza zakresu sprintu I i jego wstępna wycena przez firmę wdrożeniową.
- Akceptacja oszacowania / modyfikacja zakresu sprintu I - akceptacja wstępnej wyceny przez klienta bądź zmiana zakresu prac w sprincie.
- Prace programistyczne / rozwój produktu (sprint) - właściwe prace nad rozwojem produktu.
- Odbiór sprintu I - przekazanie produktu do testów klientowi.
- Powtórzenie punktów 2 - 6 dla każdego z kolejnych sprintów.
- Zakończenie projektu
Zalety metodyki Scrum dla klienta
Wdrożenia oprogramowania w firmie metodyką zwinną niosą za sobą wiele korzyści dla klienta, o których może on tylko pomarzyć w przypadku realizacji projektu tradycyjnymi sposobami:
- Możliwość bieżącego nanoszenia zmian w projekcie w czasie jego realizacji - zakres projektu jest otwarty przez cały okres jego realizacji. Klient może więc nanosić zmiany zarówno w obrębie istniejących, jak i przyszłych funkcjonalności.
- Możliwość bieżącej regulacji zakresu projektu i zamknięcia go w dowolnym momencie - jeśli na skutek np. okrojonego budżetu projektu chcielibyśmy zrezygnować z realizacji części funkcjonalności, jest to jak najbardziej możliwe. To klient decyduje który sprint kończy dany projekt.
- Bieżący monitoring i ocena powstającego produktu - po każdym sprincie klient otrzymuje nową wersję produktu, którą może przetestować i nanieść swoje korekty, możliwe do zrealizowania w kolejnym przyroście.
- Formalności i biurokracja zmniejszone do minimum - dokumentacja projektowa nie jest niezbędna (wystarczą wymagania klienta i bieżący kontakt z nim), nie musimy więc ponosić kosztów jej wytworzenia.
- Ponoszenie wydatków wyłącznie za wykonaną pracę - faktyczny czas realizacji zagadnień przez firmę wdrożeniową może się nieco różnić od szacowanego. Klient ponosi koszty rzeczywistego czasu realizacji - co działa oczywiście zarówno w przypadku szybszego, jak i bardziej czasochłonnego wykonania zadania.
- Szybsza i skuteczniejsza realizacja projektu - dzięki bieżącym korektom kierunku rozwoju produktu, powstaje on szybciej i jest lepiej dopasowany do potrzeb klienta.
Wady i zagrożenia związane ze Scrumem
To co jest zaletą, czasami może okazać się również zagrożeniem. W Scrumie zagrożeniami dla zleceniodawcy mogą być przede wszystkim:
- Brak wiedzy o dokładnym koszcie realizacji projektu - bazujemy na zarysie funkcjonalnym projektu i szacunkowym koszcie realizacji. Rzeczywisty koszt zależy od końcowych założeń i faktycznym czasie ich realizacji przez firmę wdrożeniową.
- Ponoszenie wszelkich kosztów związanych z projektem - jeśli firmie wdrożeniowej z jakichś przyczyn nie uda się zrealizować zagadnienia w szacowanym czasie, rzeczywisty koszt stworzenia funkcjonalności rośnie - i my, jako klient musimy go pokryć. Oczywiście, tak jak sygnalizowałem wyżej, działa to w obie strony.
- Ryzyko rozrastania się projektu - mając możliwość zmian i dokładania kolejnych funkcjonalności w trakcie realizacji projektu, bez należytej kontroli, możemy doprowadzić do jego niechcianego i kosztownego rozrastania się.
- Ryzyko przekroczenia zakładanego budżetu - punkt będący konsekwencją powyższych. W przypadku niedostatecznej kontroli nad projektem, wymaganiami i jego budżetem, zakładany budżet szybko się wyczerpie, a produkt nie będzie realizował kluczowych funkcjonalności.
Kiedy wdrażać oprogramowanie metodyką zwinną?
Scrum to wspaniała metodyka realizacji projektu informatycznego, której zalety pozwalają na szybkie, skuteczne i stosunkowo tanie wdrożenie oprogramowania w przedsiębiorstwie. Jej zalety uwidaczniają się jednak wyłącznie wtedy, gdy:
- w naszej firmie jesteśmy w stanie wyznaczyć koordynatora projektu, który pośredniczyłby w kontakcie między jej pracownikami, a firmą wdrożeniową, uczestniczyłby w ustalaniu założeń, odbierałby kolejne wydania produktu, podejmowałby decyzje oraz kontrolowałby budżet projektu;
- zarówno przedsiębiorstwo - beneficjent projektu, jak i firma wdrożeniowa darzą się wzajemnym zaufaniem;
- priorytetem nie jest sztywny budżet, a jakość tworzonego produktu;
- przedmiot wdrożenia jest produktem niestandardowym, budowanym od podstaw bądź mocno dopasowywanym do potrzeb przedsiębiorstwa (w przypadku mniejszych projektów i standardowych wymagań, nie warto bawić się w Scruma).
Jeśli nie jesteśmy pewni co do któregokolwiek z powyższych założeń - nie wdrażajmy oprogramowania metodyką Scrum. Istnieje bowiem duże ryzyko, że jej zalety szybko zamienią się w wady - i zamiast pozytywnie wpłynąć na wdrożenie oprogramowania w naszej firmie, mocno je skomplikuje.
Komentarze