Mitä ketterä ohjelmistokehitys tarkoittaa Hurjalla?

16.9.2021 15:21

Ketterä ohjelmistokehitys tarkoittaa lyhyesti sitä, että projekti tehdään iteroiden yhdessä asiakkaan kanssa. Ohjelmistokehityksen menetelmänä ketteryyteen kuuluu, että toteutus jaetaan pienempiin osiin eli sprintteihin. Kuhunkin sprinttiin sisältyy tavoitteiden asettaminen, toteutus ja katselmoinnit.

Ketterä ohjelmistokehitys on ikään kuin filosofia, jota voidaan soveltaa ohjelmistokehityksessä. Tässä blogitekstissä kerromme, mitä ketterä ohjelmistokehitys tarkoittaa meillä Hurjalla ja mitä asiakkaamme hyötyy ohjelmistoprojektin ketteryydestä.

Ketterä ohjelmistokehitys – ohjelmistokehityksen menetelmät, termit ja työkalut

Ohjelmistokehityksen menetelmät voidaan yleisesti jakaa kolmeen kategoriaan: vesiputousmalli (waterfall), nopean kehittämisen malli (RAD), ja ketterät ohjelmistokehityksen menetelmät (agile).

Perinteisessä vesiputousmallissa prosessi etenee alaspäin vaihe vaiheelta, kuten vesiputouksessa. Vesiputousmallissa määrittelyvaihe on pidempi ja vaatimukset lukitaan tässä vaiheessa. Vesiputousmalli voi monissa tapauksissa olla liian kankea monimutkaisen projektin läpivientiin, jos ohjelmiston vaatimukset ja tavoitteet eivät ole täysin selvät jo projektin alussa. Nopean kehittämisen mallissa pyritään prosessin mahdollisimman nopeaan läpivientiin, mutta malli sopii lähinnä hyvin yksinkertaisien ohjelmistojen kehittämiseen.

Tämän blogitekstin aiheena olevassa ketterässä ohjelmistokehityksessä (agile) taas pyritään toteuttamaan projekti iteroiden asiakkaan kanssa, tuottamaan juuri asiakkaan tarvitsema ratkaisu ja jakamaan toteutusprosessi pienempiin osiin. Tällä tavalla projektiin saadaan joustavuutta ja minimoidaan myös riskejä, samalla pitäen asiakas jatkuvasti mukana kehittämisessä.

Varmaan huomasitkin jo selvät yhtäläisyydet kaikkien tuntemaan ja Toyotan kehittämään lean-filosofiaan, jossa riskit ja hukka minimoidaan, ja tärkeintä on aina tuottaa asiakkaalle arvoa. Ketterän kehittämisen tunnetuimpia työkaluja ovat scrum ja kanban, jotka noudattavat sekä leanin että ketterän kehittämisen periaatteita.

Ketterän ohjelmistokehityksen hyödyt asiakkaillemme

Hurjalla ketterä ohjelmistokehitys merkitsee tiivistä asiakasyhteistyötä, nopeaa muutoksiin reagointia, riskien minimoimista ja yleistä Just-In-Time filosofiaa. Tavoitteena on siis tuottaa luotettavaa ja aikaa kestävää koodia juuri oikeaan tarpeeseen.

Ketterä ohjelmistokehitys on nykyaikaista, tehokasta, asiakkaan tarpeet huomioivaa ja ammattitaitoista ohjelmistokehitystä. Joustavassa ja ketterässä mallissa räätälöimme sinulle juuri sopivan ratkaisun huomioiden tarpeet ja budjetin. Otamme tarpeet huomioon heti aloituspalaverista lähtien ja tarkennamme niitä projektin edetessä. Ketterässä mallissa ei yleensä myöskään kannata käyttää kiinteää hinnoittelua, koska suunnitelmia tarkennetaan joustavasti projektin edetessä.

Ketterän mallin ansiosta pääset lisäksi myös osallistumaan kehitettävän järjestelmän testaamiseen varhaisessa vaiheessa, jolla varmistetaan, että ratkaisu varmasti palvelee liiketoiminnallisia tavoitteitasi. Aktiivinen viestintä, avoin keskustelu sekä kyky mukautua projektin aikana tapahtuviin muutoksiin ovat kehittämisen peruspilareita. Ohjelmistoprojektin aikana meillä on yleensä käytössä dailyt, eli lyhyet päiväpalaverit sekä sprinttipalaverit asiakkaan kanssa.

