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 ključni su dijelovi na Kanban ploči jer predstavljaju rad na kojem tim radi. Ove karte će imati
- Prioritet
- Vlasnik
- Tip
- 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
- Napraviti,
- dev
- Ispitivanje
- 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:
- 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.
- Pristajete na postupnu, evolucijsku promjenu: Kanban preporučuje inkrementalnu promjenu u procesu, a ne smijete napraviti veliku promjenu u procesu odjednom.
- Poštujte trenutni proces, uloge i odgovornosti: Još jednom, počnite s onim što sada imate i postupno mijenjajte proces, ulogu i odgovornosti.
- 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:
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- Olovo Vrijeme: To je vrijeme između dolaska nove kartice u vaš tijek rada i njezinog konačnog odlaska iz tijeka rada.
- Ciklus Vrijeme: To je vrijeme između dolaska kartice u radno stanje i trenutka kada je kartica spremna za puštanje.
- WIP: Rad u tijeku (WIP) ograničava maksimalnu količinu radnih stavki u različitim fazama tijeka rada.
- propusnost: To je stvarna izvedba i govori o stvarnom broju isporučenih kartica u određenom vremenskom okviru.
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.