Klasyczny model wodospadowy, wprowadzony przez Winstona Royce’a w 1970 roku, był najbardziej powszechnym i szeroko stosowanym podejściem do zarządzania projektami w cyklu życia wytwarzania oprogramowania, dopóki nie został prześcignięty przez bardziej wyrafinowane i znacznie lepsze podejścia oparte na technikach zwinnych około 2008 roku. Fenomenalny wzrost agile został przypisany pułapkom w tradycyjnym modelu i wielu korzyściom, jakie przynosi nowe podejście. Agile rozpoczął się jako iteracyjne, wspólne podejście do rozwoju oprogramowania, ale z czasem ewoluował w zestaw dobrze wyartykułowanych zasad i wartości, które dzieli z wieloma odmianami Agile. Kanban i Scrum to dwie najpopularniejsze metodologie Agile w powszechnym użyciu.

Czym jest Scrum?

Scrum to lekki, ale niezwykle potężny framework oparty na metodyce zwinnej, który pomaga zespołom pracować razem. Jest to elastyczne podejście do zwinnego tworzenia oprogramowania, które opiera się na pojęciu iteracji. W przeciwieństwie do tradycyjnego modelu wodospadowego, w którym każde zadanie i projekt jest rozbite na liniowe, sekwencyjne fazy, Scrum pomaga zespołom i organizacjom dostarczać produkty w krótkich cyklach iteracyjnych. Jest to szybki i niezawodny framework agile, który pomaga w zarządzaniu projektami z większą szybkością i elastycznością. Scrum został zaprojektowany tak, aby dostarczać klientom wartość w oparciu o procesy przyrostowe, co oznacza, że dzieli pracę na małe, konkretne produkty lub zespół na małe, wielofunkcyjne zespoły. Scrum opisuje zestaw narzędzi i metod, które współpracują ze sobą, aby pomóc zespołom w organizacji i zarządzaniu ich pracą. Scrum może być stosowany w każdym projekcie lub wysiłku związanym z rozwojem produktu, dostarczając w ten sposób wartość dla klientów w małych i regularnych przyrostach. Scrum opiera się na koncepcji sprintów.

Co to jest Kanban?

Kanban to system zarządzania przepływem pracy specjalnie zaprojektowany, aby pomóc w wizualizacji pracy i zadań w toku poprzez skupienie się na dostawie just-in-time. Jest to zwinna metodologia oparta na trzech koncepcjach: wizualizacji przepływu pracy, ograniczaniu pracy w toku oraz mierzeniu czasu realizacji. Kanban opiera się na bardzo prostej idei, że praca w toku powinna być ograniczona, a nowa praca powinna rozpoczynać się dopiero wtedy, gdy bieżąca praca jest dostarczana lub ciągnięta przez funkcję niższego rzędu. Słowo Kanban pochodzi od japońskiego słowa, które oznacza sygnał wizualny. Nie jest to cykl życia związany z tworzeniem oprogramowania i zarządzaniem projektami; zamiast tego, Kanban jest podejściem do zarządzania zmianami, którego celem jest dostarczanie wysokiej jakości wartości klientom, na czas i w ramach budżetu. Wykorzystuje wizualny mechanizm kontroli do śledzenia prac w miarę ich przechodzenia przez różne etapy strumienia wartości. W przeciwieństwie do Scruma, Kanban koncentruje się na czasie cyklu – redukując go oraz identyfikując i rozwiązując problemy w przepływie pracy.

Różnica między Kanbanem a Scrumem

Podejście

– Scrum to elastyczne podejście do zwinnego tworzenia oprogramowania, które opiera się na pojęciu iteracji. Scrum pomaga zespołom i organizacjom dostarczać produkty w krótkich cyklach iteracyjnych. W Scrum, zadanie lub projekt jest podzielone na kilka małych, zarządzalnych iteracji zwanych sprintami. Kanban jest również metodologią zwinną, w której praca jest wykonywana iteracyjnie, podobnie jak w Scrum, ale wykorzystuje wizualny mechanizm kontroli do śledzenia pracy w trakcie przechodzenia przez różne etapy strumienia wartości.

Timeline dostawy

– Scrum opiera się na koncepcji sprintów, a każdy sprint trwa zwykle jeden lub dwa tygodnie. Zespół projektowy realizuje część całego projektu, a projekt nie jest zakończony, dopóki wszystkie sprinty nie zostaną ukończone. Tak więc, ciągłe dostarczanie następuje po pomyślnym zakończeniu każdego sprintu. W Kanban, produkty i procesy są dostarczane w sposób ciągły na zasadzie „as-need”. Koncentruje się na dostarczaniu produktów i funkcjonalności just-in-time poprzez optymalizację czasu cyklu.

Role i obowiązki

– W każdym zespole Scrum istnieją trzy podstawowe role, a każda z nich ma swoje specyficzne obowiązki: właściciel produktu, który decyduje o tym, co należy zbudować; mistrz Scrum, który upewnia się, że zespół używa Scrum skutecznie i efektywnie; i wreszcie zespół dostarczający, który jest odpowiedzialny za dostarczenie produktu końcowego. W Kanban role członków zespołu nie są tak jasno określone.

Ustalanie priorytetów

-Mimo że zarówno Scrum, jak i Kanban wykorzystują systemy PULL do zarządzania przepływem pracy, przy czym Kanban jest najpopularniejszym frameworkiem stosującym system PULL, oba robią to w uderzająco różny sposób. W Scrumie system PULL działa w partiach, co oznacza, że nowe zadania mogą być pobierane tylko wtedy, gdy zespół deweloperski zakończy pracę nad bieżącą partią. Zespół wyciąga całą partię dla każdej iteracji. Kanban, z drugiej strony, pozwala na ciągnięcie nowych zadań tak szybko, jak tylko jest miejsce na nowe zadanie do ciągnięcia przez zespół.

Podsumowanie



W dużym skrócie, Scrum opiera się na koncepcji iteracji, co oznacza, że projekt jest rozbity na mniejsze iteracje zwane sprintami. Każdy sprint trwa od jednego do dwóch tygodni, a projekt jest zakończony, gdy wszystkie sprinty zostaną ukończone. Tak więc, w przypadku Scrum, ciągła dostawa następuje po pomyślnym zakończeniu każdego sprintu. Kanban to kolejna zwinna metodologia oparta na bardzo prostej idei, że praca w toku powinna być ograniczona, a nowa praca powinna rozpoczynać się tylko wtedy, gdy bieżąca praca jest dostarczana lub ciągnięta przez funkcję niższego rzędu. Chociaż zarówno Kanban jak i Scrum mają pewne podobieństwa, Kanban nie jest Scrumem i odwrotnie.