W poprzednim artykule omawialiśmy, jak elementy Extreme Programming pomagają zarządzać jakością kodu i procesem developmentu. Potrzebny był nam nie tylko nowy proces, ale coś w rodzaju systemu odpornościowego: mechanizm, który nie leczy problemów po fakcie, tylko wcześniej rozpoznaje zagrożenia i wytwarza przeciwko nim „przeciwciała”. Takim systemem stały się dla nas praktyki Extreme Programming (XP).

Tym razem opowiemy o innej sytuacji. Gdy zespół Scrum pracuje w sprintach, ale w trakcie procesu pojawiają się pilne bugi, zmieniają się priorytety i dochodzą zadania ad-hoc. Czasem nie można odkładać ich do kolejnego sprintu. Ale jeśli dodawać je ponad to, co zostało już zaplanowane, zespół szybko traci fokus, osiągnięcie celu sprintu jest zagrożone, a obciążenie przestaje być transparentne.

I właśnie w takich przypadkach Kanban pomaga wzmocnić Scrum: zachować rytm pracy, zarządzać przepływem zadań i szybciej reagować na pilne zmiany.

Przyjrzymy się temu, co Scrum i Kanban mają ze sobą wspólnego, jak można wykorzystać Kanban wewnątrz frameworka Scrum i jakie problemy rozwiązuje to w praktyce.

Krótko o Scrum

Scrum to podejście do organizacji pracy w krótkich iteracjach, czyli sprintach.

W Scrum Team są trzy główne role:

  • Product Owner;
  • Scrum Master;
  • Developers.

Na początku sprintu zespół planuje pracę (Sprint Planning), codziennie synchronizuje się podczas Daily Scrum, a na końcu przeprowadza Sprint Review i Sprint Retrospective.

Główna idea Scrum polega na pracy w stabilnym rytmie i regularnym dostarczaniu gotowego rezultatu.

Więcej o Scrum przeczytasz w Scrum Guide.

Krótko o Kanban

Kanban to metoda, która pozwala zarządzać przepływem zadań.

Praca jest widoczna na tablicy, gdzie każda kolumna odpowiada etapowi procesu: na przykład To Do, In Progress, Testing i Done.

Dla każdego etapu ustala się WIP-limity (Work In Progress) – ograniczenie liczby zadań, nad którymi można pracować jednocześnie.

Główna idea Kanban jest prosta: najpierw kończ to, co zostało rozpoczęte, a dopiero potem bierz nowe zadania. Więcej o Kanban przeczytasz w Kanban Guide.

Co wspólnego mają Scrum i Kanban

Mimo różnic Scrum i Kanban dążą do tych samych celów.

Oba podejścia pomagają:

  • uczynić pracę transparentną;
  • szybciej zauważać problemy;
  • otrzymywać feedback;
  • usprawniać proces;
  • adaptować się do zmian.

Scrum nadaje rytm pracy, a Kanban pomaga zarządzać przepływem zadań w ramach tego rytmu.

Wdrożenie Kanbana w Scrumie

Kanban w Scrumie to nie zastępstwo dla frameworka Scrum, ale sposób na zwiększenie jego elastyczności.

Oficjalne rekomendacje Scrum.org dotyczące tego, jak prawidłowo wbudować Kanban w Scrum, można przeczytać tutaj, a poniżej opowiemy, jak zrobiliśmy to my.

Jak Kanban działa w Scrumie w praktyce

Scrum zachowuje podstawę procesu, a Kanban dodaje transparentność przepływu i kontrolę obciążenia.

Co zostaje ze Scruma

  • role w zespole;
  • sprinty;
  • Sprint Planning;
  • Daily Scrum;
  • Sprint Review;
  • Sprint Retrospective.

Co dodaje Kanban

  • tablica Kanban;
  • WIP-limity;
  • model pracy pull;
  • metryki przepływu: lead time, cycle time, throughput.

Role i wydarzenia

Zachowujemy role i wydarzenia Scrum – sprinty, planowanie, codzienne spotkania, przegląd i retrospektywę – ale uzupełniamy proces narzędziami Kanban.

Tablica Kanban

Używamy tablicy z kolumnami, które odzwierciedlają etapy procesu pracy, na przykład: To Do, In Progress, Testing (może być dodatkowo uszczegółowiona na testowanie prowadzone na różnych środowiskach), Ready for Production, Done. Daje to pełną widoczność statusów wszystkich zadań w dowolnym momencie.

WIP-limity

