Model Kanban w inżynierii oprogramowania
Co to jest Kanban?
Kanban: to bardzo popularny framework do tworzenia oprogramowania w zwinnej metodologii. Zapewnia przejrzysty sposób wizualizacji zadań i możliwości pracy zespołu. Wykorzystuje głównie tablice fizyczne i cyfrowe, aby umożliwić członkom zespołu wizualizację aktualnego stanu projektu, nad którym pracują.
Kanban powstał w Toyocie w latach 1940. XX wieku. Znaczenie Kanban w języku japońskim to „billboardy”. Tablica Kanban ma kolumny i karty historii. Kolumny to nic, ale stany przepływu pracy i karty to nic innego, jak demonstracja faktycznego zadania, które wykonuje członek zespołu.
Kiedy stosować Kanban?
Oto powody stosowania metody rozwoju Kanban:
- Kanban można zastosować w dowolnej dziedzinie i można go bardzo efektywnie wykorzystać w tworzeniu oprogramowania. Zarządzanie projektami Kanban pomaga w poprawie efektywności zespołu.
- Jest to system oparty na przyciąganiu. Zadania są pobierane, gdy tylko dana osoba będzie wolna.
- Kanbana warto używać wtedy, gdy chcesz w dowolnym momencie wypuścić swoją pracę. Wymaga rozgałęzienia git, ale jest to wykonalne.
- Kanbana warto używać wtedy, gdy chcemy na bieżąco zmieniać priorytety. W tym celu wystarczy umieścić tę historię na szczycie kolejki zadań do wykonania.
- Należy go stosować, gdy chcemy zwizualizować swoją pracę i chcemy wizualnie zobaczyć postęp swoich zadań.
Karty Kanbana
System Kanban zaleca wizualizację pracy. Sugeruje użycie płytki fizycznej i cyfrowej.

