Kanban model u softverskom inženjerstvu

Što je Kanban?

Kanban je vrlo popularan okvir za razvoj u agilnoj metodologiji razvoja softvera. Omogućuje transparentan način vizualizacije zadataka i radne sposobnosti tima. Uglavnom koristi fizičke i digitalne ploče kako bi članovima tima omogućili vizualizaciju trenutnog stanja projekta na kojem rade.

Kanban je nastao u Toyoti 1940-ih. Kanban na japanskom znači "panoi". Kanban ploča ima stupce i kartice s pričama. Stupci nisu ništa, ali stanja tijeka rada i kartice nisu ništa drugo nego demonstracija stvarnog zadatka koji član tima obavlja.

Kada koristiti Kanban?

Evo razloga za korištenje Kanban razvojne metode:

  • Kanban se može koristiti u bilo kojoj domeni, a može se vrlo učinkovito koristiti u razvoju softvera. Kanban upravljanje projektima pomaže u poboljšanju učinkovitosti tima.
  • To je sustav koji se temelji na povlačenju. Zadaci se povlače čim se pojedinac oslobodi.
  • Kanban treba koristiti kada želite objaviti svoj rad u bilo kojem trenutku. Zahtijeva git grananje, ali je izvedivo.
  • Kanban treba koristiti kada želite mijenjati prioritete u hodu. Za to sve što trebate učiniti je staviti ovu priču na vrh to-do reda čekanja.
  • Trebalo bi ga koristiti kada želite vizualizirati svoj rad i želite vizualno vidjeti napredak svojih zadataka.

Kanban kartice

Kanban sustav preporučuje vizualizaciju rada. Predlaže korištenje fizičke i digitalne ploče.

Kanban kartice
Kanban kartice

Kanban kartice ključni su dijelovi na Kanban ploči jer predstavljaju rad na kojem tim radi. Ove karte će imati

  1. Prioritet
  2. Vlasnik
  3. Tip
  4. Datum dospijeća

Stupac na Kanban ploči predstavlja fazu rada, a na stupac možete postaviti ograničenje WIP (Rad u tijeku). WIP limit znači najveći broj karata koje mogu ostati u tom stupcu.

Budući da Kanban upravljanje projektima koristi sustav koji se temelji na povlačenju, kad i kada je programer slobodan, on/ona može povući karticu iz stupca zadataka u stupac programera.

Kanban zajednica

Kanban zajednica je agilni alat za upravljanje projektima koji pomaže implementirati Kanban za upravljanje projektima za osobne i poslovne svrhe. To je fizička ili digitalna (JIRA) ploča dizajnirana da pomogne timovima da vizualiziraju svoj rad u različitim fazama i procesima. Također pomaže predstaviti faze rada sa stupcima pomoću kartica.

Ima stupce koji predstavljaju status rada poput

  1. Napraviti,
  2. dev
  3. Ispitivanje
  4. Gotovo.

Svaki od ovih stupaca može sadržavati kartice <=WIP ograničenja. Kartice predstavljaju stvarni rad.

Možete koristiti pozitivne brojeve da ograničite rad u tijeku, a ovaj granični broj može se postaviti na vrh stupaca u fizičkim i digitalnim Kanban pločama. Svaki pojedinac u timu može upravljati stanjem svoje kartice, a cijeli tim može vizualizirati tijek rada. Zatim ćemo u ovom vodiču za Kanban učiti o tijeku rada Kanbana.

Kanban tijek rada

Kanban tijek rada je skup koraka koji pomaže timovima da definiraju eksplicitne politike i načela u Kanbanu. Predstavlja pravila i procedure dok se rad odvija kroz različite faze razvoja i ciklusa isporuke. Kanban tijek rada sastoji se od procesa korak po korak između pokretanja i isporuke određenog zadatka.

Osnovno načelo koje slijedi Kanban je, “prestani započeti, počni završavati”. Uz pomoć WIP ograničenja, obavlja se više posla. Postoje prilagodljivi Kanban tijek rada i stanja dostupni u svakom modernom alatu kao što je JIRA.

