Kanban-malli ohjelmistosuunnittelussa

Mikä on Kanban?

Kanban on erittäin suosittu kehikko ketterän ohjelmistokehitysmetodologian kehittämiseen. Se tarjoaa läpinäkyvän tavan visualisoida tiimin tehtäviä ja työkykyä. Se käyttää pääasiassa fyysisiä ja digitaalisia tauluja, jotta tiimin jäsenet voivat visualisoida työskentelemänsä projektin nykyisen tilan.

Kanban sai alkunsa Toyotasta 1940-luvulla. Kanbanin merkitys japaniksi on "mainostaulut". Kanban-laudalla on sarakkeita ja tarinakortteja. Sarakkeet eivät ole mitään, mutta työnkulun tilat ja kortit ovat vain osoitus ryhmän jäsenen suorittamasta todellisesta tehtävästä.

Milloin Kanbania käytetään?

Tässä ovat syyt Kanban-kehitysmenetelmän käyttämiseen:

  • Kanbania voidaan käyttää kaikilla aloilla ja sitä voidaan käyttää erittäin tehokkaasti ohjelmistokehityksessä. Kanban-projektinhallinta auttaa parantamaan tiimin tehokkuutta.
  • Se on vetopohjainen järjestelmä. Tehtäviä vedetään heti, kun henkilö vapautuu.
  • Kanbania tulee käyttää, kun haluat julkaista teoksen milloin tahansa. Se vaatii git-haaroitusta, mutta se on toteutettavissa.
  • Kanbania tulisi käyttää, kun haluat muuttaa prioriteetteja lennossa. Tätä varten sinun tarvitsee vain laittaa tämä tarina tehtäväjonon kärkeen.
  • Sitä tulisi käyttää, kun haluat visualisoida työsi ja haluat nähdä tehtäviesi edistymisen visuaalisesti.

Kanban-kortit

Kanban-järjestelmä suosittelee työn visualisointia. Se ehdottaa fyysisen ja digitaalisen levyn käyttöä.

Kanban-kortit
Kanban-kortit

Kanban-kortit ovat olennaisia ​​osia Kanban-laudalla, koska ne edustavat tiimin tekemää työtä. Näillä korteilla tulee olemaan

  1. prioriteetti
  2. Omistaja
  3. Tyyppi
  4. Eräpäivä

Kanban-taulun sarake edustaa työvaihetta, ja voit asettaa sarakkeeseen WIP-rajoituksen (Work in Progress). WIP-raja tarkoittaa korttien enimmäismäärää, joka voi jäädä kyseiseen sarakkeeseen.

Koska Kanban-projektinhallinta käyttää pull-pohjaista järjestelmää, kehittäjä voi vetää kortin tehtäväsarakkeesta kehittäjä-sarakkeeseen, kun hän on vapaa.

Kanbanin hallitus

Kanbanin hallitus on ketterä projektinhallintatyökalu, joka auttaa toteuttamaan Kanbanin projekteja henkilökohtaisiin ja liiketarkoituksiin. Se on fyysinen tai digitaalinen (JIRA) taulu, joka on suunniteltu auttamaan tiimejä visualisoimaan työtään eri vaiheissa ja prosesseissa. Se auttaa myös esittämään sarakkeiden työvaiheita korteilla.

Siinä on sarakkeita, jotka edustavat työn tilaa, kuten

  1. Tehdä,
  2. dev
  3. Testaus
  4. Valmis.

Jokaisessa näistä sarakkeista voi olla kortteja <=WIP-raja. Kortit edustavat varsinaista työtä.

Voit käyttää positiivisia lukuja rajoittamaan keskeneräistä työtä, ja tämä rajanumero voidaan sijoittaa sarakkeiden yläosaan sekä fyysisessä että digitaalisessa Kanban-kortissa. Kuka tahansa tiimin jäsen voi hallita korttinsa tilaa, ja koko tiimi voi visualisoida työnkulkua. Seuraavaksi tässä Kanban-opetusohjelmassa opimme Kanban-työnkulusta.

Kanban-työnkulku

Kanban-työnkulku on joukko vaiheita, jotka auttavat tiimejä määrittelemään selkeät käytännöt ja periaatteet Kanbanissa. Se edustaa sääntöjä ja menettelytapoja työn aikana eri kehitys- ja toimitussykleissä. Kanban-työnkulku koostuu vaiheittaisista prosesseista aloituksen ja tietyn tehtävän toimituksen välillä.

