Kanban

Cum se aplică metodologia kanban dezvoltării de software

Ce este kanban?

Kanban este un cadru popular folosit pentru implementarea dezvoltării de software Agile. Acesta necesită comunicarea în timp real a capacității și transparența totală a activității. Elementele activității sunt reprezentate vizual pe un panou kanban, permițând membrilor echipei să vizualizeze oricând starea fiecărei componente a activității.

Kanban articles

[CONTINUED]

Kanban is enormously prominent among today's agile software teams, but the kanban methodology of work dates back more than 50 years. In the late 1940s Toyota began optimizing its engineering processes based on the same model that supermarkets were using to stock their shelves. Supermarkets stock just enough product to meet consumer demand, a practice that optimizes the flow between the supermarket and the consumer. Because inventory levels match consumption patterns, the supermarket gains significant efficiency in inventory management by decreasing the amount of excess stock it must hold at any given time. Meanwhile, the supermarket can still ensure that the given product a consumer needs is always in stock.

When Toyota applied this same system to its factory floors, the goal was to better align their massive inventory levels with the actual consumption of materials. To communicate capacity levels in real-time on the factory floor (and to suppliers), workers would pass a card, or "kanban", between teams. When a bin of materials being used on the production line was emptied, a kanban was passed to the warehouse describing what material was needed, the exact amount of this material, and so on. The warehouse would have a new bin of this material waiting, which they would then send to the factory floor, and in turn send their own kanban to the supplier. The supplier would also have a bin of this particular material waiting, which it would ship to the warehouse. While the signaling technology of this process has evolved since the 1940s, this same "just in time" (or JIT) manufacturing process is still at the heart of it.

Metodologia Kanban pentru echipele de software

Agile software development teams today are able to leverage these same JIT principles by matching the amount of work in progress (WIP) to the team's capacity. This gives teams more flexible planning options, faster output, clearer focus, and transparency throughout the development cycle.

Kanban Board | Atlassian agile coach

În timp ce principiile de bază ale cadrului sunt nesfârșite și aplicabile aproape în orice domeniu, echipele de dezvoltare de software au înregistrat un succes deosebit în ceea ce privește practica Agile. În parte, acest lucru se datorează faptului că echipele de software pot începe să lucreze cu cheltuieli generale mici sau fără cheltuieli, imediat ce înțeleg principiile de bază. Spre deosebire de implementarea kanban într-o linie de producție care ar implica schimbări în procesele fizice și adăugarea de materiale esențiale, singurele lucruri fizice de care au nevoie echipele de software sunt un panou și carduri, iar chiar și acestea pot fi virtuale.

Panouri kanban

Activitatea tuturor echipelor kanban se învârte în jurul unui panou kanban, un instrument folosit pentru a vizualiza activitatea și pentru a optimiza fluxul de lucru în cadrul echipei. În timp ce panourile fizice sunt populare în rândul anumitor echipe, panourile virtuale reprezintă o caracteristică extrem de importantă pentru orice instrument de dezvoltare de software Agile datorită capacității de urmărire, colaborării mai ușoare și accesibilității din mai multe locații.

Indiferent dacă panoul unei echipe este fizic sau digital, funcția sa este de a asigura vizualizarea activității echipei, standardizarea fluxului de lucru și identificarea și rezolvarea imediată a tuturor obstacolelor și dependențelor. Un panou kanban de bază include un flux de lucru în trei etape: de făcut, în curs și finalizat. Cu toate acestea, în funcție de dimensiunea, structura și obiectivele echipei, fluxul de lucru poate fi proiectat să se potrivească procesului unic al oricărei echipe.

Metodologia kanban se bazează pe o transparență deplină a activității și a comunicării în timp real, așadar panoul kanban ar trebui văzut ca singura sursă de realitate pentru activitatea echipei.

Agile Kanban Board | Atlassian agile coach

Cardurile Kanban

În japoneză, kanban se traduce literalmente cu „semnal vizual”. Pentru echipele kanban, fiecare element al activității este reprezentat ca un card separat pe panou.

Scopul principal al reprezentării activității ca un card pe panoul de tip kanban este de a permite membrilor echipei să urmărească progresul activității prin fluxul său de lucru, într-o manieră extrem de vizibilă. Cardurile Kanban conțin informații critice despre un anumit element de lucru, oferind întregii echipe vizibilitate completă asupra persoanei responsabile pentru acel punct de lucru, o scurtă descriere a activității, durata estimată a activității și așa mai departe. Cardurile de pe panourile virtuale de tip kanban vor afișa adesea capturi de ecran și alte detalii tehnice care sunt valoroase pentru persoana responsabilă. Permițând membrilor echipei să vadă starea fiecărui element al activității la un moment dat, precum și toate detaliile asociate, se asigură un nivel sporit de concentrare, urmărirea completă și identificarea rapidă a blocărilor și a dependențelor.

The benefits of Kanban

Kanban este una dintre cele mai populare metodologii de dezvoltare de software adoptate în prezent de echipele agile. Kanban oferă câteva avantaje suplimentare pentru planificarea și transferul activităților pentru echipele de toate dimensiunile.

Flexibilitate în planificare

A kanban team is only focused on the work that's actively in progress. Once the team completes a work item, they pluck the next work item off the top of the backlog. The product owner is free to reprioritize work in the backlog without disrupting the team, because any changes outside the current work items don't impact the team. As long as the product owner keeps the most important work items on top of the backlog, the development team is assured they are delivering maximum value back to the business. So there's no need for the fixed-length iterations you find in scrum.

PRO TIP:

