Share on Facebook Tweet it

Scrum w dużych projektach

Czy da się stosować Scruma w projektach, w których uczestniczą dziesiątki czy nawet setki osób? Czy nad jednym projektem może pracować wiele zespołów scrumowych? Jak wygląda współpraca między zespołami? Ilu jest Product Ownerów, a ilu Scrum Masterów?

Uwaga: Poniższe stwierdzenia traktować należy jako sugestie a nie twarde zasady.

Scrum jest lekką metodyką, która ze względu na swoją prostotę a także brak elementów opcjonalnych dobrze skaluje się w dużych organizacjach i przy dużych projektach.  Zasada określająca ilość członków zespołu na 7 +- 2 ciągle ma zastosowanie, stąd większa ilość osób zaangażowanych w projekt oznacza większą ilość małych zespołów współpracujących ze sobą. Na czele każdego zespołu nadal stoi Scrum Master, natomiast Product Owner może współpracować z więcej niż jednym zespołem. W praktyce jeden PO może współpracować z maksymalnie 10 zespołami jednocześnie. W przypadku projektów o rozległej i złożonej domenie problemowej ilość zespół z jakimi PO jest w stanie współpracować zmniejsza się. W przypadku, gdy jeden PO w projekcie nie wystarcza należy desygnować tzw. Area Product Ownerów, czyli PO odpowiedzialnych za zdefiniowany obszar projektu, którzy podlegają głównemu PO.

W przypadku wprowadzenia Area Product Ownerów szczególnie istotne jest, aby agile został przyjęty na poziomie organizacyjnym. Tu bardzo ważna jest wspólna wizja, przedstawiona wszystkim osobom uczestniczącym w projekcie, przeszkolenie wszystkich osób z metodyce działania, przeszkolenie osób zarządzających, umieszczenie liderów w zespołach a nie ponad nimi, a także minimalizacja wpływu barier organizacyjnych, czyli przede wszystkim: struktury organizacyjnej zorientowanej działami, motywacyjnego systemu premiowego, czynników politycznych, itp.

Głównym spotkaniem koordynacyjnym pomiędzy zespołami scrumowymi jest tzw. Scrum of Scrums. Spotkanie to przypomina trochę normalny Scrum. Uczestniczą w nim reprezentanci poszczególnych zespołów. Zamiast odpowiedzi na 3 sakramentalne pytania uczestnicy skupiają się na przedstawieniu blockerów w swoim zespole, szczególnie tych związanych z innymi zespołami. W celu lepszej integracji całego zespołu projektowego jak również w celu usprawnienia komunikacji można uczynić funkcję reprezentanta zespołu funkcją przechodnią. Takie podejście ponadto angażuje większą ilość osób w życie projektu.

W dużym projekcie mamy do czynienia w dużo większym stopniu z problemem integracji. W zależności od skali problemu warto zastanowić się nad powołaniem zespołu sprawującego pieczę nad integracją, najlepiej zespołu wirtualnego, czyli takiego, którego członkowie należą na co dzień do zespołów scrumowych. Każdy zespół scrumowy powinien mieć przynajmniej jedną osobę w zespole integracyjnym. W razie dużych zależności między zespołami egzamin zdaje sprint zerowy oraz tzw. „release sprint” czyli sprint konsolidacyjny. Podczas sprintu zerowego tworzony jest Product Backlog i przygotowywane jest środowisko programistyczne. Na czas sprintu zerowego kod jest już zamrażany w tym sensie, że nie można dodawać do niego nowych funkcjonalności. Uzupełniana jest dokumentacja wdrożeniowa i wykonywane są testy w środowisku przedprodukcyjnym.

W zależności od potrzeb można zastanowić się nad dedykowanym zespołem testerów (niezależnie od automatycznych testów przygotowywanych przez zespoły scrumowe), który pracowałby równolegle z innymi, ale był zawsze o jedną iterację wstecz.

Jak duży projekt zmienia poszczególne role w Scrumie?

  • Product Owner staje się rolą pełnoetatową. Osoba ta ma więcej pracy współpracując z większą ilością zespołów. PO uczestniczy we wszystkich spotkaniach, w których uczestniczyłby współpracując z jednym zespołem.
  • Scrum Master przejmuje na siebie więcej obowiązków koordynacyjnych. Scrum Masterzy zarządzają zależnościami pomiędzy zespołami i dbają o odpowiednią komunikację.
  • Poszczególne zespoły scrumowe są nadal przekrojowe w sensie posiadanych umiejętności i zorientowane wokół budowanych funkcjonalności (cross-functional and feature teams), stają się one natomiast mniej autonomiczne.  Zależności pomiędzy zespołami powodują, że proces decyzyjny staje się wielostopniowy i  wolniejszy. Zespół jako całość jest często rozproszony geograficznie co powoduje, że komunikacja w nim staje się nieoptymalna. Mając to na uwadze, warto zastanowić się nad stworzeniem i ciągłym aktualizowaniem słownika pojęć z domeny problemowej.

 

 

 

 

 

 

 

 

Tags: , , , ,

Profile photo of liber

About liber

Jestem zdeklarowanym zwolennikiem zwinnych praktyk. Większość mojego doświadczenia z agile stanowi praca z zespołami scrumowymi zarówno jako Scrum Master jak i jako Scrum Coach. Nie stronie jednak od innych podejść. Ostatnio, na przykład, miałem przyjemność bycia członkiem zespołu kanbanowego. Po klikuletniej pracy w londyńskim City obecnie związany jestem z firmą Espeo Software.

Comments are closed.