Ohjelmistoprojekti pilkotaan ketterässä mallissa sprintteihin, eli pienempiin kehitysjaksoihin ja projekti etenee sprintti kerrallaan. Ketterä ohjelmistokehitys mahdollistaa ongelmakohtien tunnistamisen sekä muutostarpeet aikaisessa vaiheessa, kun järjestelmää rakennetaan pala palalta. Kun ominaisuuksia toteutetaan sykleissä, joiden lopuksi lopputulos arvioidaan, saadaan palautetta myös nopeammin kuin perinteisessä vesiputousmallissa.

Ketterä ohjelmistokehitys – ohjelmistoprojektin vaiheet

Ketterä ohjelmistokehitysprojekti etenee sprinteissä. Kolmesta osasta koostuvaa kierrosta kutsutaan sprintiksi. Suppea projekti voi olla vain yhden sprintin mittainen, kun taas laaja ohjelmisto koostuu useista eritasoisista sprinteistä. Yhden sprintin pituus on yleensä esimerkiksi kaksi viikkoa.

  • Tavoitteiden määrittely ja työn suunnittelu
  • Toteutusvaihe
  • Katselmointi

Sprintit kulkevat eteenpäin ketterästi iteroiden, joten projektitiimin aktiivinen ja luottamuksellinen vuorovaikutus on ensisijaisen tärkeää projektin kaikissa vaiheissa! Asiakkaamme osallistumista tarvitaan erityisesti tavoitteiden asettamisessa ja katselmoinnin aikana. Projektin alussa sovitaan yhteisistä käytännöistä: ketkä viestivät, missä ja kuinka usein.

Ketterä ohjelmistokehitys: projekti etenee sprinteissä. Visualisointi kolmesta sprintistä.

Tavoitteiden määrittely

Määrittelyvaiheessa selvitämme ohjelmiston käyttäjätarinat yhdessä asiakkaan kanssa. Käyttäjätarina on kuvaus siitä, missä tilanteissa ja millä tavalla erilaiset käyttäjät ohjelmistoa käyttävät. Kartoitamme myös muut ohjelmistolle asetettavat vaatimukset ja sen, miltä käyttöliittymä voisi näyttää. On myös tärkeää tietää, miten ohjelmiston omistaja ja loppukäyttäjät hyötyvät palvelusta. Tavoitteiden määrittelyn apuna voidaan käyttää myös palvelumuotoilussa ja tuotekehityksessä suosittua työpajamenetelmää Design Sprintiä. Design Sprintin avulla varmistetaan, että suunniteltava ratkaisu on varmasti käyttäjälle toimiva ja että se tukee liiketoiminnallisia tavoitteita.

Määrittelyn esimerkkejä:

  • Käyttäjäryhmät ja tavoitteelliset asiakaspolut
  • Toiminnallisuudet ja niiden sisällön laajuus
  • Tekniset vaatimukset ja mahdollisten kolmansien osapuolten roolit

Työn suunnittelu

Ketterässä ohjelmistokehityksessä suunnittelun aikana vaatimukset konkretisoidaan muun muassa käyttöliittymän, ohjelmiston rakenteen ja teknisen toteutuksen osalta. Käyttöliittymä- ja toiminnallisen suunnittelun apuna voidaan hyödyntää sovitun tasoisia prototyyppejä. Nopeastikin tehty demo konkretisoi suunnitelmia sekä nopeuttaa ja helpottaa toteutusvaiheen työnkulkua.

Demot ja prototyypit

Rautalankamalli, mockup ja prototyyppi auttavat ohjelmistohankkeen pilotoinnissa ja tekevät ideoista konkretiaa. Niitä voidaan hyödyntää myös sprinttien sisällä ja apuna katselmoinnissa. Demojen ja prototyyppien avulla on helppo saada kokonaiskuva toteutuksesta! Esim. muutamalla toiminnallisuudella varustettu prototyyppi valmistetaan usein ennen lopullisen tuotteen rakentamista, koska prototyypin avulla voidaan esitellä ideaa, kerätä palautetta ja tutustua toteutusvaihtoehtoihin.