Savvy product owners always engage the development team when considering changes to the backlog. For example, if user stories 1-6 are in the backlog, user story 6's estimate may be based on the completion of user stories 1-5. It's always a good practice to confirm changes with the engineering team to ensure there are no surprises. 

Shortened time cycles

Cycle time is a key metric for kanban teams. Cycle time is the amount of time it takes for a unit of work to travel through the team’s workflow–from the moment work starts to the moment it ships. By optimizing cycle time, the team can confidently forecast the delivery of future work.

Suprapunerea seturilor de competențe duce la durate mai mici de ciclu. Atunci când numai o persoană deține un set de competențe, persoana respectivă devine un obstacol în fluxul de lucru. Astfel, echipele folosesc cele mai bune practici de bază, cum ar fi revizuirea codului și ajutorul mentorilor, pentru a răspândi cunoștințele. Competențele partajate înseamnă că membrii echipei pot continua o activitate eterogenă, ceea ce optimizează în continuare durata ciclului. Înseamnă, de asemenea, că, dacă există un backup al activității, întreaga echipă poate avea acces la acesta pentru a desfășura procesul fără probleme. De exemplu, testarea nu este efectuată numai de către inginerii pentru asigurarea calității. Și dezvoltatorii efectuează această operațiune.

În cadrul kanban, întreaga echipă trebuie să se asigure că activitatea evoluează fluid pe parcursul întregului proces.

Mai puține blocaje

Multitaskingul ucide eficiența. Cu cât mai multe elemente sunt în lucru simultan, cu cât se schimbă mai mult contextul, ceea ce obstrucționează calea către finalizare. Din acest motiv, unul dintre elementele esențiale din kanban constă în limitarea volumului de activități în desfășurare (WIP). Limitarea activităților în desfășurare evidențiază blocajele și susține procesele echipei atunci când există lipsuri la nivelul concentrării, al personalului sau al seturilor de competențe.

For example, a typical software team might have four workflow states: To Do, In Progress, Code Review, and Done. They could choose to set a WIP limit of 2 for the code review state. That might seem like a low limit, but there's good reason for it: developers often prefer to write new code, rather than spend time reviewing someone else's work. A low limit encourages the team to pay special attention to issues in the review state, and to review others work before raising their own code reviews. This ultimately reduces the overall cycle time.

Valorile vizuale

Una dintre valorile de bază este accentul puternic pe îmbunătățirea continuă a eficienței echipei cu fiecare iterație a activității. Graficele oferă echipelor un mecanism vizual, pentru a se asigura că acestea continuă îmbunătățirea. Atunci când echipa poate vedea date, detectarea blocajelor (și eliminarea acestora) din proces se poate face mai ușor. Două rapoarte comune pe care echipele kanban le folosesc sunt diagramele de control și diagramele cumulative de flux.

Un grafic de control arată durata ciclului pentru fiecare problemă și media continuă pentru echipă.

Pro Tip:

The team's goal is to reduce the amount of time an issue takes to move through the entire process. Seeing the average cycle time drop in the control chart is an indicator of success. 

Agile control chart | Atlassian agile coach

Diagrama fluxului cumulativ indică numărul de probleme din fiecare stare. Echipa poate observa cu ușurință blocajele prin vizualizarea numărului de probleme care cresc în orice stare specificată. Problemele aflate într-o stare intermediară cum ar fi „În desfășurare” sau „În curs de examinare” nu sunt încă expediate clienților, un blocaj în aceste stări putând crește probabilitatea producerii unor conflicte masive de integrare, atunci când lucrările se îmbină în amonte. 

Cumulative Flow Diagram

Livrare continuă

We know that continuous integration–the practice of automatically building and testing code incrementally throughout the day–is essential for maintaining quality. Now it's time to meet continuous delivery (CD). CD is the practice of releasing work to customers frequently–even daily or hourly. Kanban and CD beautifully complement each other because both techniques focus on the just-in-time (and one-at-a-time) delivery of value.

The faster a team can deliver innovation to market, the more competitive their product will be in the marketplace. And kanban teams focus on exactly that: optimizing the flow of work out to customers

Scrum versus kanban

Kanban and scrum share some of the same concepts but have very different approaches. They should not be confused with one another. 

 

SCRUM

KANBAN
Cadență

Sprinturi periodice de lungime fixă (de exemplu, 2 săptămâni)

 Flux continuu
Metodologie de lansare La sfârșitul fiecărui sprint, dacă este aprobată de către deținătorul produsului Livrare continuă la alegerea echipei
Roluri Deținător de produs, master scrum, echipă de dezvoltare Nu există roluri. Unele echipe recrutează un instructor Agile.
Valori esențiale Viteza Timpul ciclului
Schimbarea de filozofie Echipele trebuie să facă eforturi pentru a efectua schimbări în previziunea sprint în timpul sprintului. Procedând astfel, compromit învățarea în jurul estimării. Schimbarea poate apărea oricând

 

Unele echipe îmbină idealurile kanban și scrum în „scrumban”. Aceștia iau sprinturi și roluri cu durată fixă din scrum, focalizarea pe limitele activității în curs și durata ciclului din kanban. Pentru echipele care acum încep să lucreze cu Agile, recomandăm ferm să aleagă una sau alta dintre metodologii și să le execute un timp. Mai târziu, puteți oricând să vă satisfaceți fanteziile. 

Dan Radigan
Dan Radigan

Agile has had a huge impact on me both professionally and personally as I've learned the best experiences are agile, both in code and in life. You'll often find me at the intersection of technology, photography, and motorcycling. Find me on Twitter! @danradigan

Up Next
Panouri