Ispod su osnovna stanja kojih se mnogi softverski timovi pridržavaju za upravljanje radnim procesom.

Države Razumijevanje zadataka
Napraviti Zadaci ovdje stižu prvi put u ovom stanju.
Spremno za analizu Analizirajte zadatak i u potpunosti dodajte zahtjeve.
Spremni za razvoj Analiza je završena i razvoj može započeti.
U razvoju Zadaci se razvijaju.
Spremno za testiranje Razvoj je završen i sada može početi testiranje.
U testiranju Zadaci se testiraju.
Spremno za puštanje Testiranje završeno; može se dogoditi oslobađanje.
Pušteno/Gotovo Pušten.

Četiri principa Kanbana

Ispod su četiri glavna principa Kanbana:

  1. Počnite s onim što sada imate: Kanban sustav predlaže da radite postupno i počnete s onim što trenutno imate. Budući da je jedna od njegovih praksi kontinuirano poboljšavanje, morate postupno poboljšavati sustav.
  1. Pristajete na postupnu, evolucijsku promjenu: Kanban preporučuje inkrementalnu promjenu u procesu, a ne smijete napraviti veliku promjenu u procesu odjednom.
  1. Poštujte trenutni proces, uloge i odgovornosti: Još jednom, počnite s onim što sada imate i postupno mijenjajte proces, ulogu i odgovornosti.
  1. Potaknite djela vodstva na svim razinama: Svaki pojedinac može djelovati kao vođa i dati ideje za poboljšanje učinkovitosti cjelokupnog Kanban sustava. Nemojte misliti da je to aktivnost na razini upravljanja, te da čak i najmlađi član tima može djelovati kao vođa.

Šest Kanban temeljnih praksi

Slijedi šest glavnih praksi Kanbana:

  1. Vizualizirajte tijek rada: Ovo načelo predlaže postojanje Kanban ploče (fizičke ili digitalne) za vizualizaciju tijeka rada. Svaki pojedinac u timu mora vidjeti svoju karticu i kartice ostalih članova tima. Možete premještati svoje karte u različite stupce prema gornjoj slici. Donosi puno transparentnosti unutar tima i također olakšava rješavanje blokera
  1. Ograničite radove u tijeku: Kanban je sustav koji se temelji na povlačenju i poboljšava učinkovitost tima kako bi se ograničio rad u tijeku i imali zadaci koje tim može izvršiti u zadanom vremenskom okviru. Ovo WIP ograničenje primjenjuje se od početka do kraja tijeka rada. Ograničenje možete primijeniti na vrh stupca pomoću pozitivnog cijelog broja.
  1. Usredotočite se na protok: Ovo načelo usmjereno je na tok i na sve prekide. Ako postoje prekidi ili blokeri, oni se moraju trajno popraviti.
  1. Eksplicitna pravila: Politike se mogu uspostaviti u timu kako bi se smanjila prerada i usredotočilo na područja koja zahtijevaju pozornost ili gdje je to učinkovitije.
  1. Povratna veza: Povratne informacije vrlo su bitne u Kanbanu. Nije samo unutar tima, već između više timova, trenera itd. To pomaže u poboljšanju cjelokupnog zdravlja Kanban sustava.
  1. Stalno Poboljšanje: Ovo je temeljni princip Kanban sustava. Navodi da uvijek možete poboljšati proces, a to će rezultirati boljom učinkovitošću.

Sustav temeljen na povlačenju

Kanban je metoda koja se temelji na povlačenju gdje se zadaci povlače, a ne guraju. Čim popunite svoju trenutnu kartu, možete izvući novu kartu iz prethodnog stupca Kanban ploče.

Uz ograničenje WIP-a, Kanban pomaže u poboljšanju vremena isporuke i vremena ciklusa. Treba postojati najmanji mogući razmak između ova dva vremena. Na primjer, imamo 5 programera i samo 1 testera; što će se dogoditi u ovom slučaju? Uvijek će biti mnogo kartica koje zahtijevaju testiranje, a one će ležati i čekati.