Toteutus

Varsinainen koodaustyö etenee myös ketterässä ohjelmistokehityksessä vaiheittain ja iteroituva työnkulku antaa tilaa nopealle reagoinnille ja muutostoiveille. Tätä varten kehittäjät pitävät päivittäin myös lyhyitä sisäisiä palavereja. Vaikka määrittelyt ja suunnittelut on tehty viimeisen päälle hyvin, tulee toteutusvaiheen aikana yleensä aina uusia, hyviä ideoita mieleen. Vuorovaikutus asiakkaan kanssa on tärkeää myös toteutusvaiheessa! Sopivien viestintäkanavien hyödyntämisestä nopeita ja joustavia keskusteluja varten sovitaan yhdessä.

Toteutukseen kuuluu ratkaisujen testausta sovitulla laajuudella. Testausta voidaan tehdä projektin koosta ja prioriteeteista riippuen kevyemmin tai systemaattisemmin.

Katselmointi

Katselmoinnissa projektitiimi kokoontuu tarkastelemaan sprintin tuloksia. Katselmoinnin jälkeen aloitetaan uusi sprintti seuraavan toiminnallisuuden tai ohjelmiston muun osa-alueen parissa. Haluamme, että tiedät, miten työ etenee ja missä vaiheessa kehittäminen on, joten säännölliset katselmoinnit pidetään koko projektitiimin kesken. Katselmointirytmistä sovitaan tapauskohtaisesti kunkin asiakkaan kanssa. Katselmoinnit voidaan pitää esim. 1-2 viikon välein.

Katselmoinnin ohessa kehittäjät pitävät oman, sisäisen katselmoinnin, eli retrospektiivin. Retrospektiivissä sprinttiä tarkastellaan teknisestä näkökulmasta.

Käyttöönotto ja julkaisu

Kun viimeinenkin katselmointi on hyväksytty, on ohjelmisto tai sen osa valmis käyttöönottoon. Iteratiivisessa ja ketterässä kehityksessä julkaisuja tapahtuu usein, joten käytännössä julkaisu voi olla vain yksi vaihe muiden joukossa: ensin otetaan käyttöön ohjelmiston suppeampi versio, johon julkaistaan lisää ominaisuuksia kunkin sprintin jälkeen.

Sprintit kehittäjien näkökulmasta

Ohjelmistokehittäjien sprintit sisältävät enemmän vaiheita kuin asiakkaan sprintit. Kehittäjien sprinttiin kuuluu käyttäjätarinoihin ja aikatauluun suhteutetun työmäärän tarkentaminen. Jos koodia kirjoittaa useampi henkilö, sovitaan työnjaosta sprintin tavoitteiden mukaan.

Kehittäjillä on ketterän ohjelmistokehityksen sprinttien sisällä päivittäisiä palavereja, joissa tarkastellaan työn edistymistä ja mahdollisia ongelmakohtia. Määrittelyä ja suunnittelua muokataan tarvittaessa lennosta, jos parhaan tuloksen saavuttaminen sitä edellyttää. Silloin tarvitaan joustavaa reagointia myös asiakkaalta – emme ohita toiveitasi ja tarpeitasi, vaan etsimme parhaat ratkaisut yhdessä!

Sisäisessä katselmoinnissa kehittäjät käyvät yhdessä läpi toteutunutta sprinttiä ja kehittämiskohteita, kuten miten kehittämistä voisi parantaa seuraavissa sprinteissä ja työvaiheissa.

Ketterässä ohjelmistokehityksessä tavoitteena on asiakastyytyväisyys

Nyt tiedät, mitä ketterä ohjelmistokehitys tarkoittaa Hurjalla ja miten me käynnistämme juuri sinun liiketoimintaasi sopivan, lisäarvoa tuovan ohjelmistoprojektin. Kuten huomasit, teemme ohjelmistokehitystä suhteessa asiakkaamme tarpeisiin ja kehitämme laajatkin ohjelmistot ketterästi, sinua kuunnellen.

Kun tarvitset ohjelmiston, joka on suunniteltu vastaamaan tavoitteisiisi, tutustu ohjelmistokehityksen palveluumme ja ota yhteyttä.

Jätä yhteydenottopyyntö