Kanbanin perusperiaate on seuraava: "lopeta aloittaminen, aloita lopettaminen". WIP-rajoitusten avulla se tekee enemmän työtä. Kaikissa moderneissa työkaluissa, kuten JIRA, on muokattavissa olevia Kanban-työnkulkuja ja -tiloja.

Alla on perustilat, joita monet ohjelmistotiimit noudattavat työnkulun hallinnassa.

Valtiot Tehtävien ymmärtäminen
Tehdä Tehtävät saapuvat tänne ensimmäistä kertaa tässä tilassa.
Valmiina analysoitavaksi Analysoi tehtävä ja lisää vaatimukset kokonaan.
Valmiina kehittämiseen Analyysi on valmis ja kehitys voi alkaa.
Kehityksessä Tehtäviä kehitetään.
Valmiina testaukseen Kehitys on valmis, ja nyt testaus voi alkaa.
Testauksessa Tehtäviä testataan.
Valmiina julkaisuun Testaus suoritettu; vapautuminen voi tapahtua.
Julkaistu/valmis Julkaistu.

Kanbanin neljä periaatetta

Alla on Kanbanin neljä pääperiaatetta:

  1. Aloita siitä, mitä sinulla on nyt: Kanban-järjestelmä ehdottaa, että työskentelet asteittain ja aloita siitä, mitä sinulla on tällä hetkellä. Koska yksi sen käytännöistä on parantaa jatkuvasti, sinun on parannettava järjestelmää vähitellen.
  1. Suostu jatkamaan asteittaista, evolutiivista muutosta: Kanban suosittelee asteittaista muutosta prosessiin, eikä prosessiin saa tehdä suuria muutoksia kerralla.
  1. Kunnioita nykyistä prosessia, rooleja ja vastuita: Aloita jälleen kerran siitä, mitä sinulla on nyt, ja muuta prosessia, roolia ja vastuita asteittain.
  1. Kannusta johtajuuteen kaikilla tasoilla: Jokainen yksilö voi toimia johtajana ja tarjota ideoita koko Kanban-järjestelmän tehokkuuden parantamiseksi. Ei pidä ajatella, että tämä on johtotason toimintaa, ja tiimin nuorinkin voi toimia johtajana.

Kuusi Kanban-ydinkäytäntöä

Seuraavat ovat Kanbanin kuusi pääkäytäntöä:

  1. Visualisoi työnkulku: Tämä periaate ehdottaa Kanban-levyä (fyysistä tai digitaalista) työnkulun visualisoimiseksi. Jokaisen joukkueen henkilön on nähtävä korttinsa ja muiden joukkueen jäsenten kortit. Voit siirtää korttejasi eri sarakkeisiin yllä olevan kuvan mukaisesti. Se tuo paljon läpinäkyvyyttä tiimiin ja helpottaa myös estäjien ratkaisemista
  1. Rajoita käynnissä olevaa työtä: Kanban on vetopohjainen järjestelmä, ja se parantaa ryhmän tehokkuutta rajoittaa keskeneräistä työtä ja saada tehtäviä, jotka tiimi voi suorittaa tietyssä ajassa. Tämä WIP-rajoitus on voimassa työnkulun alusta loppuun. Voit käyttää rajoitusta sarakkeen yläosassa käyttämällä positiivista kokonaislukua.
  1. Keskity virtaukseen: Tämä periaate keskittyy virtaukseen ja mahdollisiin katkoksiin. Jos häiriöitä tai esteitä on, ne on korjattava pysyvästi.
  1. Selkeät käytännöt: Ryhmässä voidaan laatia politiikkaa, joka vähentää uudelleentyöstöä ja keskittyä alueille, jotka vaativat huomiota tai missä se on tehokkaampaa.
  1. Palautesilmukka: Palautesilmukat ovat erittäin tärkeitä Kanbanissa. Se ei ole vain joukkueen sisällä, vaan useiden joukkueiden, valmentajien jne. välillä. Tämä auttaa parantamaan Kanban-järjestelmän yleistä kuntoa.
  1. Jatkuva parantaminen: Tämä on Kanban-järjestelmän ydinperiaate. Siinä sanotaan, että voit aina parantaa prosessia, mikä johtaa parempaan tehokkuuteen.

Vetopohjainen järjestelmä

Kanban on vetopohjainen menetelmä, jossa tehtäviä vedetään sen sijaan, että niitä työnnetään. Heti kun olet saanut nykyisen korttisi valmiiksi, voit vetää uuden kortin Kanban-taulun edellisestä sarakkeesta.

