Kanban je jedna od danas vrlo popularnih i često korišćenih metodologija agilnog razvoja softvera, a glavni fokus Kanbana se zasnva na fleksibilnosti i kontinuiranim promenama tokom razvoja. Kroz Kanban principe, koji nisu komplikovani, razvojni tim je u mogućnosti da lakše upravlja svojim resursima, prati trenutno aktivne zadatake i time jasnije sagleda trenutno stanje projekta i bolje planira buduće aktivnosti.
Suština Kanban metodologije je tabla (board) podeljena u šest vertikalnih sekcija (broj sekcija nije striktan i može se menjati u zavisnosti od dogovora). Svaka od sekcija predstavlja stanje jednog razvojnog zadatka (task), a ideja je da svaki task, kako bude napredovao ka svom završetku, prelazi iz jedne sekcije u drugu, i to sekvencijalnim putem, bez preskakanja.
Tipična Kanban tabla sadrži sledeće sekcije:
- backlog – izvor taskova, kojim najčešće upravlja naručilac projekta. On generiše zadatke i smešta ih u ovu sekciju
- ready – taskovi koji su u potpunosti jasni razvojnom timu i spremni su za početak njihovog rešavanja
- coding – taskovi koji se trenutno rešavaju
- testing – taskovi čija se rešenja trenutno testiraju
- approval – taskovi koji su uspešno prošli proces testiranja i čekaju na odobrenje za puštanje u produkciju
- done – taskovi koji su uspešno pušteni u rad. Ovo je izlazna sekcija i krajnje stanje svakog zadatka
Kako radi Kanban? Prosto, generisani taskovi se stavljaju u prvu sekciju, sortiraju se po želji znajući da će task sa vrha uvek prvi biti preuzet u narednu sekciju. Svaki od zadataka prolazi kroz sva stanja svojim tempom, s obzirom da su neki taskovi mali i mogu se brzo završiti, dok su neki drugi širi, obimniji i za njih je potrebno više vremena.
Ideja Kanbana je da se ograniči broj taskova koji se mogu naći u svakoj od kolona Kanban table (takozvani Work In Progress parametri – WIP). Multitasking je ubica efikasnog rada, zato što iziskuje konstantne napore i vreme utrošeno na promenu konteksta rada (praktično za skakanje sa zadatka na zadatka), i zbog toga se Kanban fokusira na ograničavanje maksimalnog broja zadataka na kojima se radi.
To prosto znači da ako imamo limit na nekoj sekciji i ako je on trenutno ispunjen – da nijedan task iz prethodne sekcije (iako je možda spreman za prelazak) ne može preći u tekuću dok se u njoj ne oslobodi mesta. Ovo može zvučati problematično i kao neka pojava koja će gušiti i usporavati rad na projektu, međutim u realnosti je sasvim druga priča – time se sprečava preopterećenje članova razvojnog tima, a i forsira se kontinuiran rad kroz projekat. Drugim rečima – ako su neki zadaci zaglavili i blokiraju resurse, treba učiniti dodatan napor oko njih i rešiti problem, a ne ostaviti ga da se razvija svojim preterano sporim tokom i nastaviti rad na drugom mestu.
Magija Kanbana
Upotrebom Kanbana razvojni tim može doći do vrlo bitnih statistčkih podataka i saznanja koja mogu iskoristiti kako bi unapredili efikasnost. Praćenjem nekih osnovnih parametara poput vremena potrebnog za svaki zadatak da prođe kroz sve sekcije (cycle time), zatim vremensko praćenje broja zadataka u svakoj od sekcija, razvojni tim može videti koji deo razvoja je najproblematičniji i šta usporava rad. Te informacije se zatim mogu upotrebiti u baždarenje – povećavanje ili smanjivanje limita (WIP parametara) za svaku od sekcija, čime će se razvojni proces manje ili više izmeniti, a kao glavni cilj baždarenje traži se minimizacija prosečnog vremena potrebnog za završetak jednog zadtka. Kroz ovu optimizaciju razvojni tim će biti u stanju i lakše da predvidi vreme neophodno za završetak nekog novog zadatka.
Još jedna koncepcijska razlika kod Kanbana, u odnosu na druge metodologije razvoja softvera, je to što nema striktno definisanih uloga i jasno definisanih rokova, već se uloge raspodeljuju dinamično, i po trenutnom stanju na tabli, dok se rokovi mogu, ali i ne moraju zacrtavati, s obzirom da se dobrim planiranjem i preciznom analizom statističkih podataka mogu predvideti vremenski trenuci završetka svakog zadatka.
Kako isprobati Kanban
Postoje razni task-management alati koji podržavaju Kanban metodologiju, a ukoliko sami želite da isprobate i dalje istražite Kanban principe mi vam preporučujemo Kanbanery, koji je besplatan za projekat sa samo jednim korisnikom. Takođe, preporučujemo vam i e-knjigu “Kanban and Scrum” u kojoj možete pročitati više detalja o jednoj i drugoj metodologiji, njihove međusobne sličnosti i razlike. Knjiga je takođe besplatna i možete je preuzeti ovde.