Mitä on ketterä ohjelmistokehitys ja mitä se vaatii?
Ketterä ohjelmistokehitys tarkoittaa projektin tekemistä iteroiden yhdessä asiakkaan kanssa. Iteroinnin tarkoituksena on tuottaa jokaisen työvaiheen jälkeen tuotteen osa ja jokaisen iteraation tarkoituksena on tuottaa taas edellistä tuotosta valmiimpi tuote. Näin voidaan havaita nopeammin, toimiiko idea oikeasti ja kehitystä voidaan jatkaa käyttäjäpalautteen ohjaamana.
Ketterä kehittäminen (agile development) on vaihtoehto perinteiselle vesiputousmallille. Nykyään useissa IT-projekteissa käytetään myös ketterän kehityksen ja vesiputousmallin yhdistelmää.
Tyypillistä ketterälle kehitykselle ovat sprintit eli toteutuksen jakaminen pienempiin osiin. Jokaisella sprintillä on omat tavoitteensa, jotka ohjaavat työtä, sekä katselmoinnit, joissa työtä tarkastellaan. Ketterät menetelmät tuovat ohjelmistokehitykseen joustavuutta muutoksille ja nopeuttavat projektikokonaisuutta.
Onnistuakseen ketterä ohjelmistokehitys tarvitsee yhteisiä sääntöjä ja suuntaviivoja. Käymme tässä läpi ketterän ohjelmistokehityksen onnistumisen edellytykset.
Onnistumisessa keskeistä on yhteistyö
Keskeistä ketterässä kehityksessä on se, että ohjelmistokehittäjien ja asiakkaan tulee tehdä tiivistä yhteistyötä koko projektin ajan. Tavoitteena on vastata loppukäyttäjien ja liiketoiminnan tarpeisiin sekä muutoksiin, minkä vuoksi liiketoiminnan ja tarpeiden ymmärtäminen on keskiössä projektin onnistumisessa.
Yhtä kaikille toimivaa ketterää ohjelmistokehitysmallia ei olekaan olemassa, minkä vuoksi jo ennen ohjelmistokehityksen aloitusta on tärkeää ymmärtää, mitä ketteryydellä tarkoitetaan ja miten sitä käytännössä toteutetaan. Kehittäjätiimin ja asiakastiimin odotuksia ja toimintatapoja on käytävä läpi ennen projektin alkua, jotta yhteiset toimintatavat ovat selkeät ja projektin ketterä toteutus on mahdollista. Keskustelun pohjalta on hyvä määrittää yhteiset pelisäännöt projektille.
Ketterässä ohjelmistokehityksessä asiakkaalla on iso vastuu. Asiakkaalla tulee olla kehitettävälle tuotteelle tai ratkaisulle yksi omistaja eli product owner, joka osallistuu projektiin aktiivisesti. Tuoteomistajan tulee varata tarpeeksi aikaa projektille, minkä lisäksi rooli vaatii päätöksentekokykyä. Päätöksiä tulee tehdä erityisesti työn määrittelyvaiheessa sekä kehitysvaatimusten ja muutosten priorisoinnissa.
Ketterän ohjelmistoprojektin vaiheet
Ketterä ohjelmistokehitysprojekti etenee sprinteissä, joita voi olla suppeammissa projekteissa vain yksi ja laajemmissa projekteissa useampi. Jokainen sprintti on kuin pieni ohjelmistoprojekti. Yhden sprintin pituus on keskimäärin yhdestä neljään viikkoa ja sen aikana edetään ketterästi iteroiden.
Yleisesti ohjelmistoprojekti Sarkaimella etenee seuraavasti alkukartoituksen ja tarjouksen hyväksynnän jälkeen:
- Ohjelmistokehitysprojekti alkaa yhteisellä Workshop-palaverilla, jossa käydään projektin sisältö läpi. Tämän jälkeen teemme projektin tarkemman kuvauksen ja määrittelyn yhdessä asiakkaan kanssa.
- Määrittelyvaiheen jälkeen toteutamme prototyypin, jossa esitetään oleellisimmat näkymät ja toiminnot. Asiakas voi näin ollen tutustua lopulliseen tuotteeseen jo hyvin varhaisessa vaiheessa.
- Kun prototyyppi on hyväksytty ja siihen päivitetyt muutokset toteutettu, voidaan aloittaa tekninen toteutus. Tekninen toteutus etenee sykleissä, jossa projektia viedään eteenpäin 1-3 viikon sprinteissä. Asiakas on vahvasti mukana koko projektin ajan, minkä lisäksi yhteisiä katselmointeja pidetään muutaman viikon välein.
- Ennen tuotteen julkaisua tehdään lopputestaus, joka tarkoittaa laajaa molemminpuolista testausta, asiakkaan sekä kehittäjän näkökulmasta. Joissakin projekteissa Sarkain käyttää apuna ulkopuolista testaajaa.
- Julkaisun jälkeen Sarkain tarjoaa kaikille kehittämilleen digitaalisille palveluille jatkokehitystä ja ylläpitoa.
Ketterä toteutustapa mahdollistaa sen, että projektin aikana toteutukseen voidaan tehdä muutoksia. Näin voisi olla esimerkiksi tapauksessa, jossa jokin toiminnallisuus ei ole tarpeen tai projektin lopputulokseen toivotaan muutoksia, jotka ovat ilmenneet testausvaiheen aikana.
Ketterässä ohjelmistoprojektissa toimijoilla on tarkat etukäteen määritetyt roolit.
Tuoteomistaja (Product Owner)
Tuoteomistaja on yksittäinen henkilö, joka on vastuussa tuotteen arvon maksimoinnista ja kehitystiimin työstä. Hän vastaa mm. tuotteen kehitysjonosta ja sen kehittymisestä. Usein ohjelmistokehitysprojekteissa tuoteomistaja on asiakkaan liiketoiminnan edustaja.
Kehitystiimi
Koostuu ammattilaisista, kuten ohjelmistokehittäjistä, jotka muuttavat kehitysjonon tuotteeksi. Tiimi vastaa kehityksestä yhdessä. Tiimi esittelee työn edistymisen katselmuksissa, joissa tuoteomistaja arvioi etenemistä ja onnistumista.
Scrum Master
Scrum Masterin tärkein tehtävä on palvella tuoteomistajaa ja kehitystiimiä. Hän fasilitoi työtä, poistaa esteitä ja viestii aktiivisesti. Scrum Master ylläpitää myös ketterien menetelmien noudattamista.
Ketterien menetelmien hyödyt ohjelmistokehityksessä
Ketterä ohjelmistokehitys pyrkii aina vastaamaan asiakkaan tavoitteisiin ja ratkaisemaan ne tehokkaasti. Tavoitteena on siis tuottaa ohjelmisto juuri oikeaan tarpeeseen.
Ketterä malli on tehokas, tarvekeskeinen ja joustava tapa toteuttaa ohjelmistoja. Asiakkaana pääset osallistumaan projektin kaikkiin vaiheisiin. Ketterän mallin etuna on erityisesti aikaisen vaiheen testaus, jolla varmistetaan ratkaisun vastaavan liiketoimintasi tarpeita.
Ketterä ohjelmistokehitys mahdollistaa ongelmakohtien tunnistamisen ja niihin tarttumisen mahdollisimman aikaisin, sillä ohjelmistokokonaisuutta rakennetaan vaiheissa. Myös testikäyttäjien palaute pystytään huomioimaan ja implementoimaan suunnitelmaan nopeasti.
Ketterää ohjelmistokehitystä Sarkaimelta
Ketterä ohjelmistokehitysprojekti käynnistyy tarvekartoituksella, jonka pohjalta voimme määrittää kustannusarvion työlle. Kustannusarviossa huomioidaan mm. työn laajuus ja vaativuus. Arviomme on pitänyt paikkansa yli 90 % toteutuneista projekteista.
Tavoitteemme on luoda sinun tarpeidesi ja toiveidesi mukainen ohjelmisto, ja sen saavuttaaksemme tulemme tekemään tiivistä yhteistyötä kanssasi. Intohimomme on kehittää ja räätälöidä ohjelmistoja asiakkaillemme, jotta asiakkaamme voivat tarjota entistä parempia palveluita ja palvelukokemuksia heidän asiakkailleen.
Ole rohkeasti yhteydessä meihin, vaikka ideasi ei vielä olisikaan täysin valmis! Me autamme sinua tekemään määrittelyn ja tuomaan ideasi eloon.