WIP-rajoituksella Kanban auttaa parantamaan toimitusaikaa ja kiertoaikaa. Näiden kahden ajankohdan välillä tulisi olla pienin mahdollinen ero. Meillä on esimerkiksi 5 kehittäjää ja vain yksi testaaja; mitä tässä tapauksessa tapahtuu? Testaamista vaativia kortteja olisi aina monia, ja ne ovat valmiina odottamassa.

Yllä mainittujen ongelmien voittamiseksi ja tehokkuuden parantamiseksi Kanban noudattaa pull-pohjaista lähestymistapaa WIP-rajoilla, joissa nostettavia kortteja olisi rajoitettu määrä.

Joten testaaja vetää tehtävän "valmis testaukseen" -vaiheesta, kun hän on suorittanut nykyisen tehtävänsä. Kanban-sarakkeiden (kehitysvaiheiden) WIP-rajan ansiosta Kanban-työnkulussa ei ole monia valvomattomia kortteja.

Vetopohjainen järjestelmä auttaa myös löytämään oikean nopeuden joukkueelle. Oikealla nopeudella joukkue pärjää paremmin.

Toimitusaika ja kiertoaika

Kanban-menetelmässä läpimenoaikaa ja sykliaikaa käytetään laajalti, näiden kahden välillä on ero, ja se on tärkeää ymmärtää sekaannusten välttämiseksi.

läpimenoaika Cycle Time
Läpimenoaika mitataan aikana, joka kuluu tehtävän saapumisesta työnkulkuun ja sen poistumiseen työnkulusta, eli se on vapautettu. Jaksoaika mitataan aikana, joka kuluu tehtävän saapumisesta "inprogress"-tilaan ja tehtävän saapumiseen "valmis julkaisuun".

Tässä on myös tärkeää ymmärtää, ettei siihen lasketa aikaa, joka kuluu julkaisuvalmiuden ja todellisen julkaisun välillä.

Cycle Time = Work in Progress/Throughput

Ihanteellisessa skenaariossa läpimenoajan ja sykliajan välisen eron tulisi olla minimaalinen, ja Kanban käyttää kumulatiivista vuokaaviota (CFD) mittaamaan läpimeno- ja sykliaikahistoriatietoja.

Kumulatiivinen virtauskaavio (CFD)

CFD on kaavio, joka on saatavilla kaikissa johtavissa maissa työnkulun hallintatyökalut kuten JIRA. Tämä kaavio mittaa työnkulkuun saapuneiden työkorttien/tehtävien kokonaismäärää ja kerättyjen valmiiden korttien/tehtävien kokonaismäärää ajan mittaan.

Se auttaa sinua saamaan arvion keskimääräisestä läpimenoajasta ja sykliajasta ennalta määritetylle ajalle.

CFD-kaavio antaa sinulle indikaattoreita tai ongelma-alueita korjattavaksi. Se antaa sinulle selkeän kuvan tämän kaavion perusteella. Voit korjata tiimisi läpimenoaikaa ja sykliaikaa.

Kanban kumulatiivinen virtauskaavio
Kanban kumulatiivinen virtauskaavio
  1. läpimenoaika: Se on aika uuden kortin saapumisen työnkulkuun ja sen lopullisen työnkulusta poistumisen välillä.
  2. Cycle Time: Se on aika kortin saapumisesta toimintatilaan ja sen välillä, kun kortti on valmis vapautettavaksi.
  3. WIP: Työ keskeneräinen (WIP) rajoittaa töiden enimmäismäärää työnkulun eri vaiheissa.
  4. suoritusteho: Se on todellinen suorituskyky ja se kertoo toimitettujen korttien todellisen määrän tietyllä aikavälillä.
  5. Suorituskyky = WIP/Cycle Time

Rajoittava WIP (työskentely käynnissä)

Kanban-kehitysmetodologiassa WIP rajoittaa tehtävien/korttien määrää, joita tiimin jäsen tai koko voi työstää kerralla.

WIP-rajat varmistavat, että tiimi vakauttaa työtään ja lisää ennakointia, mikä on olennaista vetopohjaisessa järjestelmässä. Yleensä WIP-rajapäätöksen tekee tiimi itse.

Syy WIP-rajojen asettamiseen

Tässä on syitä asettaa WIP-rajat:

  • Se siirtää keskittymistä asioiden saamiseen, kun yksilö keskittyy yhteen tehtävään kerrallaan.
  • Se auttaa tiimejä ymmärtämään kapasiteettiaan.
  • Se parantaa tuottavuuden läpimeno- ja sykliaikaa.
  • Se auttaa välttämään kasautuvia tehtäviä (odotustilassa).
  • Se auttaa työnkulussa liikkumaan ja tehtävät pysyvät liikkeessä.
  • Se auttaa myös ratkaisemaan estäjät, koska henkilö ei vaihda eri tehtävien välillä.