Karty Kanban są niezbędnymi elementami tablicy Kanban, ponieważ reprezentują pracę, nad którą pracuje zespół. Te karty będą miały
- Priorytet
- Właściciel
- Typ
- Termin płatności
Kolumna na tablicy Kanban reprezentuje etap pracy i można na niej umieścić limit WIP (Praca w toku). Limit WIP oznacza maksymalną liczbę kart, które mogą pozostać w tej kolumnie.
Ponieważ zarządzanie projektami Kanban wykorzystuje system oparty na ściąganiu, gdy programista jest wolny, może przeciągnąć kartę z kolumny zadań do kolumny deweloperów.
Kanban Board
Kanban Board to zwinne narzędzie do zarządzania projektami, które pomaga wdrożyć Kanban do zarządzania projektami do celów osobistych i biznesowych. Jest to tablica fizyczna lub cyfrowa (JIRA), zaprojektowana, aby pomóc zespołom w wizualizacji pracy na różnych etapach i procesach. Pomaga także przedstawić etapy pracy z kolumnami za pomocą kart.
Zawiera kolumny, które reprezentują status pracy
- Do zrobienia,
- dev
- Testy
- Dotację.
W każdej z tych kolumn mogą znajdować się karty <=limit WIP. Karty przedstawiają rzeczywistą pracę.
Możesz użyć liczb dodatnich, aby ograniczyć prace w toku, a tę liczbę limitu można umieścić na górze kolumn zarówno na fizycznych, jak i cyfrowych tablicach Kanban. Każdy członek zespołu może zarządzać stanem swojej karty, a cały zespół może wizualizować przepływ pracy. Następnie w tym samouczku Kanban poznamy przepływ pracy Kanban.
Przepływ pracy w Kanbanie
Przepływ pracy w Kanbanie to zestaw kroków, które pomagają zespołom zdefiniować jasne zasady i zasady w Kanbanie. Reprezentuje zasady i procedury obowiązujące podczas pracy na różnych etapach cykli rozwoju i dostarczania. Przepływ pracy Kanban składa się z procesów krok po kroku od rozpoczęcia do realizacji konkretnego zadania.
Podstawową zasadą Kanbana jest: „przestań zaczynać, zacznij kończyć”. Dzięki limitom WIP można wykonać więcej pracy. W każdym nowoczesnym narzędziu, takim jak JIRA, dostępne są konfigurowalne przepływy pracy i stany Kanban.
Poniżej znajdują się podstawowe stany, których przestrzega wiele zespołów zajmujących się oprogramowaniem w celu zarządzania przepływem pracy.
| Zjednoczone | Rozumienie zadań |
|---|---|
| Do zrobienia | Zadania pojawiają się tutaj po raz pierwszy w tym stanie. |
| Gotowy do analizy | Przeanalizuj zadanie i całkowicie dodaj wymagania. |
| Gotowy do rozwoju | Analiza została zakończona i można rozpocząć prace rozwojowe. |
| W procesie tworzenia | Zadania są opracowywane. |
| Gotowe do testów | Prace rozwojowe zostały zakończone i można rozpocząć testowanie. |
| W testach | Zadania są testowane. |
| Gotowy do wydania | Testowanie zakończone; uwolnienie może nastąpić. |
| Wydano/Gotowe | Wydany. |
Cztery zasady Kanbana
Poniżej znajdują się cztery główne zasady Kanbana:
- Zacznij od tego, co masz teraz: System Kanban sugeruje pracę stopniowo i zaczynanie od tego, co masz obecnie. Ponieważ jedną z jego praktyk jest ciągłe doskonalenie, należy ulepszać system stopniowo.
- Zgadzam się na stopniowe, ewolucyjne zmiany: Kanban zaleca stopniowe wprowadzanie zmian w procesie i nie wolno wprowadzać dużych zmian w procesie za jednym razem.
- Szanuj bieżący proces, role i obowiązki: Jeszcze raz zacznij od tego, co masz teraz i stopniowo zmieniaj proces, rolę i obowiązki.
- Zachęcaj do podejmowania aktów przywództwa na wszystkich poziomach: Każda osoba może pełnić rolę lidera i dostarczać pomysłów poprawiających wydajność całego systemu Kanban. Nie należy sądzić, że jest to czynność na szczeblu kierowniczym i nawet najmłodszy członek zespołu może pełnić rolę lidera.
Sześć podstawowych praktyk Kanban
Poniżej przedstawiono sześć głównych, podstawowych praktyk Kanban:
- Wizualizuj przepływ pracy: Ta zasada sugeruje posiadanie tablicy Kanban (fizycznej lub cyfrowej) do wizualizacji przepływu pracy. Każda osoba w drużynie musi widzieć swoją kartę oraz karty pozostałych członków drużyny. Możesz przenosić swoje karty w różnych kolumnach, jak pokazano na powyższym obrazku. Zapewnia dużą przejrzystość w zespole, a także ułatwia rozwiązywanie blokad
- Ogranicz prace w toku: Kanban to system oparty na przyciąganiu, który poprawia efektywność zespołu, ograniczając pracę w toku i posiadając zadania, które zespół może wykonać w określonych ramach czasowych. Ten limit WIP obowiązuje od początku do końca przepływu pracy. Możesz zastosować limit na górze kolumny, używając dodatniej liczby całkowitej.
- Skoncentruj się na przepływie: Zasada ta koncentruje się na przepływie i wszelkich przerwach. Jeśli występują zakłócenia lub blokady, należy je trwale naprawić.
- Jawne zasady: W zespole można ustalić zasady mające na celu ograniczenie liczby przeróbek i skupienie się na obszarach wymagających uwagi lub tam, gdzie jest to bardziej skuteczne.
- Sprzężenie zwrotne: Pętle informacji zwrotnej są bardzo istotne w Kanbanie. Dzieje się tak nie tylko w obrębie zespołu, ale także pomiędzy wieloma zespołami, trenerami itp. Pomaga to w poprawie ogólnego stanu systemu Kanban.
- Ciągłe doskonalenie: To jest podstawowa zasada systemu Kanban. Mówi, że zawsze można ulepszyć proces, a to zaowocuje większą efektywnością.
System oparty na przyciąganiu
Kanban to metoda oparta na przyciąganiu, w której zadania są przeciągane, a nie wypychane. Gdy tylko skompletujesz swoją obecną kartę, możesz wyciągnąć nową kartę z poprzedniej kolumny tablicy Kanban.
Dzięki limitowi WIP Kanban pomaga w poprawie Lead Time i Cycle Time. Powinna być jak najmniejsza luka między tymi dwoma momentami. Na przykład mamy 5 programistów i tylko 1 testera; co się stanie w takim przypadku? Zawsze będzie wiele kart, które wymagają testowania, a one będą siedzieć bezczynnie i czekać.
Aby przezwyciężyć powyższe problemy i poprawić wydajność, Kanban stosuje podejście oparte na ściąganiu z limitami WIP, w przypadku których liczba kart do pobrania byłaby ograniczona.
Zatem tester wycofa zadanie z etapu „gotowego do testowania”, kiedy zakończy swoje bieżące zadanie. Dzięki limitowi WIP w kolumnach Kanban (etapy rozwoju) w przepływie pracy Kanban nie będzie wielu kart bez nadzoru.
System oparty na przyciąganiu pomaga również w znalezieniu właściwej prędkości dla zespołu. Przy odpowiedniej prędkości zespół będzie spisał się lepiej.
Czas realizacji i czas cyklu
W metodzie Kanban powszechnie stosuje się czas realizacji i czas cyklu. Istnieje między nimi różnica i ważne jest, aby to zrozumieć, aby uniknąć nieporozumień.
| Czas oczekiwania | Czas cyklu |
|---|---|
| Czas realizacji mierzony jest jako czas pomiędzy pojawieniem się zadania w przepływie pracy a jego opuszczeniem, czyli zwolnieniem. | Czas cyklu mierzony jest jako czas pomiędzy osiągnięciem stanu „w toku” a osiągnięciem stanu „gotowe do wydania”. |
W tym miejscu ważne jest również, aby pamiętać, że nie należy uwzględniać czasu, jaki upływa pomiędzy gotowością do wydania a faktycznym wydaniem.
Cycle Time = Work in Progress/Throughput
W idealnym scenariuszu różnica między czasem realizacji a czasem cyklu powinna być minimalna, a Kanban wykorzystuje skumulowany diagram przepływu (CFD) do pomiaru danych historycznych dotyczących czasu realizacji i czasu cyklu.
Skumulowany diagram przepływu (CFD)
CFD to wykres dostępny we wszystkich wiodących narzędzia do zarządzania przepływem pracy jak JIRA. Ten wykres mierzy całkowitą liczbę kart pracy/zadań, które weszły do przepływu pracy i zgromadziły ukończone karty/zadania w miarę upływu czasu.
Pomaga oszacować średni czas realizacji i czas cyklu dla wcześniej określonego czasu.
Diagram CFD wyświetli wskaźniki lub obszary problematyczne, które należy naprawić. Da ci to jasny obraz i to na podstawie tego schematu. Możesz skorygować czas realizacji i czas cyklu swojego zespołu.

