Podsumowanie: Przepływ pracy Agile to seria etapów, których zespoły Agile wykorzystują do tworzenia aplikacji, od pomysłu do ukończenia.
Każdy zespół tworzący oprogramowanie ma proces, zgodnie z którym realizuje pracę. Znormalizowanie tego procesu, czyli przekształcenie go w przepływ pracy, sprawia, że staje się on uporządkowany i powtarzalny, co w konsekwencji umożliwia jego skalowanie. W Atlassian stosujemy iteracyjne podejście do zarządzania przepływem pracy, ponieważ pomaga nam ono w osiąganiu celów i stanowi wyraz naszej kultury zespołowej. Jesteśmy ekspertami w dziedzinie zarządzania przepływami pracy Agile (a przynajmniej sami tak twierdzimy) i chcemy Ci pomóc osiągnąć ten sam poziom.
Rozpoczęcie pracy z przepływami pracy Agile
Wdrażając przepływ pracy w zespole, zawsze zaczynaj od prostych rozwiązań. Zwalcz pokusę poświęcenia całych tygodni na (przesadne) dopracowanie przepływu. Wysoce złożone przepływy pracy są mało zrozumiałe i trudno je zastosować — nie mówiąc już o ich dostosowaniu. W zespołach tworzących oprogramowanie zaleca się zastosowanie tych podstawowych stanów prac w przepływie pracy:
Prace, które nie zostały rozpoczęte
Prace, które zespół aktywnie realizuje w danej chwili
Prace ukończone i oczekujące na przegląd
Prace całkowicie zakończone, które spełniają kryteria definicji ukończenia stosowane przez zespół
W narzędziu do śledzenia zgłoszeń stany te następują po sobie w wyniku kolejnych przejść, które nadają strukturę przepływowi pracy.
Niektóre zespoły tworzące oprogramowanie uwzględniają w swoim przepływie pracy dodatkowe stany, które ułatwiają im monitorowanie statusu prac z większą dokładnością.
Prace, które zostały wdrożone, ale wciąż oczekują na przegląd przez testera (więcej szczegółów na ten temat zawiera nasz artykuł o testowaniu Agile).
Kod, który został zrecenzowany i jest gotowy do scalenia z gałęzią główną lub gałęzią wydania.
Nie ma potrzeby, aby każdy stan przepływu pracy podlegał innej osobie. W miarę jak zespół Agile osiąga dojrzałość, programiści biorą na siebie coraz więcej prac — od projektowania, aż po dostarczenie. W końcu autonomiczny zespół zdolny uporać się z pracą o zróżnicowanym charakterze to jeden z wyróżników metodyki Agile.
Omawiaj każdy obszar trudności w trakcie retrospektywy zespołu i pamiętaj, że pojmowanie wartości przez różne zespoły będzie się nieznacznie różnić, w zależności od ich projektu, zestawu technologii i stosowanej metody pracy. Dlatego ważne jest wybranie narzędzia do śledzenia zgłoszeń z możliwością elastycznej konfiguracji przepływu pracy. Zdecydowanie zbyt wiele zespołów poświęca własny styl pracy na rzecz dopasowania się do konkretnego zestawu narzędzi, co dla każdego jest źródłem frustracji. W rezultacie członkowie zespołu mogą w ogóle unikać korzystania z narzędzia, co nie tylko potęguje frustrację w całym zespole, ale też sieje ogólny zamęt. A na spadku morale cierpi produktywność. To podwójny cios, którego wszyscy chcemy uniknąć.
Zespoły, które dopiero zaczynają swoją przygodę z metodyką Agile, lub nie mają interdyscyplinarnych kompetencji, często kończą z przepływami pracy zawierającymi „minimodele kaskadowe”. Przykładowo projektanci rozpoczynają jednostkę pracy od utworzenia wstępnego projektu. Programiści przeprowadzają wdrożenie. Testerzy sprawdzają jakość. Każdy stan jest blokowany do momentu ukończenia poprzedniego. Brzmi znajomo? To przecież model kaskadowy. Możemy jednak zrobić to znacznie lepiej dzięki przepływom pracy Agile, które pozwalają odblokować możliwości zespołu i ułatwiają prowadzenie procesu programistycznego.
Optymalizacja pod kątem przepływu procesów zgodnego z metodyką Agile
Gdy zaznajomisz się z podstawowym przepływem pracy i zechcesz zmienić go w proces zgodny z metodyką Agile, utwórz statusy dla każdego typu prac w procesie zespołu. Kreowanie pomysłów, projektowanie, programowanie, przegląd kodu i testowanie różnią się pod względem funkcjonalnym, więc można im przypisać odrębne statusy. Staraj się utworzyć zestaw tylko niezbędnych statusów, które wyraźnie informują, na jakim etapie znajduje się dana jednostka pracy.
Statusy projektu można również udostępniać innym członkom organizacji. Tworząc przepływ pracy zgodny z metodyką Agile, zastanów się, które wskaźniki są ważne do przekazywania, a które mogą być przydatne dla osób spoza zespołu. Dobrze zaprojektowany przepływ pracy pozwala na przykład odpowiedzieć na następujące pytania:
- Jakie prace zespół wykonał?
- Czy w backlogu piętrzą się prace, czy też jest on dobrze dostosowany do tempa pracy zespołu?
- Ile jednostek znajduje się w poszczególnych statusach?
- Czy są jakieś wąskie gardła, które spowalniają zespół?
- Jak długo trwa wykonanie przeciętnego zadania?
- Ile jednostek pracy nie spełniło naszych standardów jakości za pierwszym razem?
Kolejnym krokiem w procesie optymalizacji przepływu pracy jest zapewnienie ciągłego strumienia pracy w ramach opracowanego przepływu. Limity prac w toku (WIP) wyznaczają minimalną i maksymalną liczbę zgłoszeń o danym stanie w przepływie pracy, dzięki czemu na każdym etapie liczba dostępnych prac jest wystarczająca, aby w pełni wykorzystać możliwości zespołu, ale nie na tyle duża, aby powodować utratę koncentracji w następstwie żonglowania priorytetami. Wymuszenie limitów WIP szybko pokaże, które procesy spowalniają ogólny postęp prac w pipelinie. Gdy zespół nauczy się optymalizacji w oparciu o limity WIP, produktywność wzrośnie. (Więcej szczegółów można znaleźć w artykule na temat limitów WIP).
Wyzwania związane ze skalowaniem przepływu procesów zgodnego z metodyką Agile
Organizacje, w których funkcjonuje kilka zespołów Agile, borykają się ze szczególnymi trudnościami związanymi z przepływami prac. Zespoły często chcą zoptymalizować własny przepływ pracy tak, aby odzwierciedlał ich niepowtarzalny proces i unikatową kulturę. To oczywiście zrozumiałe. Może stanowić źródło kłopotów, gdy różne zespoły będą wykorzystywać odmienne procesy podczas pracy nad tym samym projektem.
W przypadku zespołów Agile, które ze sobą współpracują, korzystne może być wdrożenie wspólnego przepływu pracy. Korzystanie z tego samego przepływu pracy może ułatwić przenoszenie pracy między poszczególnymi zespołami Agile, ponieważ będą one stosowały te same konwencje do definiowania i dostarczania prac. Utworzenie wspólnego procesu zazwyczaj wiąże się z pewnymi ustępstwami ze strony obu zespołów. I o to chodzi! Zespoły będą uczyć się od siebie nawzajem, co w rezultacie pozwoli opracować lepszy przepływ pracy.
W Jira, czyli narzędziu Atlassian do śledzenia zgłoszeń, zespoły mogą korzystać ze wspólnych przepływów pracy, ale stosować odmienne sposoby prezentowania procesu na swojej tablicy Agile. Taka możliwość zapewnia elastyczne opcje wizualizacji bez rezygnacji ze współdzielonego zasobu przepływu pracy.
Bez względu na to, jak wygląda Twój przepływ pracy, proces jego opracowania również powinien być zgodny z zasadami Agile. Warto omówić go od czasu do czasu w trakcie retrospektyw i dostosować w miarę zmian zachodzących w kulturze pracy i składzie zespołu.