Scrum vs. Kanban

Tässä ovat tärkeät erot Scrum vs. Kanban

Tungos Kanban
Tungos painottaa suunnittelua. Se alkaa sprintin suunnittelusta ja päättyy sprintin retrospektiiviin. Pidetään monia kokouksia, jotka auttavat varmistamaan, että joukkue on linjassa seuraavien vaiheiden, prioriteettien ja aiempien sprinttien oppimien kanssa. Kanban on valmis tekemään muutoksia tien päällä. Se tarkoittaa, että jäykkyyttä on vähemmän ja asiat voivat muuttua usein.
Se suosittelee keräämistä ajan mittaukset tehty sprinttien aikana Kanban suosittelee kaavioita saadaksesi yleiskatsauksen joukkueen edistymisestä ajan mittaan.
Tungos ei enää pyytää tiimeiltä sitoutumista. Sen sijaan kyse on sprintin tavoitteista ja ennusteista. Kanban luottaa aika-boxing ja ennusteet.
Se painottaa suunnittelua ja niin edelleen arviolla on erittäin tärkeä rooli Scrumissa Kanbanilla on ei pakollisia vaatimuksia arviota varten.
Joka yksilöllä on roolinsa ja vastuut. Ei asettaa roolit niin joustavasti henkilökohtaisten vastuiden kannalta.
Iteraatiot/Sprints on kestoltaan kiinteä. Tämä kesto vaihtelee 2 viikosta 1 kuukauteen. Kanban on ei perustu kestoon. Tämä asia mitataan sykliaikojen perusteella.
Joukkueet ovat velvoitettu sitoutumaan tietty määrä työtä. Sitoutuminen ei välttämätöntä se on valinnainen joukkueille.
Tässä menetelmässä monialaisia ​​tiimejä ovat tärkeitä, koska ne voivat käsitellä kaikkia häiriöitä, jotka voivat aiheuttaa pullonkaulan ohjelmistokehityksessä. Ottaa erikoistunut tiimi on tärkeää.
On kohteita ei voi lisätä käynnissä oleviin iteraatioihin. Uusi kohteita voi helposti lisätä jos lisäkapasiteettia on saatavilla.
Sprintin ruuhkan omistaa vain a yksi joukkue. Useita joukkueitas voi jakaa Kanban-levyn.
Toimitettavat ovat määräytyy sprinteillä, joka on suoritettava ja valmis tarkistettavaksi. Tuotteet ja prosessit ovat toimitetaan jatkuvasti tarpeelliselta pohjalta. Testaus ja tarkistusprosessi siis jatkuvat samanaikaisesti.
Scrum ohjelmistokehitysmenetelmä keskittyy ruuhkaan. Kanban-menetelmä kokonaan keskittyy prosessien kojelautaan.
Joka tiimin jäsenellä on erityinen rooli Scrum master päättää aikatauluista, tuotteen omistaja asettaa tavoitteet ja tavoitteet ja tiimin jäsenet tekevät kehitystyötä. Ryhmällä ei ole ennalta määriteltyjä rooleja. Projektipäällikkö voi kuitenkin silti olla olemassa; tiimiä rohkaistaan ​​yhteistyöhön ja työskentelemään yhdessä.
Paras projekteihin prioriteettien muuttaminen. Ihanteellinen joukkueille vakaat prioriteetit joka tuskin muuttuu ajan myötä.
Mittaa tuotantoa käyttämällä nopeutta sprinttien kautta. Mittaa tuotantoa käyttämällä syklin aika tai tarkan ajan, joka kuluu yhden kokonaisen projektin valmistumiseen.
Scrum vaatii a täydellinen siirtyminen perinteisestä mallista Agile Scrum -malliin, joka toteuttaisi hankkeen. Kanban ei salli radikaaleja muutoksia projektissa.
Se on ihanteellinen menetelmä projekteihin hyvin vaihtelevia prioriteetteja. Sopii parhaiten joukkueet, joilla on vakaat prioriteetit.
Scrumissa koko team keskittyy yhteistyöhön ja tehtävän suorittamiseen tarjota laadukasta kehitystyötä. Joukkueet työskentelevät saavuttaakseen tavoitteensa ja lyhennä koko prosessin suorittamiseen kuluvaa aikaa. Siten aikasyklin lyhentäminen on suurin onnistumisen indikaattori täällä.
Tungos painottaa sen aikatauluja; uusia kohteita ei voi lisätä käynnissä oleviin iteraatioihin. Kanban on luonteeltaan iteratiivisempi ei ole erityisiä aikarajoja. Jotta uusia tuotteita voidaan lisätä jatkuvasti, kun lisäkapasiteettia on saatavilla.
Kokonaistyö on tehty erät/Sprints. Koko projekti suoritetaan liikkeelle yksisäikeinen työkappale virtaa.
Scrum-mestari toimii ongelmanratkaisijana. Kanban rohkaisee jokainen tiimin jäsen on johtaja ja jakaa vastuu heidän kaikkien kesken.
Scrum määrää aikalaatikoituja iteraatioita. Kanban keskittyy suunnittelee erilaista kestoa yksittäistä iterointia varten.
Scrum auttaa yrityksiä säästää aikaa ja rahaa. Kanban menetelmä keskittyä jatkuvaan parantamiseen, tuottavuutta ja tehokkuutta.
Saavuttaa vakaata ja johdonmukaista viestintää suorituskykyä kaikilla tasoilla. Joukkueen jäsenet todennäköisemmin saavuttaa tavoitteensa paljon helpommin Kanban-levyjen visuaalisen luonteen vuoksi.
Projekti ovat koodattu ja testattu sprintin aikana arviot Joukkueen jäsenet todennäköisemmin saavuttaa tavoitteensa paljon helpommin Kanban-levyjen visuaalisen luonteen vuoksi.
On on helpompi sopeutua jatkuviin muutoksiin lyhyiden sprinttien ja säännöllisen palautteen vuoksi. On suunniteltu säännölliseen, tasaiseen tuotantoon, suuret muutokset asiakkaiden kysynnässä voivat saada Kanbanin epäonnistumaan.
Hankkeen kokonaiskustannukset ovat minimaaliset, mikä voi johtaa nopeampi ja halvempi lopputulos. Jos tehtävää ei ole arvioitu oikein, projektin kokonaiskustannukset eivät koskaan ole tarkkoja. Tällaisissa tapauksissa tehtävä voidaan jakaa usealle sprintille.
Tämä menetelmä vaatii kokeneita tiimiläisiä vain. Joten, jos tiimi koostuu ihmisistä, jotka eivät ole asiantuntijoita, projektia ei voida saada valmiiksi ajoissa. Ei tietyt aikarajat on varattu jokaiselle vaiheelle, joten tiimin jäsenet eivät koskaan ymmärrä, kuinka paljon aikaa he voivat viedä jokaiseen vaiheeseen.
Tässä Agile Scrum -menetelmässä se on helpompi toimittaa laadukasta tuotetta sovittuun aikaan. Se on suunniteltu a säännöllinen, tasainen tuotanto, suuret muutokset asiakkaiden kysynnässä voivat saada Kanbanin kaatumaan.
- projektisuunnitelma ei koskaan häiritse vaikka joukkueen jäsen lähtisi joukkueesta. Jos joku tiimin jäsenistä poistuu kehityksen aikana, se voi haittaa projektin kehitystä.
Välillä päivittäisiä kokouksia turhauttaa ryhmän jäsenet. Vanhentunut Kanban-levy voi aiheuttaa ongelmia kehitysprosessissa.
Suuret projektit voidaan helposti jakaa helposti hallittavissa sprinteissä.

