Dlaczego pracujemy w SCRUMie i co to właściwie oznacza?
24.02.2016

Wytwarzanie oprogramowania i dostarczanie go klientowi jest paradoksalnie bardzo złożonym procesem, składającym się z wielu etapów i zależnym od wielu, róznych czynników wewnętrznych i zewnętrznych. W naszej pracy przeszliśmy przez wiele różnych dróg i bazując na zebranych doświadczeniach możemy przedstawić, naszym zdaniem najlepszy z możliwych, sposób zarządzania projektami.

Problemy współczesnego klienta IT

Ale po kolei... Żeby dobrze zrozumieć prezentowane podejście, warto przyjrzeć się bliżej problemom, o które potykają się współcześni klienci szeroko pojętej branży IT. Najważniejsze z nich można ująć w pięć głównych punktów:

  1. Nieprzewidywalna przyszłość.

  2. Szybko zmieniające się warunki rynkowe, a co za tym idzie wymagania biznesowe.

  3. Najważniejsze decyzje są podejmowane na początku projektu, gdy poziom wiedzy jest najniższy.

  4. Utrudniona możliwość zmian w trakcie trwania projektu.

  5. Brak kontaktu z programistami odpowiedzialnymi za funkcjonalności.

 

 

Agile development czyli zwinne zarządzanie projektami

Metodyka Agile wpisuje się w filozofię zarządzania Lean, która opiera się, mówiąc w dużym uproszczeniu, na bardziej efektywnym zarządzaniu zasobami przedsiębiorstwa poprzez dostarczanie klientowi wymaganej przez niego wartości po jak najniższym koszcie i przy wykorzystaniu jak najmniejszej ilości zasobów. Aby udoskonalić nasz proces wdrażania projektów informatycznych, zdecydowaliśmy się na zarządzanie projektami zgodnie z metodą SCRUM oraz modelowanie procesu wytwarzania nowych produktów zgodnie z ujęciem Lean Startup.

Współpraca z klientem-partnerem biznesowym

Najważniejszymi wartościami, którymi kierujemy się we współpracy z naszymi klientami są:

  1. Transparentność

  2. Odpowiedzialność

  3. Szczerość

  4. Komunikacja wewnętrzna oraz zewnętrzna

  5. Innowacyjność

  6. Właściwa ocena sytuacji

Proces

Jak właściwie wyglądają poszczególne etapy współpracy projektowej w naszej firmie?
Poniżej opis procesu scrumowego:

 

 

  1. Spotkanie przedwdrożeniowe - podczas tego spotkania wspólnie z klientem analizujemy wszystkie aspekty projektu, które na tym etapie da się już przeanalizować.

  2. Spotkanie zespołu scrumowego - to zapoznanie członków zespołu, prezentacja ról i odpowiedzialności w projekcie oraz edukacja klienta (jeżeli jeszcze nigdy nie pracował w metodzie SCRUM).

  3. Planowanie sprintu - to wspólne określanie zadań, które są do wykonania w pierwszym i kolejnych sprintach (okresach pracy).

  4. Grooming Backlogu - to spotkanie, podczas którego poddajemy ponownej ocenie wszystkie zaplanowane zadania i korygujemy ewentualne braki lub nadmiary, ponownie ustalamy priorytety i sprawdzamy, czy plany są realne do wykonania.

  5. Sprint Demo/Review - to podsumowanie każdego sprintu oraz zaprezentowanie jego efektów.

  6. Retrospektywa - to ostatni punkt podsumowania danego sprintu, w którym zespół identyfikuje rzeczy dobre, ale także te złe, które przeszkadzają w pracy oraz próbuje je na bieżąco rozwiązywać/eliminować problemy.

  7. Testowanie przez klienta - czas, w którym klient może wypróbować zaimplementowane funkcjonalności i zgłosić ewentualne błędy/uwagi.

