Ketterä vs. perinteinen ohjelmistokehitysmetodologia
Ohjelmistoteollisuudessa käytetään nykyään useita erilaisia ohjelmistokehitysmenetelmiä. Waterfall-kehitysmenetelmä on yksi varhaisimmista ohjelmistokehitysmenetelmistä. V-Model, RUP ja muutamat muut lineaariset, iteratiiviset ja yhdistetyt lineaari-iteratiiviset menetelmät, jotka tulivat vesiputousmetodologian jälkeen, pyrkivät pyyhkimään pois monet vesiputousmenetelmän ongelmat. Kaikkia näitä aikaisempia menetelmiä kutsutaan perinteisiksi ohjelmistokehitysmenetelmiksi. Ketterä malli on uudempi ohjelmistokehitysmalli, joka on otettu käyttöön perinteisten mallien puutteiden korjaamiseksi. Agilen pääpaino on testauksen sisällyttäminen mahdollisimman varhain ja tuotteen toimivan version julkaiseminen hyvin aikaisessa vaiheessa, jakamalla järjestelmä hyvin pieniin ja hallittavissa oleviin osiin.
Mikä on perinteinen ohjelmistokehitysmetodologia?
Ohjelmistomenetelmiä, kuten Waterfall-menetelmä, V-malli ja RUP, kutsutaan perinteisiksi ohjelmistokehitysmenetelmiksi. Waterfall-metodologia on yksi varhaisimmista ohjelmistokehitysmalleista. Kuten nimestä voi päätellä, se on peräkkäinen prosessi, jossa edistyminen kulkee useissa vaiheissa (vaatimusanalyysi, suunnittelu, kehitys, testaus ja toteutus) ylhäältä alas, analogisesti vesiputouksen kanssa. V-Modelia pidetään Waterfall-ohjelmistokehitysmallin jatkeena. V-Model käyttää samoja vaiheiden välisiä suhteita, jotka on määritelty Waterfall-mallissa. Mutta sen sijaan, että se laskisi lineaarisesti (kuten Waterfall-malli), V-malli astuu alas vinosti ja siirtyy sitten takaisin ylös (koodausvaiheen jälkeen) muodostaen V-kirjaimen muodon. RUP (Rational Unified Process) on mukautuva prosessikehys (ei yksittäinen konkreettinen prosessi), jota kehitysorganisaatio voi räätälöidä tarpeidensa mukaan. Hieman samanlainen kuin vesiputous, sillä on kiinteät vaiheet, kuten alku, suunnittelu, rakentaminen ja siirtyminen. Mutta toisin kuin vesiputous, RUP on iteratiivinen prosessi.
Mikä on ketterä?
Agile on hyvin uusi ohjelmistokehitysmetodologia (tai oikeammin sanottuna joukko menetelmiä), joka perustuu ketterään manifestiin. Tämä kehitettiin korjaamaan joitakin perinteisten ohjelmistokehitysmenetelmien puutteita. Ketterät menetelmät perustuvat asiakkaiden osallistumisen asettamiseen etusijalle kehityssyklin varhaisessa vaiheessa. Se suosittelee asiakkaan testaamista mahdollisimman varhaisessa vaiheessa ja usein. Testaus tehdään jokaisessa vaiheessa, kun vakaa versio tulee saataville. Agilen perusta perustuu siihen, että testaus aloitetaan projektin alusta ja jatkuu koko projektin loppuun asti. Scrum ja Extreme ohjelmointi ovat kaksi suosituinta ketterän menetelmän muunnelmaa.
Agilen keskeinen arvo on”laatu on tiimin vastuulla”, mikä korostaa, että ohjelmiston laatu on koko tiimin (ei vain testaustiimin) vastuulla. Toinen tärkeä Agilen näkökohta on ohjelmiston hajottaminen pienempiin hallittaviin osiin ja niiden toimittaminen asiakkaalle erittäin nopeasti. Toimivan tuotteen toimittaminen on äärimmäisen tärkeää. Sitten tiimi jatkaa ohjelmiston parantamista ja toimittaa jatkuvasti jokaisessa tärkeässä vaiheessa. Tämä saavutetaan käyttämällä erittäin lyhyitä vapautusjaksoja (kutsutaan Scrumissa sprinteiksi) ja saamalla palautetta parannusta varten jokaisen jakson lopussa. Osallistujat, joilla ei ole paljon vuorovaikutusta tiimin kanssa, kuten aiempien menetelmien kehittäjät ja testaajat, työskentelevät nyt yhdessä ketterässä mallissa.
Mitä eroa on ketterällä ja perinteisellä ohjelmistokehitysmetodologialla?
Vaikka ketterä menetelmä perustuu iteratiiviseen kehitykseen, kuten jotkut perinteiset lähestymistavat, ketterillä ja perinteisillä menetelmillä on keskeisiä eroja. Perinteiset lähestymistavat käyttävät suunnittelua ohjausmekanisminaan, kun taas ketterät mallit käyttävät käyttäjien palautetta pääohjausmekanismina. Ketterä voidaan kutsua ihmiskeskeiseksi lähestymistavaksi kuin perinteisillä menetelmillä. Ketterä malli toimittaa tuotteesta toimivan version perinteisiin menetelmiin verrattuna hyvin varhaisessa vaiheessa, jotta asiakas voi oiv altaa osan eduista varhaisessa vaiheessa. Agilen testaussykliaika on suhteellisen lyhyt perinteisiin menetelmiin verrattuna, koska testaus tapahtuu rinnakkain kehityksen kanssa. Useimmat perinteiset mallit ovat erittäin jäykkiä ja suhteellisen vähemmän joustavia kuin Agile-malli. Kaikkien näiden etujen vuoksi Agilea suositaan tällä hetkellä perinteisten menetelmien sijaan.