Yhteenveto

  • Kanban-määritelmä: Kanban määritellään ketteräksi kehitysmenetelmäksi ohjelmistojen, autojen, tavaroiden, lääkkeiden, kenkien tai minkä tahansa muun valmistustyön kehittämiseen.
  • Kanban käyttää Kanban-taulua työn visualisointiin. Se käyttää sarakkeita vaiheina (tehtävä, kehitys, testaus jne.) ja kortteja työkohteena.
  • Kanban-metodologia tukee fyysistä ja digitaalista taulua visualisointiin.
  • Kanban on vetopohjainen järjestelmä, ja joukkueen jäsenet nostavat kortit edellisestä vaiheesta nykyiseen vaiheeseen.
  • Kanban-menetelmä käyttää CFD-kaaviota joukkueen läpimenoajan ja sykliajan ymmärtämiseen. Tämä kaavio auttaa tiimejä korjaamaan näiden kahden ajoituksen välisen eron ja parantamaan tehokkuutta.
  • Kanban-kehitysmetodologia, WIP rajoittaa tehtävien/korttien määrää, joita tiimin jäsen tai koko voi työstää kerralla.
  • WIP rajoittaa keskittymistä asioiden tekemiseen, kun yksilö keskittyy yhteen tehtävään kerrallaan.