Aivan kuten rakentamisessa käytetään piirustusta ja aterian valmistuksessa noudatetaan reseptiä, myös tehokkaassa ohjelmistokehityksessä on periaatteita, joita on noudatettava. Nämä periaatteet kiteytyvät siihen, mitä yleensä kutsutaan ohjelmistokehitysmenetelmäksi. Ohjelmistokehitysmenetelmä on välttämätön, sillä se sisältää menettelytapoja, jotka johtavat ohjelmistokehitysprojektin onnistumiseen.
Jos rakentamisessa ei noudateta suunnitelmaa, tulos on katastrofi, ja niin on myös ohjelmistotuotteen rakentaminen ilman oikeiden periaatteiden noudattamista. Sinulta jää huomaamatta monia ratkaisevia vaiheita ja sinulla on lopulta lukemattomia ohjelmistojen laatuun liittyviä haasteita. Projektipäällikkönä on tärkeää tietää, että ohjelmistoprojektissa voidaan noudattaa monia lähestymistapoja, mukaan lukien lean-kehitysmenetelmä, ja että oikein valittuna ohjelmistokehitysmenetelmä tuottaa aina laadukkaan ohjelmistotuotteen.
Lean-ohjelmistokehitys
Lean-ohjelmistokehitysmenetelmä on eräänlainen ketterä lähestymistapa, joka perustuu lean-valmistuksen periaatteisiin. Lean-valmistus käsittää erittäin menestyksekkäät periaatteet, joita käytettiin ensimmäisen kerran Toyota-tuotantojärjestelmässä käytäntönä hallita ja optimoida ajoneuvojen tuotantoprosessia asiakasarvon lisäämiseksi ja hukan minimoimiseksi.
Jos lean-periaatteet liittyvät moottoriajoneuvojen valmistukseen, miten ohjelmistokehitys liittyy tähän? Tiedämme, että valmistus ja ohjelmistokehitys ovat erilaisia – valmistuksessa luodaan fyysisiä tuotteita, kun taas ohjelmistokehitystuote on aineeton ja sen arvo voidaan hahmottaa ja luoda vain kehitystiimin mielissä.
Kartoitus lean-valmistuksen ja lean-ohjelmistokehityksen välillä syntyi ensimmäisen kerran vuonna 2003 kirjassa ”Lean Software Development: An Agile Toolkit”, jonka ovat kirjoittaneet Mary ja Tom Poppendieck. Kirjassa Poppendieckit tulkitsevat, miten lean manufacturing -periaatteita voidaan soveltaa tuottavasti ohjelmistokehitykseen. Sekä valmistus että ohjelmistokehitys noudattavat toistettavia menettelyjä ja edellyttävät tarkkoja laatustandardeja. Ne perustuvat myös tiimityöhön. Siten seitsemää Lean Manufacturing -periaatetta voidaan soveltaa ja käyttää ohjelmistokehityksessä.
Seitsemän Lean-periaatetta ohjelmistokehityksessä noudatettavaksi
Ketterät kehittämismenetelmät ovat suosittuja monissa kehitysyrityksissä, koska ne mahdollistavat nopeamman tavan kehittää ohjelmistotuotteita. Tällaiset yritykset ottavat jo käyttöön lean-kehitysperiaatteita. Tässä on 7 lean-periaatetta, joita voit soveltaa ohjelmistokehitysprojekteissasi:
- Eliminate Waste
Ensimmäinen lean-kehityksessä noudatettava periaate on poistaa kaikki se, mikä ei tuota arvoa loppukäyttäjälle. Ohjelmistokehityksessä tämä periaate voidaan toteuttaa tunnistamalla ensin rakennettavan ohjelmistotuotteen arvo. Kun tämä on tehty, on helpompi havaita ”hukka” eli kaikki se, mikä ei tuo lisäarvoa tuotteelle ja lopulta käyttäjille, mukaan lukien tarpeeton koodi, epäselvät vaatimukset, ylimääräiset ominaisuudet ja prosessit jne. Menetelmän muut vaiheet, jotka eivät tuota arvoa, on myös poistettava. Ohjelmistokehityksen hukan tunnistamiseen on olemassa apuvälineitä, kuten arvovirtakartoitus.
- Tietämyksen luominen
Ohjelmistokehitys itsessään on tietämystä tuottavaa etenemistä. Tiedon luomisen periaate kannustaa näin ollen kehitystiimejä luomaan oikeat rakenteet, jotka mahdollistavat asianmukaisen oppimisen. Kuulostaa yksinkertaiselta, mutta periaate vaatii täydellistä keskittymistä ja sitoutumista. Sitä voidaan toteuttaa muun muassa suorittamalla koulutusta, koodikatselmuksia, riittäviä koodikommentteja, pariohjelmointia, projektin dokumentointia ja jakamistilaisuuksia.
- Build Quality In
Lean-kehitystiimin tulisi varmistaa, että se keskittyy laadun kehittämiseen tuotteessa. Niiden ei siis pitäisi olla riippuvaisia siitä, että varmistetaan virheetön lopputuote. Päinvastoin, tiimien olisi jatkettava kehitysprosessin parantamista ja lopetettava virheiden hajauttaminen tuotteeseen alusta alkaen toimivan lopputuotteen aikaansaamiseksi.
- Nopea toimitus
Agile-kehitystekniikoissa keskitytään toimittamaan ohjelmisto mahdollisimman nopeasti. Lean-kehitys, joka on ketterä lähestymistapa, korostaa myös nopeaa ohjelmistotoimitusta. Se tarkoittaa, että projektiryhmän on toimitettava kohdennettu komponentti käyttäjille oikeaan aikaan. Luo tiimillesi tasaiset ja vakaat työnkulut, jotka syntyvät prosessin arvon ymmärtämisestä nopeampien tulosten mahdollistamiseksi.
- Vahvista tiimiäsi
Projektitiimisi vahvistaminen edellyttää kaikkien kunnioittamista – tiiminä yhdessä työskentelevien ihmisten tulisi kunnioittaa toisiaan. Kun asiat menevät pieleen, ja useimmiten niin käy, älä syytä ihmisiä. Tarkista sen sijaan, onko prosessissa aukkoja, jotka voivat johtaa haasteisiin ja konflikteihin. Luo kaikille suotuisa työympäristö ja toimi esimerkkinä. Anna lisäksi tiimin jäsenille innovatiivista vapautta valita ja tunnistaa oikeat lähestymistavat ja työkalut kaikkiin annettuihin tehtäviin.
- Päätösten tekemisen viivyttely
Tiedän, että tämä kuulostaa ristiriitaiselta, sillä perinteisesti meillä on tapana työskennellä tekemällä päätöksiä mahdollisimman nopeasti. Lean-periaatteena myöhään päättäminen ei tarkoita vastuuttomuutta päätösten tekemisessä. Sen sijaan se kannustaa projektiryhmää pitämään vaihtoehtoja auki pidempään, jotta se voi kerätä lisää tietoa ja tietoja, jotka voivat auttaa tekemään ratkaisevia päätöksiä. Päätöksen tekemisen lykkääminen antaa enemmän aikaa oppia ja hankkia lisää tietoa, mikä johtaa entistä parempiin päätöksiin. Tämän seurauksena projektisi ei kärsi kielteisistä vaikutuksista, jotka voisivat johtua huonosta päätöksenteosta. Ajattele, tekisitkö mieluummin hätiköidyn päätöksen ja katuisit sitä myöhemmin vai ottaisitko aikaa tietojen keräämiseen ja tekisit oikean päätöksen?
- Optimoi kokonaisuus
Pyrkikää aina optimoimaan koko kehitysprosessi eikä vain osaprosesseja. Jos lisäät arvoa vain yhteen tai vain muutamaan prosessiin, se vaikuttaa lopputuotteeseen, ja tuloksesi ovat alioptimoituja. Sinun ei pidä lanseerata huonompaa tuotetta siksi, että sinulla ei ollut tarpeeksi aikaa. Alioptimoinnin käsittelemiseksi optimointi kokonaisuutena -periaate kannustaa poistamaan noidankehitys- ja testaussyklit ja sen sijaan toimimaan paljon paremmalla työkapasiteetilla. Kokonaisuuden optimointi mahdollistaa prosessin arvovirtojen tunnistamisen koko tiimille, mikä mahdollistaa nopeamman ja arvokkaamman toimituksen. Keskity siis koko arvovirtaan alusta loppuun optimoinnin saavuttamiseksi.