Ketterä tai perinteinen ohjelmistokehitysmenetelmä
Ohjelmistoteollisuudessa käytetään nykyään useita erilaisia ohjelmistokehitysmenetelmiä. Vesiputouskehitysmenetelmä on yksi varhaisimmista ohjelmistokehitysmenetelmistä. V-malli, RUP ja muutamat muut lineaariset, iteratiiviset ja yhdistetyt lineaarisesti iteratiiviset menetelmät, jotka tulivat vesiputousmenetelmän jälkeen, tarkoituksena oli pyyhkiä pois monet vesiputousmenetelmän kysymykset. Kaikkia näitä aikaisempia menetelmiä kutsutaan perinteisiksi ohjelmistokehitysmenetelmiksi. Ketterä malli on uudempi ohjelmistokehitysmalli, joka otettiin käyttöön vastaamaan perinteisissä malleissa havaittuja puutteita. Agile: n pääpaino on testauksen sisällyttäminen mahdollisimman varhaisessa vaiheessa ja tuotteen toimivan version julkaiseminen hyvin varhaisessa vaiheessa jakamalla järjestelmä erittäin pieniin ja hallittavissa oleviin osiin.
Mikä on perinteinen ohjelmistokehitysmenetelmä?
Ohjelmistomenetelmiä, kuten Waterfall-menetelmää, V-mallia ja RUP-nimitystä, kutsutaan perinteisiksi ohjelmistokehitysmenetelmiksi. Vesiputousmenetelmä on yksi varhaisimmista ohjelmistokehitysmalleista. Kuten nimestä voi päätellä, se on peräkkäinen prosessi, jossa eteneminen kulkee useiden vaiheiden läpi (vaatimuksen analysointi, suunnittelu, kehittäminen, testaus ja toteutus) ylhäältä alas, vesiputouksen tapaan. V-mallia pidetään Waterfall-ohjelmistokehitysmallin jatkeena. V-malli käyttää samoja suhteita vaiheiden välillä, jotka on määritelty vesiputousmallissa. Mutta sen sijaan, että laskeutuisi lineaarisesti (kuten vesiputousmalli), V-malli astuu alas diagonaalisesti ja siirtyy sitten takaisin ylös (koodausvaiheen jälkeen) muodostaen V-kirjaimen muodon. RUP (Rational Unified Process) on mukautuva prosessikehys (ei yksi konkreettinen prosessi), jota kehitysorganisaatio voi mukauttaa tarpeidensa mukaan. Hieman samanlainen kuin vesiputous, sillä on kiinteät vaiheet kuten aloittaminen, laatiminen, rakentaminen ja siirtyminen. Mutta toisin kuin vesiputous, RUP on toistuva prosessi.
Mikä on ketterä?
Agile on aivan viimeaikainen ohjelmistokehitysmenetelmä (tai oikeammin ryhmä metodologioita), joka perustuu ketterään manifestiin. Se kehitettiin ratkaisemaan joitain puutteita perinteisissä ohjelmistokehitysmenetelmissä. Ketterät menetelmät perustuvat siihen, että asetetaan etusijalle asiakkaiden osallistuminen kehitysvaiheen varhaisessa vaiheessa. Se suosittelee sisällyttämään asiakkaan testauksen aikaisin ja usein niin pian kuin mahdollista. Testaus tehdään jokaisessa kohdassa, kun vakaa versio tulee saataville. Ketterän perusta perustuu testauksen aloittamiseen projektin alusta alkaen ja jatkumiseen koko projektin loppuun. Scrum ja Extreme-ohjelmointi ovat kaksi ketterien menetelmien suosituimpia muunnelmia.
Agile-arvon keskeinen arvo on ”laatu on joukkueen vastuu”, joka korostaa, että ohjelmiston laatu on koko joukkueen (ei vain testausryhmän) vastuulla. Yksi tärkeä osa Agile-palvelua on hajottaa ohjelmisto pienempiin hallittaviin osiin ja toimittaa ne asiakkaalle erittäin nopeasti. Toimivan tuotteen toimittaminen on äärimmäisen tärkeää. Sitten tiimi jatkaa ohjelmiston parantamista ja toimittaa jatkuvasti jokaisessa suuressa vaiheessa. Tämä saavutetaan pitämällä hyvin lyhyet vapautussyklit (nimeltään sprintit Scrumissa) ja saamalla palautetta parantamiseksi jokaisen syklin lopussa. Avustajat, joilla ei ole paljon tiimin vuorovaikutusta, kuten aikaisempien menetelmien kehittäjät ja testaajat, työskentelevät nyt yhdessä ketterän mallin sisällä.
Mitä eroa ketterän ja perinteisen ohjelmistokehitysmenetelmän välillä on??
Vaikka ketterä menetelmä perustuu iteratiiviseen kehittämiseen osana perinteisiä lähestymistapoja, ketterillä ja perinteisillä menetelmillä on keskeisiä eroja. Perinteiset lähestymistavat käyttävät suunnittelua ohjausmekanisminaan, kun taas ketterät mallit käyttäjien palautetta käyttävät pääohjausmekanismina. Ketterää voidaan kutsua ihmiskeskeiseksi lähestymistapana kuin perinteiset menetelmät. Ketterä malli toimittaa toimivan version tuotteesta hyvin aikaisin verrattuna perinteisiin menetelmiin, jotta asiakas voi ymmärtää joitain etuja jo varhaisessa vaiheessa. Agile-testisykliaika on suhteellisen lyhyt verrattuna perinteisiin menetelmiin, koska testaus tapahtuu kehityksen rinnalla. Useimmat perinteiset mallit ovat erittäin jäykkiä ja suhteellisen vähemmän joustavia kuin ketterä malli. Kaikkien näiden etujen takia ketterä on tällä hetkellä parempi kuin perinteiset menetelmät.