Kako bi prevladao gore navedene probleme i poboljšao učinkovitost, Kanban slijedi pristup temeljen na povlačenju s WIP ograničenjima, gdje bi postojao ograničen broj kartica koje se povlače.

Dakle, ispitivač će povući zadatak iz faze "spreman za testiranje" kada završi svoj trenutni zadatak u ruci. Uz WIP ograničenje u Kanban stupcima (faze razvoja), nećete imati mnogo nenadziranih kartica u Kanban radnom tijeku.

Sustav temeljen na povlačenju također pomaže u pronalaženju točne brzine za tim. S pravom brzinom na mjestu, tim će raditi bolje.

Vrijeme isporuke i vrijeme ciklusa

U Kanban metodi, vrijeme početka i vrijeme ciklusa naširoko se koriste, postoji razlika između to dvoje i važno je to razumjeti kako bi se izbjegla zabuna.

Olovo Vrijeme Ciklus Vrijeme
Vrijeme isporuke mjeri se kao vrijeme između dolaska zadatka u vaš tijek rada i njegovog odlaska iz tijeka rada, što znači da je otpušten. Vrijeme ciklusa mjeri se kao vrijeme između dolaska zadatka u stanje "u tijeku" i dolaska zadatka u stanje "spremno za puštanje".

Ovdje je također važno razumjeti da se ne uključuje vrijeme potrebno između spremnosti za puštanje i stvarnog puštanja.

Cycle Time = Work in Progress/Throughput

U idealnom scenariju, jaz između vremena prijema i vremena ciklusa trebao bi biti minimalan, a Kanban koristi dijagram kumulativnog toka (CFD) za mjerenje povijesnih podataka o dolasku i vremenu ciklusa.

Kumulativni dijagram toka (CFD)

CFD je grafikon koji je dostupan u svim vodećim alati za upravljanje tijekovima rada kao JIRA. Ovaj grafikon mjeri ukupnu količinu radnih kartica/zadataka koji su ušli u tijek rada i prikupili dovršene kartice/zadatke tijekom vremena.

Pomaže vam da imate procjenu prosječnog vremena isporuke i vremena ciklusa za unaprijed određeno vrijeme.

CFD dijagram će vam dati indikatore ili problematična područja koja trebate popraviti. Pružit će vam jasnu sliku, a na temelju ovog dijagrama. Možete ispraviti vrijeme trajanja i ciklusa svog tima.

Kanban kumulativni dijagram toka
Kanban kumulativni dijagram toka
  1. Olovo Vrijeme: To je vrijeme između dolaska nove kartice u vaš tijek rada i njezinog konačnog odlaska iz tijeka rada.
  2. Ciklus Vrijeme: To je vrijeme između dolaska kartice u radno stanje i trenutka kada je kartica spremna za puštanje.
  3. WIP: Rad u tijeku (WIP) ograničava maksimalnu količinu radnih stavki u različitim fazama tijeka rada.
  4. propusnost: To je stvarna izvedba i govori o stvarnom broju isporučenih kartica u određenom vremenskom okviru.
  5. Protok = WIP/vrijeme ciklusa

Ograničavanje WIP-a (radovi u tijeku)

U metodologiji razvoja Kanbana, WIP ograničava broj zadataka/kartica na kojima može raditi član tima ili cijeli tim odjednom.

Ograničenja WIP-a osiguravaju da tim stabilizira svoj rad i povećava prediktivnu prirodu, što je bitno u sustavu koji se temelji na povlačenju. Obično odluku o ograničenju WIP-a donosi sam tim.

Razlog postavljanja WIP ograničenja