Pojęcia i role

  1. Product Backlog - to lista zadań i wymagań, które muszą być wykonane w danym projekcie. Może być ustalona w formie technicznej, użytkowej (user story, use case) lub innej, według uznania.

  2. Sprint - ustalony czas trwania iteracji (2 - 6 tygodni).

  3. Sprint backlog - elementy product backlogu, które należy zrealizować w sprincie, wybrane na podstawie priorytetów ustalonych przez product ownera. W każdym sprincie realizowane są trzy etapy: projektowanie, kodowanie i testowanie.

  4. Daily (codzienne scrum meeting) - spotkania, których celem jest komunikacja pomiędzy członkami zespołu oraz zaplanowanie prac na najbliższy dzień. Daily powinno trwać do 15 minut (około 1-2 minuty na osobę), podczas których uczestnicy odpowiadają na 3 pytania: Co zrobiłem od ostatniego spotkania? Co planuję zrobić dzisiaj? Czy jest coś, co uniemożliwia mi realizację zadań?

  5. Sprint Demo (Sprint Review Meeting) - prezentacja wyników prac wykonanych w ramach danego sprintu.

  6. Retrospektywa - omówienie przez zespół scrumowy co było dobre w minionym sprincie, co było niewłaściwe i jak możemy poprawić organizację w następnym sprincie.

  7. Scrum Master - zarządza procesem, motywuje, jest trenerem zespołu, chroni go przed zewnętrznymi problemami/zakłóceniami.

  8. Product Owner - przygotowuje zadania oraz określa ich ważność przez cały czas trwania projektu; jest odpowiedzialny za priorytetyzację backlogu.

  9. Zespół Scrumowy - szacuje, planuje, realizuje zadania, sam organizuje swoją pracę.

Zalety wdrażania projektów metodą SCRUM

Tworzenie oprogramowania, czy też jego dostarczanie, to skomplikowany proces, który bardzo rzadko kończy się w sposób, jaki został zaplanowany na początku. Właśnie dlatego stosowane metody muszą być bardzo elastyczne, aby z łatwością dostosowywać się do dynamicznych zmian. Oferujemy naszym klientom takie “zwinne” podejście, ponieważ za cel stawiamy sobie dostarczanie rozwiązań o wysokiej wartości biznesowej.

Co klient zyskuje, wdrażając swój projekt w SCRUMie?

  • Możliwość bieżącego nanoszenia zmian w projekcie w czasie jego realizacji. Klient może 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 poprawki. Priorytetem jest jakość tworzonego produktu/rozwiązania.

  • Formalności i biurokracja zmniejszone do minimum - dokumentacja projektowa nie jest niezbędna (wystarczą nam wymagania klienta i bieżący kontakt z nim), nie musimy 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. Podejście takie jest uczciwe dla obu stron zaangażowanych w projekt.

  • Szybsza i skuteczniejsza realizacja projektu - dzięki bieżącym korektom kierunku rozwoju produktu, powstaje on szybciej i jest lepiej dopasowany do potrzeb rynku.

  • Priorytety określane na podstawie wartości biznesowej.

  • Duży nacisk na komunikację i współpracę w zespole.

  • Jasno zdefiniowane dobre praktyki deweloperskie.

  • Aktywny udział klienta poprzez ustalanie priorytetów dla wszystkich funkcjonalności.

  • Możliwość bardzo częstego przekazywania sobie nawzajem feedback'u.

Wartości biznesowe

Na zakończenie warto wspomnieć o zagadnieniu najbardziej istotnym z biznesowego punktu widzenia. Jakie realne zyski dla klienta generuje wykorzystanie omówionej wyżej metodyki?

  1. Zwiększenie szybkości wdrożenia.

  2. Zwiększenie wydajności zespołu wdrożeniowego.

  3. Realizacja zadań według ich wagi - klient decyduje, które zadanie powinno zostać zrealizowane w danej iteracji.

  4. Zmniejszone do minimum ryzyko uzyskania nieadekwatnego rozwiązania.

  5. Szybkie reagowanie na dynamiczne zmiany w otoczeniu biznesowym.

  6. Duża elastyczność w czasie trwania projektu.

  7. Niskie ryzyko złych relacji na linii Zleceniodawca-Wykonawca.

  8. Oszczędność czasu i pieniędzy dzięki usuwaniu niepotrzebnych zadań.

  9. Stała kontrola nad postępami prac wdrożeniowych.

  10. Zmniejszenie kosztów przeznaczonych na inwestycję nawet o 20-50%.

  11. Profesjonalny produkt klasy premium z gwarancją satysfakcji.

 

Przekonuje Cię taki system współpracy? Masz dodatkowe pytania lub wątpliwości? Chcesz zabrać głos w dyskusji? Potrzebujesz specjalistycznej porady w kwestii wdrożenia, które planujesz?

Zapraszamy do kontaktu!