- Czas oczekiwania: Jest to czas pomiędzy pojawieniem się nowej karty w obiegu pracy a jej ostatecznym opuszczeniem obiegu pracy.
- Czas cyklu: Jest to czas pomiędzy osiągnięciem przez kartę stanu roboczego a momentem, w którym karta jest gotowa do zwolnienia.
- WIP: Praca w toku (WIP) ogranicza maksymalną liczbę elementów pracy na różnych etapach przepływu pracy.
- Wydajność: Jest to rzeczywista wydajność, która informuje o faktycznej liczbie kart dostarczonych w danym przedziale czasowym.
Wydajność = czas WIP/cyklu
Ograniczanie WIP (praca w toku)
W metodologii rozwoju Kanban, WIP ogranicza liczbę zadań/kart, nad którymi może pracować jednocześnie członek zespołu lub cały zespół.
Limity WIP zapewniają stabilizację pracy zespołu i zwiększają predykcyjny charakter, co jest istotne w systemie pull-based. Zwykle decyzję o limicie WIP podejmuje sam zespół.
Powód ustalenia limitów WIP
Oto powody, dla których warto ustawić limity WIP:
- Przenosi punkt ciężkości z wykonywania zadań na wykonywanie ich, ponieważ jednostka koncentruje się na jednym zadaniu na raz.
- Pomaga zespołom zrozumieć ich możliwości.
- Poprawia produktywność i skraca czas cyklu.
- Pomaga uniknąć kumulujących się zadań (w trybie oczekiwania).
- Pomaga w przepływie pracy i zadaniach w ruchu.
- Pomaga także w usuwaniu blokad, ponieważ dana osoba nie przełącza się między różnymi zadaniami.
Scrum kontra. Kanban
Oto istotne różnice pomiędzy Scrum kontra. Kanban
| Scrum: | Kanban: |
|---|---|
| Scrum: kładzie nacisk na planowanie. Zaczyna się od planowania sprintu i kończy retrospektywą sprintu. Odbywa się wiele spotkań, które pomagają upewnić się, że zespół jest zgodny z kolejnymi krokami, priorytetami i wnioskami z poprzednich sprintów. | Kanban jest otwarty na wprowadzanie zmian w drodze. Oznacza to, że jest mniejsza sztywność i rzeczy mogą się często zmieniać. |
| Zaleca zbieranie pomiary czasu wykonane podczas sprintów | Kanban: poleca wykresy aby uzyskać przegląd postępów zespołu w czasie. |
| Scrum: nie wymaga zaangażowania ze strony zespołów. Zamiast tego chodzi o cele i prognozy sprintu. | Kanban polega na time-boxing i prognozy. |
| Kładzie nacisk na planowanie i tak dalej ocena odgrywa bardzo ważną rolę w Scrumie | Kanban ma brak wymagań obowiązkowych do oszacowania. |
| Każdy jednostka ma swoją rolę i odpowiedzialności. | Nie ustalaj role tak elastycznie w zakresie indywidualnych obowiązków. |
| Iteracje/Sprints mają ustalony czas trwania. Czas ten waha się od 2 tygodni do 1 miesiąca. | Kanban jest nie na podstawie czasu trwania. Ta rzecz jest mierzona w odniesieniu do czasów cykli. |
| Zespoły są wymagane do popełnienia określoną ilość pracy. | Zaangażowanie nie jest konieczne jest to opcjonalne dla zespołów. |
| W tej metodzie zespoły wielofunkcyjne są ważne, ponieważ mogą poradzić sobie z wszelkimi zakłóceniami, które mogą powodować wąskie gardło w rozwoju oprogramowania. | Mający wyspecjalizowany zespół jest ważne. |
| Jest brak możliwości dodania elementów do ciągłych iteracji. | New elementy można łatwo dodać jeśli dostępna jest dodatkowa pojemność. |
| Rejestr sprintu jest własnością wyłącznie pojedynczy zespół. | Zespół wieloosobowymogą udostępniać tablicę Kanban. |
| Produkty dostarczane są określone przez sprinty, którego zestaw prac musi być ukończony i gotowy do recenzji. | Produkty i procesy są dostarczane w sposób ciągły w zależności od potrzeb. Tak więc proces testowania i przeglądu odbywa się jednocześnie. |
| Metoda tworzenia oprogramowania Scrum skupia się na zaległościach. | Metoda Kanban całkowicie skupia się na panelu procesów. |
| Każdy członek zespołu ma określoną rolę w Scrum master decyduje o terminach, właściciel produktu wyznacza cele i zadania, a członkowie zespołu prowadzą prace rozwojowe. | Zespół nie ma z góry określonych ról. Jednakże nadal może istnieć kierownik projektu; zespół jest zachęcany do współpracy i wspólnej pracy. |
| Najlepsze do projektów z zmiana priorytetów. | Idealny dla zespołów z stabilne priorytety co raczej nie ulegnie zmianie w czasie. |
| Mierzy produkcję za pomocą prędkości poprzez sprinty. | Mierzy produkcję za pomocą Czas cyklu lub dokładny czas potrzebny na ukończenie jednej pełnej części projektu. |
| Scrum wymaga: całkowite odejście od tradycyjnego modelu do modelu Agile Scrum, w którym miałby być realizowany projekt. | Kanban: nie pozwala na drastyczne zmiany w projekcie. |
| Jest to idealna metoda dla projektów z bardzo zróżnicowane priorytety. | Najlepiej nadaje się do zespoły o stabilnych priorytetach. |
| W Scrumie cały team koncentruje się na współpracy i wykonaniu zadania w celu zapewnienia wysokiej jakości prac rozwojowych. | Zespoły pracują, aby osiągnąć cele i skrócić czas zakończenia całego procesu. Zatem skrócenie cyklu czasowego jest tutaj największym wskaźnikiem sukcesu. |
| Scrum: nacisk na swoje harmonogramy; nowych elementów nie można dodawać do trwających iteracji. | Kanban jest z natury bardziej iteracyjny nie ma określonych ram czasowych. Dzięki temu można stale dodawać nowe elementy, gdy tylko dostępna będzie dodatkowa pojemność. |
| Całkowita praca jest wykonywana w partie/Sprints. | Cały projekt realizowany jest na zasadzie ruchu jednowątkowy element pracy przepływy. |
| Scrum master działa jako rozwiązanie problemu. | Kanban zachęca każdy członek zespołu jest liderem i dzielenie się odpowiedzialnością między nimi wszystkimi. |
| Scrum przepisuje iteracje ograniczone czasowo. | Kanban skupia się na planujesz inny czas trwania do indywidualnej iteracji. |
| Scrum pomaga firmom oszczędzaj czas i pieniądze. | Metoda Kanbana skupiać się na ciągłym doskonaleniu, produktywność i efektywność. |
| Osiągać stabilna i konsekwentna komunikacja wydajności na wszystkich poziomach. | Członkowie zespołu częściej to robią osiągnąć swoje cele znacznie łatwiej ze względu na wizualny charakter tablic Kanban. |
| Projekt są zakodowane i przetestowane podczas sprintu | Członkowie zespołu częściej to robią osiągnąć swoje cele znacznie łatwiej ze względu na wizualny charakter tablic Kanban. |
| Jest łatwiej dostosować się do ciągłych zmian ze względu na krótkie sprinty i regularną informację zwrotną. | Jest zaprojektowany z myślą o regularnej, stałej wydajnościpoważne zmiany w zapotrzebowaniu klientów mogą sprawić, że Kanban się nie powiedzie. |
| Całkowity koszt projektu jest minimalny, co może prowadzić do szybszy i tańszy wynik. | Jeśli zadanie nie zostanie poprawnie oszacowane, całkowity koszt projektu nigdy nie będzie dokładnyW takich przypadkach zadanie można rozłożyć na kilka sprintów. |
| Ta metodologia wymaga doświadczonych członków zespołu tylko. Jeśli więc zespół składa się z osób niebędących ekspertami, projekt nie może zostać ukończony w terminie. | Nie określone ramy czasowe są przydzielane do każdej fazy, więc członkowie zespołu nigdy nie mają pojęcia, ile czasu mogą zająć w każdej fazie. |
| W tej metodzie Agile Scrum tak łatwiej jest dostarczyć produkt wysokiej jakości o zaplanowanej godzinie. | Jest przeznaczony dla regularna, stała wydajność, poważne zmiany w zapotrzebowaniu klientów mogą spowodować upadek Kanbana. |
| plan projektu nigdy nie będzie przeszkadzał nawet jeśli członek zespołu opuści zespół. | Jeśli którykolwiek z członków zespołu odejdzie w trakcie programowania, może to zrobić zaszkodzić rozwojowi projektu. |
| Czasami codzienne spotkania paraliżować członkowie drużyny. | Przestarzała tablica Kanban może prowadzić do problemów w procesie rozwoju. |
| Duże projekty można łatwo podzielić na łatwe do opanowania sprinty. |
Podsumowanie
- Definicja Kanban: Kanban definiuje się jako zwinną metodologię rozwoju mającą na celu tworzenie oprogramowania, samochodów, towarów, leków, obuwia lub innych prac produkcyjnych.
- Kanban wykorzystuje tablicę Kanban do wizualizacji pracy. Wykorzystuje kolumny jako etapy (do zrobienia, programowanie, testowanie itp.), a karty jako elementy pracy.
- Metodologia Kanban wspiera fizyczną i cyfrową tablicę do wizualizacji.
- Kanban to system oparty na ściąganiu, a karty z poprzedniego etapu do bieżącego etapu są przeciągane przez członków zespołu.
- Metoda Kanban wykorzystuje diagram CFD do zrozumienia czasu realizacji i czasu cyklu zespołu. Ten wykres pomaga zespołom naprawić różnicę między tymi dwoma czasami i poprawić wydajność.
- Metodologia rozwoju Kanban, WIP ogranicza liczbę zadań/kart, nad którymi może pracować jednocześnie członek zespołu lub cały zespół.
- Ograniczenia WIP pozwalają skupić się na wykonywaniu zadań, ponieważ jednostka koncentruje się na jednym zadaniu na raz.