Evo razloga za postavljanje WIP ograničenja:

  • Prebacuje fokus na obavljanje stvari dok se pojedinac usredotočuje na jedan po jedan zadatak.
  • Pomaže timovima da razumiju svoje kapacitete.
  • Poboljšava produktivnost i vrijeme ciklusa.
  • Pomaže u izbjegavanju gomilanja zadataka (u načinu čekanja).
  • Pomaže u kretanju tijeka rada i zadaci se nastavljaju kretati.
  • Također pomaže u rješavanju blokera jer se pojedinac ne prebacuje između različitih zadataka.

Scrum vs. Kanban

Evo važnih razlika između Scrum vs. Kanban

Ološ Kanban
Ološ naglašava planiranje. Počinje s planiranjem sprinta i završava s retrospektivom sprinta. Održavaju se mnogi sastanci koji pomažu osigurati da je tim usklađen sa sljedećim koracima, prioritetima i učenjima iz prethodnih sprinteva. Kanban je otvoren za promjene u pokretu. To znači da je manja krutost i stvari se mogu često mijenjati.
Preporučuje prikupljanje mjerenja vremena napravljene tijekom sprinteva Kanban preporučuje grafikone kako biste dobili pregled napretka tima tijekom vremena.
Ološ više ne traži predanost timova. Umjesto toga, radi se o sprinterskim ciljevima i prognozama. Kanban se oslanja na vremenski okvir i prognoze.
Naglašava planiranje, i tako procjena ima vrlo važnu ulogu u Scrumu Kanban ima nema obveznih zahtjeva za procjenu.
Svaki pojedinac ima svoju ulogu i odgovornosti. Ne postaviti uloge tako fleksibilnost u smislu individualnih odgovornosti.
Ponavljanja/Sprints su fiksnog trajanja. Ovo trajanje varira od 2 tjedna do 1 mjeseca. Kanban je ne temelji se na trajanju. Ovo se mjeri prema vremenu ciklusa.
Timovi su potrebno obvezati određenu količinu posla. Obveza nije potrebna nije obavezno za timove.
U ovoj metodi, međufunkcionalne timove važni su jer se mogu nositi s bilo kakvim smetnjama koje mogu uzrokovati usko grlo u razvoju softvera. Nakon specijalizirani tim važno je.
To je nije moguće dodati stavke do tekućih iteracija. Novo stavki možete jednostavno dodati ako je dostupan dodatni kapacitet.
Sprinterski zaostatak posjeduje samo a pojedinačni tim. Višestruki tims može dijeliti Kanban ploču.
Isporučivi materijali su određuju sprintevi, koji skup radova mora biti završen i spreman za pregled. Proizvodi i procesi su isporučuju kontinuirano na potrebnoj osnovi. Dakle, proces testiranja i pregleda odvija se istovremeno.
Metoda razvoja softvera Scrum usredotočuje se na zaostatke. Kanban metoda u potpunosti fokusira se na nadzornu ploču procesa.
Svaki član tima ima posebnu ulogu u Scrumu majstor odlučuje o vremenskim okvirima, vlasnik proizvoda postavlja ciljeve i ciljeve, a članovi tima provode rad na razvoju. Ne postoje unaprijed definirane uloge za tim. Međutim, još uvijek može postojati voditelj projekta; tim se potiče na suradnju i zajednički rad.
Najbolje za projekte sa mijenjanje prioriteta. Idealno za timove sa stabilne prioritete to se vjerojatno neće promijeniti tijekom vremena.
Mjeri proizvodnju koristeći brzinu kroz sprinteve. Mjere proizvodnje pomoću vrijeme ciklusa ili točno vrijeme koje je potrebno za dovršetak jednog cijelog projekta.
Scrum zahtijeva a potpuni odmak od tradicionalnog modela modelu Agile Scrum koji bi implementirao projekt. Kanban ne dopušta drastične promjene u projektu.
To je idealna metoda za projekte s vrlo različiti prioriteti. Najprikladniji za timovi sa stabilnim prioritetima.
U Scrumu je cijeli team se usredotočuje na suradnju i dovršavanje zadatka osigurati kvalitetan razvojni rad. Timovi rade na postizanju ciljeva i smanjiti vrijeme za dovršetak cijelog procesa. Stoga je smanjenje vremenskog ciklusa ovdje najveći pokazatelj uspjeha.
Ološ naglasak na svojim rasporedima; nove stavke ne mogu se dodati ponavljanjima koja su u tijeku. Kanban je po svojoj prirodi više iterativan nema određene vremenske okvire. Tako da se nove stavke mogu stalno dodavati kad god je dostupan dodatni kapacitet.
Cjelokupan posao je obavljen u serije/Sprints. Cijeli projekt izveden je na kretanju jednonitni radni predmet teče.
Scrum master djeluje kao rješavatelj problema. Kanban potiče svaki član tima je vođa i dijeljenje odgovornosti među svima njima.
Scrum propisuje vremenski ograničene iteracije. Kanban se fokusira na planiranje drugačijeg trajanja za pojedinačnu iteraciju.
Scrum pomaže tvrtkama da uštedite vrijeme i novac. Kanban metoda fokus na stalno poboljšanje, produktivnost i učinkovitost.
Postići stabilnu i dosljednu komunikaciju izvedbe na svim razinama. Vjerojatnije je da će članovi tima puno lakše ostvariti svoje ciljeve zbog vizualne prirode Kanban ploča.
Projekt su kodiran i testiran tijekom sprinta Recenzijom u Vjerojatnije je da će članovi tima puno lakše ostvariti svoje ciljeve zbog vizualne prirode Kanban ploča.
To je lakše se prilagoditi stalnim promjenama zbog kratkih sprinteva i redovite povratne informacije. To je dizajniran za redovitu, stabilnu proizvodnju, velike promjene u potražnji kupaca mogu uzrokovati neuspjeh Kanbana.
Ukupni trošak projekta je minimalan što može dovesti do brži i jeftiniji rezultat. Ako zadatak nije točno procijenjen, ukupni trošak projekta nikada neće biti točan. U takvim slučajevima, zadatak se može rasporediti na nekoliko sprinteva.
Ova metodologija zahtijeva iskusne članove tima samo. Dakle, ako se tim sastoji od ljudi koji nisu stručnjaci, projekt se ne može završiti na vrijeme. Ne određene vremenske okvire se dodjeljuju svakoj fazi, tako da članovi tima nikada ne shvate koliko vremena mogu uzeti u svakoj fazi.
U ovoj Agile Scrum metodi jest lakše isporučiti kvalitetan proizvod u zakazano vrijeme. Dizajniran je za a redovita, stabilna proizvodnja, velike promjene u potražnji kupaca mogu dovesti do pada Kanbana.
The projektni plan nikada neće smetati čak i ako član tima napusti tim. Ako netko od članova tima ode tijekom razvoja, može naškoditi razvoju projekta.
Ponekad dnevni sastanci frustrirati članovi tima. Zastarjela Kanban ploča može dovesti do problema u procesu razvoja.
Veliki projekti mogu se lako podijeliti u lako upravljive sprinteve.

Rezime

  • Kanban definicija: Kanban se definira kao agilna razvojna metodologija za razvoj softvera, automobila, robe, lijekova, obuće ili bilo kojeg drugog proizvodnog posla.
  • Kanban koristi Kanban ploču za vizualizaciju rada. Koristi stupce kao faze (to-do, dev, testiranje, itd.) i kartice kao radnu stavku.
  • Kanban metodologija podržava fizičku i digitalnu ploču za vizualizaciju.
  • Kanban je sustav koji se temelji na povlačenju, a karte iz prethodne faze u trenutne faze povlače članovi tima.
  • Kanban metoda koristi CFD dijagram za razumijevanje vremena i vremena ciklusa tima. Ovaj grafikon pomaže timovima da poprave jaz između ova dva vremena i poboljšaju učinkovitost.
  • Kanban razvojna metodologija, WIP ograničava broj zadataka/kartica na kojima može raditi član tima ili cijeli tim odjednom.
  • WIP ograničenja pomiče fokus na obavljanje stvari dok se pojedinac fokusira na jedan zadatak u isto vrijeme.