Ketterällä ohjelmistokehityksellä tuotetaan arvoa nopeammin ja pienennetään asiakkaan riskiä
Ketterän kehityksen ydin on jatkuvassa arvon tuottamisessa asiakkaalle. Tarkkojen etukäteisvaatimusten ja takarajojen sijaan painopiste on joustavuudessa ja muutoksiin reagoinnissa. Asiakas näkee ohjelmiston edistymisen säännöllisesti, kun kehitystiimi toimittaa valmiita toiminnallisuuksia lyhyissä sykleissä ja pyytää niistä palautetta. Tämä pienentää asiakkaan riskiä siitä, että ohjelmisto ei valmistuisi ajoissa tai olisi asiakkaan tarpeiden ja odotusten mukainen.
Mitä on ketterä kehitys?
Ketterä ohjelmistokehittäminen (engl. agile software development) on pitkään ollut suosittu lähestymistapa ohjelmistokehitykseen. Siihen vaikuttaneita käytäntöjä ja periaatteita on ollut olemassa jo 1970-luvun puolelta saakka. Varsinainen läpimurto tapahtui kuitenkin 2000-luvun alussa ketterän manifestin myötä, joka kiteytti eri ohjelmistokehittäjäyhteisöjen kokemukset yhteisiksi arvoiksi ja periaatteiksi. Siitä lähtien ketterä kehittäminen on saanut yhä enemmän kannatusta, ja sen käyttö levinnyt ohjelmistokehityksen lisäksi myös muille aloille.
Ketterän kehityksen tavoitteena on oppia tekemällä ja tuottaa siten paras mahdollinen ohjelmisto. Etukäteen suunniteltu ohjelmisto ei läheskään aina vastaa sitä, mitä asiakas lopulta haluaa tai tarvitsee. Tarkkojen etukäteisvaatimusten ja takarajojen sijaan ketterässä kehityksessä painopiste on joustavuudessa ja muutoksiin reagoinnissa. Siksi yksityiskohtia ei lukita heti projektin alussa, vaan niitä tarkennetaan projektin edetessä oppimisen pohjalta. Näin myös vältetään turhan työn tekemistä ja suunnittelua sellaisille toiminnallisuuksille, jotka eivät ole prioriteettilistan kärjessä ja jotka tuottavat asiakkaalle vain vähäistä arvoa.
Ketterän kehityksen hyödyt asiakkaalle
Ketterässä kehityksessä keskitytään tuottamaan arvoa asiakkaalle säännöllisillä pienillä toimituksilla. Asiakas on koko kehitysprosessin ajan mukana päättämässä, mitkä ovat tärkeimmät toiminnallisuudet, jotka tulisi toteuttaa seuraavaksi. Tämä tekee kehityksestä läpinäkyvää ja antaa asiakkaalle perinteisempiin kehitystapoihin verrattuna paljon paremman kontrollin siitä, mihin suuntaan kehitys etenee sekä mahdollisuuden muuttaa tuota suuntaa, jos siihen on tarvetta.
Asiakas näkee ohjelmiston edistymisen säännöllisesti, kun kehitystiimi toimittaa valmiita toiminnallisuuksia lyhyissä sykleissä ja pyytää niistä palautetta. Näin asiakas voi varmistua, että ohjelmisto vastaa niitä odotuksia ja tarpeita, joita sille on asetettu. Jos jotain pitää muuttaa tai korjata, se voidaan tehdä nopeasti ennen kuin ongelmat kasvavat liian suuriksi. Tämä pienentää asiakkaan riskiä siitä, että ohjelmisto ei valmistuisi ajoissa tai vastaisi asiakkaan tarpeita.
Ketterän kehityksen avulla asiakas saa paremman kuvan projektin tilasta ja kustannuksista, sillä ne perustuvat todelliseen työhön, eivät epätarkkoihin arvioihin. Ketterällä kehityksellä toteutimme esimerkiksi tämän helppokäyttöisen digitaalisen työkalun monimutkaisten tilausprosessien avuksi ABB:lle.
Ketterän kehityksen onnistuminen vaatii osaavan ohjelmiston toimittajan sekä ketteryydelle avoimen asiakkaan
Ketteryyden omaksuminen ei ole helppoa. Se vaatii sekä asiakkaalta että toimittajalta uudenlaista asennetta ja osaamista.
Asiakkaan näkökulmasta ketteryyden omaksumisessa haastavaa voi olla totutuista toimintatavoista luopuminen. Ketterä kehitys edellyttää asiakkaalta tiivistä yhteistyötä kehitystiimin kanssa, sopeutumista muuttuviin tilanteisiin ja oppimista kehitysprojektin aikana. Jos asiakas on tottunut perinteisiin toimintatapoihin, joissa vaatimukset, suunnitelmat ja budjetit ovat etukäteen määriteltyjä ja lukkoon lyötyjä, voi ketterä kehittäminen tuntua epävarmalta ja herättää pelkoa kontrollin menettämisestä.
Myös ohjelmistojen toimittajilla on toisinaan vaikeuksia ketterän kehittämisen sisäistämisessä. Ketterässä kehityksessä asiakas on tiiviisti mukana prosessissa ja antaa säännöllisesti palautetta kehitystiimille. Toimittajien tulisi olla valmiita ottamaan palaute vastaan, tekemään nopeitakin muutoksia ja oppimaan jatkuvasti uutta. Toimittajan tulisi myös pystyä olemaan avoin ja rehellinen asiakkaalle koko kehitysprosessin ajan, sillä ketteryyden pohja on molemminpuolisessa luottamuksessa.
Lisäksi ketteryyteen vaaditaan kehitystiimin vahvaa teknistä osaamista. Nopea reagointi muuttuviin vaatimuksiin edellyttää laadukasta ohjelmistokoodia, jota voidaan helposti muokata ja laajentaa ilman pelkoa aiemman toiminnallisuuden rikkoutumisesta. Ketterään kehittämiseen kuuluu myös jatkuva toimittaminen, joka tarkoittaa säännöllistä pienien kokonaisuuksien viemistä joko tuotantoon tai vähintäänkin asiakkaan kokeiltavaksi. Se edellyttää toistuvien tehtävien – kuten testauksen, integroinnin ja julkaisujen – automatisointia.
3 myyttiä ketterästä kehityksestä
Ketterän kehityksen suosion kasvu on tuonut mukanaan myös haasteita ja väärinkäsityksiä. Monet yritykset ovat halunneet itselleen ketteryyden mukanaan tuomia etuja, mutta eivät ole olleet valmiita muuttamaan toimintatapojaan tai kulttuuriaan. Vuosien aikana on myös syntynyt monenlaisia myyttejä siitä, mitä ketterä kehitys on tai mitä se ei ole.
Oman kokemukseni perusteella yksi yleisimmistä väärinkäsityksistä on se, että ketterä kehittäminen olisi vain menetelmä, jota voidaan soveltaa ilman syvempää ymmärtämistä. Ajatellaan että tiimistä tulee ketterä, kun se käyttää jotain ketterää kehystä kuten Scrumia. Taustalla vaikuttaa toive siitä, että ketterän kehittämisen hyödyt olisivat saavutettavissa helposti vain menetelmän mekaanisella soveltamisella ilman vaivannäköä ja opettelua.
Valitettavasti ketteryys ei ole näin helppoa. Ketteryys ei ole ensisijaisesti vain menetelmä, vaan se on adjektiivi, joka kuvaa tiimin tai organisaation kykyä reagoida muutoksiin ja tuottaa arvoa asiakkaille. Ketterän kehittämisen ytimessä ovat ihmiset, yhteistyö ja oppiminen. Ketteryyden saavuttamiseen ei ole oikopolkuja, vaan se vaatii aikaa, harjoittelua ja jatkuvaa parantamista.
Toinen yleinen myytti on, että ketteryys olisi vain kehitystyötä tekevän tiimin asia, ei organisaatioon liittyvä asia. Tämän ajatuksen mukaan tiimi voi olla ketterä ilman, että sen tarvitsee välittää organisaation rakenteesta, prosesseista tai kulttuurista. Ikään kuin ketterä tiimi olisi irrallinen saareke, johon organisaation kulttuurilla ei olisi vaikutusta. Todellisuudessa kehitystyötä tekevän tiimin on melko vaikea olla ketterä, jos sen ympärillä oleva organisaatio estää sen toimintaa tai asettaa sille ristiriitaisia tavoitteita. Tiimin ketteryyteen vaaditaan sellaista organisaation kulttuuria, joka mahdollistaa tiimin toimimisen ketterien arvojen ja periaatteiden mukaan.
Kolmas myytti on, että ketteriä menetelmiä käyttämällä kehittäminen olisi nopeampaa kuin perinteisillä kehitystavoilla. Nopeus ei ole ketterässä kehityksessä itseisarvo. Tavoitteena ei ole kehittää nopeammin vaan tuottaa arvoa aikaisemmin. Koko ketteryyden ydin on arvon tuottamisessa asiakkaalle.
Meltlake on kokenut Microsoft-kumppani, joka on erikoistunut toteuttamaan moderneja sovelluskehitysprojekteja Azuren päälle käyttäen alan parhaita menetelmiä. Kauttamme saat toteutettua ohjelmistokehitystä niin pienempään kuin suurempaankin tarpeeseen. Isoissa projekteissa olemme toimittaneet myös osakokonaisuuksia.