Dla każdej kolumny ustalamy maksymalną liczbę zadań, które można jednocześnie wziąć do pracy. Zapobiega to przeciążeniu zespołu, pomaga kończyć rozpoczętą pracę przed braniem nowej, a także zobaczyć „wąskie gardła” na każdym z etapów pracy.

System pull

Zespół bierze zadania do pracy w miarę pojawiania się wolnej mocy przerobowej. Główna część zadań to ustalone elementy Sprint Backlog, a pozostała część to zadania ad-hoc.

Metryki przepływu

Na retrospektywach analizujemy średni czas realizacji zadań (lead time), średni czas aktywnej pracy nad zadaniem (cycle time) i przepustowość (throughput), a także porównujemy cumulative flow diagram z burndown chart. To pomaga wykrywać wąskie gardła i usprawniać proces.

W ten sposób Scrum nadaje rytm pracy, a Kanban pomaga zarządzać przepływem zadań w ramach tego rytmu.

Jak to działa

Zespół nadal pracuje w sprintach, ale zadania przechodzą przez wizualny przepływ.

Nowe zadania są brane tylko wtedy, gdy w procesie pojawia się wolna moc przerobowa. To ogranicza wielozadaniowość i pomaga szybciej kończyć rozpoczętą pracę.

Praktyczny case z HR-tech

Na jednym z naszych projektów HR-tech zespół jednocześnie:

  • pracował nad nową funkcjonalnością;
  • wspierał już działający produkt;
  • naprawiał pilne bugi na produkcji/wykonywał inne zadania ad-hoc.

Jeśli kierować się wyłącznie Scrum, pilne zadania mogły naruszyć plan sprintu albo krytyczne poprawki trzeba byłoby odłożyć do kolejnego sprintu.

Rozwiązaniem było wbudowanie Kanban w proces Scrum, w którym ustalaliśmy obowiązkowy zakres prac w trakcie sprintu, ale jednocześnie zostawialiśmy „elastyczną” część na manewr.

W praktyce wyglądało to tak: przy średniej velocity 30 SP na sprint w planowaniu braliśmy do pracy 20–25 SP.

Pozostały zapas zostawialiśmy na krytyczne zadania z produkcji i zadania ad-hoc. To pozwalało nie przeciążać sprintu i nie rozbijać go przy nagłych incydentach, przy jednoczesnym zachowaniu możliwości szybkiego podejmowania pilnych zadań bez czekania na kolejne planowanie.

Zespół nadal pracował w sprintach: przeprowadzał planowanie, codzienne spotkania, przeglądy i retrospektywy, a jednocześnie cały backlog był prowadzony na tablicy Kanban, dla kolumn In Progress i Testing ustawiliśmy WIP-limity.

Gdy pojawiało się niezaplanowane zadanie, a zmienna część naszego Velocity nie została jeszcze wykorzystana, zespół mógł wziąć zadanie do pracy. To pozwalało szybko reagować na zmiany bez przeciążenia i bez zerwania sprintu.

W rezultacie:

  • pilne zadania trafiały do pracy od razu;
  • zespół zachowywał fokus na zadaniach sprintu;
  • obciążenie pozostawało transparentne;
  • wąskie gardła były dobrze widoczne.

Podsumowanie: co daje Kanban w Scrumie?

Elastyczność bez utraty przewidywalności

Zespół zachowuje rytm sprintów, ale może szybko brać pilne zadania do pracy.

Kontrola obciążenia

WIP-limity pomagają uniknąć przeciążenia i pokazują realną moc przerobową zespołu.

Szybkie wykrywanie problemów

Tablica sprawia, że blokady i zawieszone zadania są widoczne od razu.

Usprawnianie procesu na podstawie danych

Metryki przepływu pomagają dokładniej planować i znajdować wąskie gardła.

W ten sposób połączenie uporządkowanego planowania Scrum i elastyczności Kanban pozwala jednocześnie pracować zgodnie z planami iteracyjnymi oraz brać do pracy niezaplanowane/jednorazowe zgłoszenia wymagające natychmiastowego rozwiązania.

Zakończenie

Kanban w Scrumie to sposób na wzmocnienie frameworka Scrum dzięki wizualizacji przepływu zadań i kontroli obciążenia.

Scrum zachowuje zrozumiały rytm pracy, a Kanban pomaga szybciej reagować na zmiany i efektywniej zarządzać zadaniami wewnątrz sprintu.

Jeśli zespół musi jednocześnie rozwijać nową funkcjonalność i szybko rozwiązywać pilne problemy, Kanban w Scrumie również może stać się wygodnym i praktycznym rozwiązaniem.