Ketterä kehittäminen-agile development
Kuvauksen kirjoitti: Andrei Soloviev, N3630
Lyhyt kuvaus käsitteestä tai aiheesta
Agile development eli ketterä kehittäminen on joustava lähestymistapa ohjelmistotuotannossa, joka perustuu v. 2001 julkaistuun Agile Manifestoon (Ketterä manifesti). Kyseinen manifesti koostuu neljästä perusideasta ja kahdestatoista periaatteesta, joihin erityiset käytännön ratkaisut perustuvat. Ketteräkehitysmalliin kuuluu useita tekniikoita, kuten XP, Lean, DSDM, Scrum, FDD jne. Jokainen ketterä menetelmä soveltaa manifestin perusideoita eri tavoin, mutta kaikki luottavat niihin hallitakseen projekteja mahdollisimman tehokkaasti.
4 Agile ideaa:
- Ihmiset ja vuorovaikutus ovat tärkeämpiä kuin prosessit ja työkalut
- Toimiva ohjelmisto on tärkeämpää kuin dokumentaatio
- Yhteistyö asiakkaiden kanssa on tärkeämpää kuin sopimusehtojen sopiminen
- Valmistautuminen muutokseen on tärkeämpää kuin alkuperäisen suunnitelman noudattaminen
12 Agile periaatetta (lyhyesti):
- Asiakastyytyväisyys
- Vaatimusten muuttaminen myös myöhemmässä kehitysvaiheessa
- Toimiva tuote tulee julkaista mahdollisimman usein
- Ohjelmistokehittäjien ja asiakkaiden päivittäinen vuorovaikutus
- Kehitystiimin pitää olla motivoitunut
- Suora viestintä kehitystiimille ja tiimin jäsenten kesken
- Toimiva tuote on kehityksen tärkein mittari
- Työtahdin ylläpito
- Teknisen laadun ja ohjelmiston hyvän rakenteen jatkuva huomiointi
- Yksinkertaisuus
- Itseorganisoituva tiimi
- Kehitystiimin tehokkuuden ja toiminnan säännöllinen tarkastus
Muuta aiheeseen liittyvää
Ketterässä ohjelmistokehityksessä koko kehitysprosessi jaetaan pieniksi osiksi – iteraatioiksi (sprint). Sprint on 1–4 viikon mittainen kehitysjakso, jonka aikana kehitystiimi suorittaa tietyn määrän työtä – vaatimusten analysointi, suunnittelu, ohjelmointi, testaus ja dokumentointi. Toisin sanoen jokainen iteraatio on erillinen lyhyt projekti, jossa kehitetään tietty pätkä ohjelmasta, parannetaan toiminnallisuutta tai lisätään uusia ominaisuuksia. Sprintit alkavat yksi toisensa jälkeen. Jokaisen iteraation lopussa kehitysryhmä analysoi tulokset ja muuttaa seuraavan syklin prioriteetteja.
Ketteräkehityksen edut:
- Myöhäiset muutokset vaatimuksiin ovat sallittuja
- Tiivistä yhteistyötä asiakkaan kanssa
- Riskien minimointi
- Maksimaalinen asiakastyytyväisyys
- Ei tarvetta yksityiskohtaiselle vaatimusmäärittelylle
- Projektin kustannukset ja kesto ovat arvioita
- Projektia voidaan aloittaa heti sopimuksen allekirjoittamisen jälkeen
- Vaatimusten muuttaminen on helppoa
Ketteräkehityksen heikkoudet:
- Asiakasriippuvaisuus. Mikäli asiakas ei ole riittävän sitoutunut kehitysprojektiin, kehitystahti hidastuu. Asiakas voi vaatia yhä enemmän lopputuotteen parantamista, mikä viivästyttää kehitystä.
- ”Puuttuva” dokumentointi
- Tuleeko tuote koskaan markkinoille (käyttöön), jos on jatkuvasti parannuksissa
- Määrittelemättömät resurssit
Linkit ulkopuolisiin lähteisiin
- Important Software Quality Metrics, Hooks Guide
- Agile software development, Wikipedia
- Manifesto for Agile Software Development