Jedna z najpopularniejszych metod do sprawowania kontroli nad procesem tworzenia oprogramowania. Z założenia ma zwiększyć produktywność programistów i sprawić, żeby się nie nudzili. Byłem świadkiem i uczestnikiem wdrożenia tejże metody. Efekty przyszły bardzo szybko, o czym za chwilę opowiem.[hr]

Jest określony termin. Do tego czasu musi być wszystko zrobione. Na zespół czeka wdrożenie nowych funkcjonalności. Kontrola kodu (Code Review). Testowanie. Poprawianie błędów. We wszystkim pomaga specjalny system do zarządzania zadaniami (np. Assembla, Asana). Codzienne standupy sprawiają, że jakoś się to wszystko kręci.

Wielkimi krokami zbliża się deadline. Spokój zamienia się w lekki stres, który motywuje. Zadania są robione co raz szybciej. Aż tu nagle zespół się nie wyrabia. Jest o krok od przekroczenia terminu. Czekają nadgodziny. To musi być zrobione. Zagraniczny klient nie pozwoli, aby termin się przesunął.
Scenariusz niezbyt kolorowy. Czasami może się zdarzyć. Gorzej, jeśli staje się on czymś normalnym. Nikogo nie zaskakuje. kanban toolNa szczęście są metody, które potrafią odmienić sytuację. Jedną z takich metod jest Kanban. Niezwykle prosty i łatwy w wdrożeniu. Bez zwiększania kosztów, nakładania czasu.
To nie są puste słowa. Byłem świadkiem jak szybko zespół może zacząć korzystać. Wystarczyła jedna osoba z doświadczeniem, która umiejętnie przekazała wiedzę. Wprosty sposób wytłumaczyła i pokazała jak korzystać z Kanbana.

Na czym polega?

Pomysł polega na tym, aby stworzyć specjalną tabelę z odpowiednimi kolumnami. Każda kolumna to osobny proces. I tak też tworzymy kolumnę w której zbieramy wszystkie potrzebne zadania do zrobienia. Następnie kolumnę w której zadania są wykonywane. Kolejna to taka w której są ukończone i gotowe do testów. Zadania wypada przetestować, dlatego przyda się kolumna „Test”. Na koniec, gdy zadanie jest w pełni ukończone można je wrzucić do kolumny „Release ready”.
Wygląda to w taki sposób:kanban1Następnie określa się pewne, proste zasady. Zadania zaczyna wykonywać się w kolejności od lewej do prawej. Jednak priorytety zadań są od prawej do lewej.

Zadanie w teście ze zgłoszonymi błędami ma większy priorytet od tego w „In Progress”. Również określa się limity ilości zadań w kolumnach. Wszystko w zależności od ilości osób w zespole. Na kartkach z zadaniami można wstawiać kreski symbolizujące dni, jak długo „leży” w danej kolumnie.

Fakt. To samo jest w Assembli. Zadania oznacza się w podobny sposób. A jednak widok fizyczny usprawnia pracę. Na standupie widać idealnie, kto na jakim etapie jest ze swoimi zadaniami. Gdzie są problemy, gdzie jest potrzebna pomoc, wsparcie. Dodatkowo karteczka z zadaniem działa motywująco na programistę. Takie fizyczne zadanie chcemy jak najszybciej przepchnąć do „Release ready”.

Co potrzebne?

Aby zacząć korzystać z tej metody potrzebne jest kilka rzeczy biurowych.

  • Tablica obrotowa
  • Idealnie się sprawdza. Łatwo ją przemieszczać. Można obracać.

  • Zestaw akcesoriów do tablic i flipchartów
  • Podstawowy zestaw, który ma w sobie to co najbardziej potrzebne

  • Karteczki
  • Są niezbędne przy użyciu Kanbana.

  • Magnesy do tablicy
  • Najlepiej, żeby były różnego rodzaju. Mogą zawierać wykrzniki (ostrzeżenia), napisy w stylu „Block” etc.

Praktyczne użycie metody Kanban

Dobrze, mamy wszystko co jest potrzebne. Implementacji Kanbana jest wiele. Przedstawię taką, która sprawdziła się w przypadku zespołu w którym pracowałem.

      1. Tabela z odpowiednimi kolumnami

    Podział kolumn może być różny. Nazewnictwo również. Ten, który u nas się sprawdził był pokazany 2 razy.

      2. Zadania w odpowiednich miejscach

    Na początek zadanie ląduje w „Requested”. Zajmuje się tym analityk. Zadania ułożone są w kolejności według priorytetów. Programista bierze pierwsze z góry, te które ma największy priorytet. Przerzuca do „In Progress”. Gdy skończy i przejdzie code review (robione przez innego, bardziej doświadczonego programistę) wrzuca do „Done”.
    Następnie takie zadanie bierze tester i wrzuca do kolumny „Test”. W trakcie testów stara się wykryć błędy. Gdy się pojawiają przykleja specjalny magnes z wykrzynikiem. Zadanie zostaje zwrócone do programisty. Zaś, gdy w zadaniu nie ma błędów, takie zadanie leci do kolumny „Release Ready”.

      3. Czas życia zadania w jednej kolumnie

    Najlepiej, żeby był jak najkrótszy. Czarny scenariusz to taki, w którym wiele zadań leży bardzo długo w kolumnie „Test” z wykrznikiem. Wtedy widać, że w takim zadaniu są kłopoty. Potrzebna jest pomoc innego programisty.

Kanban

      4. „Kreski” na kartce z zadaniem

    Jedna kreska to jeden dzień życia zadania w jednej kolumnie. Każda kolumna to inny kolor. Kreski nie dotyczą kolumn „Requested” i „Releasy ready”. Oczywiście takie kreseczki są jedynie uogólnieniem czasu. Szczegóły znajdują się w systemie zarządzania zadaniami.

      5. Spotkania

    Standup – krótkie, 10minutowe spotkania w których każdy opowiada o tym co robił.

    Jeśli wcześniej zespół był przyzwyczajony do praktyki codzennych standupów, to spotkania przy tablicy nie stanowią problemów. To wtedy analizuje się całą tablice, każdy opowiada w którym miejscu się znajduje i co udało się wypchnąć do „Release ready”. Z doświadczenia mogę powiedzieć, że taka tablica tylko pomaga. Łatwiej zrozumieć czym się zajmuje reszta zespołu. Nie zauważyłem wad po wdrożeniu tej metody.

Wirtualne alternatywy

Jest takich wiele. Jedną z nich jest polski, płatny produkt Kanban Tool. Trudno mi mówić o jego użyteczności, gdy samemu nie miałem okazji korzystać. Takie wirtualne narzędzia sprawdzają się w trakcie pracy zespołów rozproszonych po całym świecie. Na blogu Lubika można przeczytać o Kanban Tool. Są również zagraniczne alternatywy. Co ciekawe trudno znaleźć w miarę użyteczne, bezpłatne narzędzie. Raczej wszystkie, te bardziej sensowne mają specjalne plany z ilością użytkowników.

Podsumowanie

Kanban się sprawdza! Bardzo pomaga. Motywuje zespół do działania. Tak było w moim przypadku i w wielu innych. Nie chciałem przedstawiać suchej teorii na temat Kanbana. Wszystkich zasad i definicji. O tym możecie przeczytać w wielu innych materiałach. U mnie została pokazana jedynie uproszczona wersja Kanbana, użyta na potrzeby małego zespołu.

Ps. grafiki z tabelką zostały narysowane na zwykłej kartce. Nie miałem pod ręką tablicy obrotowej, na której wyglądałoby to bardziej profesjonalnie ;)

Author