Kanban w tworzeniu oprogramowania

Kanban
Metoda
Inżynieria oprogramowania
okładka podręcznika
TwórcaDavid J. Anderson
Powstanie2010 r.
Podstawowy schemat



Kanban w tworzeniu oprogramowania - metoda Kanban została zaadaptowana na potrzeby inżynierii oprogramowania przez Davida J. Andersona[1]. Zaobserwowane podobieństwo pomiędzy procesem produkcji oraz wytwarzania oprogramowania, skłoniło go do przełożenia zasad Kanban na warunki i sposób funkcjonowania zespołów programistycznych[2]. Koncepcję wykorzystania metody Kanban w inżynierii oprogramowania przedstawił w książce pt."Kanban: Successful Evolutionary Change for Your Technology Business".

Spis treści

Istota metody

Nazwa Kanban pochodzi z języka japońskiego i w wolnym tłumaczeniu oznacza widoczny opis. Głównym celem zastosowania koncepcji Kanban w inżynierii oprogramowania jest terminowe dostarczenie klientom oprogramowania o wysokiej jakości. Kanban umożliwia sprawowanie pełnej kontroli nad procesem tworzenia oprogramowania, pozwala na wyeliminowanie przyczyn nieefektywności i zwiększenie produktywności[3]. Aby wytworzyć oprogramowanie dokładnie na czas, nie przeciążając przy tym programistów, cały proces, od zdefiniowania zadania do jego dostarczenia do klienta, jest przedstawiony uczestnikom, a programiści redukują zator w pracy.

Kanban może być rozpatrywany w dwuch aspektach:
  • jako wizualny system zarządzania procesem, który mówi, co produkować, kiedy produkować i jak dużo produkować.
  • jako podejście do narastających, ewolucyjnych zmian w procesach w organizacjach.


Metoda Kanban

Metoda Kanban została sformułowana przez Davida J. Andersona jako podejście do narastających, ewolucyjnych zmian w procesach i systemach organizacji. Wykorzystuje ciągniony system produkcji z ograniczeniem pracy w toku, jako mechanizm zapobiegający problemom w działaniu systemów (lub procesów) i pobudzający współpracę nad ciągłym doskonaleniem systemu. Jednym z przykładów takiego systemu ciągnionego jest system Kanban, który został nazwany od tego popularnego systemu.

Metoda Kanban ma swoje korzenie w następujących podstawowych zasadach:
  • Zacznij od wiedzy, którą posiadasz - metoda Kanban nie zaleca specyficznego zestawu ról lub kroków procesu. Metoda Kanban rozpoczyna się posiadanymi przez Ciebie rolami i procesami, i pobudza stałą, narastającą i ewolucyjną zmianę w Twoim systemie. Metoda Kanban to metoda zarządzania zmianami i różni się od procesu tworzenia oprogramowania i zarządzania projektem Kanban.
  • Zgódź się na podążanie za narastającą, ewolucyjną zmianą - organizacja (lub zespół) musi zgodzić się, że ciągła, narastająca i ewolucyjna zmiana jest sposobem na ulepszanie systemów i uczynienia ich stałymi. Ogromne zmiany mogą wydawać się skuteczniejsze, ale maja wyższy stopień porażki z powodu oporu i obaw w organizacji. Metoda Kanban zachęca do małych, stałych, narastających, ewolucyjnych zmian w Twoim obecnym systemie.
  • Szanuj obecny proces, role, obowiązki i tytuły - prawdopodobne jest, że obecnie organizacja posiada jakieś elementy, które działają w akceptowalny sposób i które są warte zachowania. Musimy również starać się pozbyć obaw w celu ułatwienia przyszłych zmian. Godząc się na poszanowanie obecnych ról, obowiązków i tytułów służbowych, eliminujemy początkowe obawy. To powinno umożliwić nam zdobycie szerszego wsparcia dla naszej inicjatywy Kanban. Możliwe, że porównanie Kanban z jakimś innym alternatywnym, bardziej popularnym podejściem, które prowadziłoby do zmian w tytułach, rolach, obowiązkach i hurtowego usunięcia jakichś pozycji, pomoże jednostkom zrealizować korzyści.
  • Przywództwo na wszystkich poziomach - powinno się zachęcać do działań przywódczych na wszystkich poziomach w organizacji, od indywidualnych uczestników do wyższego kierownictwa.


Sześć zasad Kanban w tworzeniu oprogramowania

Anderson zidentyfikował pięć podstawowych cech, które wystąpiły w każdym pomyślnym zastosowaniu metody Kanban.[4] Z czasem zostały ponownie przeanalizowane w praktyce i rozszerzone o dodatkową szóstą.

  1. Wizualizuj – Przepływ pracy intelektualnej jest z natury niewidoczny. Przedstawienie kolejnych etapów procesów na tablicy (ściennej lub elektronicznej) i uczynienie jej widoczną jest istotą zrozumienia, jak praca postępuje. Bez zrozumienia przepływu pracy, wprowadzenie właściwej zmiany jest trudniejsze. Powszechnym sposobem na wyobrażenie sobie przepływu pracy jest użycie tablicy z kartkami i kolumnami. Kolumny na tablicy reprezentują różne stany lub kroki w przepływie pracy np. analiza, wytwarzanie, testowanie, wdrażanie, zadania skończone.
  2. Limituj pracę w toku (ang. WIP – Work in Progress) – ustalenie maksymalnej dopuszczalnej liczby zadań, które mogą znajdować się w danej kolumnie. Wskazuje, że system ciągniony jest wprowadzony w częściach lub całości przepływu pracy. System ciągniony będzie działał jako jeden z głównych bodźców do ustawicznych, narastających, ewolucyjnych zmian w Twoim systemie. System ciągniony może być wdrożony jako system Kanban, system CONWIP (ang. Constant Work in Progress), system DBR (ang. drum-buffer-rope) lub w jakimś innym wariancie. Ważnym elementem jest fakt, że praca w toku na każdym poziomie przepływu pracy jest ograniczona, i że nowa praca jest "ciągnięta" dopiero kiedy dostępna jest możliwość w obrębie lokalnego limitu WIP.
  3. Zarządzaj strumieniem – systematyczny pomiaru takich wartości, jak czas i płynność wykonywania zadań, w celu optymalizacji procesów. Przepływ pracy przez każdy etap jej przepływu powinien być monitorowany, zmierzony i zgłoszony. Poprzez aktywne zarządzanie przepływem, oceniony może być negatywny lub pozytywny wpływ ciągłych, narastających, ewolucyjnych zmian na system.
  4. Wprowadź jawne zasady - pełna jawność prowadzonej polityki. Zanim mechanizm procesu zostanie uczyniony jawnym, często trudne lub niemożliwe jest kontynuowanie dyskusji na temat jego poprawy. Bez wyraźnego zrozumienia, jak przebiega i wygląda praca, każda dyskusja o problemach ma tendencję do bycia emocjonalną, anegdotyczną, subiektywną. Z wyraźnym zrozumieniem możliwe jest prowadzenie bardziej racjonalnej, empirycznej, obiektywnej dyskusji o problemach. W ten sposób bardziej prawdopodobne jest ułatwienie porozumienia w kwestii sugestii dotyczących polepszenia.
  5. Zastosuj sprzężenie zwrotne (ang. feedback loops) - współpraca w celu przeglądania przepływu pracy, kontroli popytu w porównaniu do możliwości działania, monitorowania mierników i wskaźników wyjaśniających znaczące wydarzenia. Działania te są kluczowe dla umożliwienia ewolucyjnych zmian. Organizacje, które nie zastosowały drugiego poziomu informacji zwrotnych - sprawozdań operacyjnych - na ogół nie widzą polepszenia procesu poza lokalnym poziomem zespołowym. W rezultacie nie uświadamiają sobie pełnych korzyści Kanban zaobserwowanych gdzie indziej.
  6. Poprawiaj zespołowo, ewoluuj doświadczalnie (używając modeli i metod naukowych) - współpraca w zespole oraz wykorzystywania doświadczenia w celu doskonalenia systemu i procesów. Metoda Kanban zachęca do małych, stałych, narastających i ewolucyjnych zmian, które pasują do siebie. Kiedy zespoły podzielają zrozumienie teorii na temat pracy, przepływu pracy, procesów, ryzyka, wtedy jest bardziej prawdopodobne, że będą w stanie zbudować podobne zrozumienie problemu lub zasugerować działania poprawiające, na które można się zgodzić dzięki konsensusowi. Metoda Kanban sugeruje, używanie naukowego podejścia do zastosowania ciągłych, narastających, ewolucyjnych zmian. Metoda ta nie sugeruje użycia konkretnej metody naukowej.


Typowymi modelami są:

Zobacz też

Linki zewnętrzne

Bibliografia

ostatnia modyfikacja 20 sierpnia 2016 r.