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 Kanbana
Karty Kanbana

Karty Kanban są niezbędnymi elementami tablicy Kanban, ponieważ reprezentują pracę, nad którą pracuje zespół. Te karty będą miały

  1. Priorytet
  2. Właściciel
  3. Typ
  4. 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

  1. Do zrobienia,
  2. dev
  3. Testy
  4. 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:

  1. 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.
  1. 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.
  1. Szanuj bieżący proces, role i obowiązki: Jeszcze raz zacznij od tego, co masz teraz i stopniowo zmieniaj proces, rolę i obowiązki.
  1. 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:

  1. 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
  1. 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.
  1. 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ć.
  1. 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.
  1. 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.
  1. 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.

Schemat skumulowanego przepływu Kanban
Schemat skumulowanego przepływu Kanban
  1. Czas oczekiwania: Jest to czas pomiędzy pojawieniem się nowej karty w obiegu pracy a jej ostatecznym opuszczeniem obiegu pracy.
  2. Czas cyklu: Jest to czas pomiędzy osiągnięciem przez kartę stanu roboczego a momentem, w którym karta jest gotowa do zwolnienia.
  3. WIP: Praca w toku (WIP) ogranicza maksymalną liczbę elementów pracy na różnych etapach przepływu pracy.
  4. Wydajność: Jest to rzeczywista wydajność, która informuje o faktycznej liczbie kart dostarczonych w danym przedziale czasowym.
  5. 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.

Podsumuj ten post następująco: