Ketterä ohjelmistokehitys

**Ketterä ohjelmistokehitys** () on joukko ohjelmistotuotantoprojekteissa käytettäviä menetelmistöjä, joille on yhteistä toimivan ohjelmiston ensisijaisuus, suora viestintä ja nopea muutoksiin reagointi. Ketteriä menetelmiä on useita, mm. Extreme Programming (XP), Scrum, DSDM, Crystal Methods, Agile modeling, Adaptive software development, Pragmatic Programming, Feature driven development ja Gilb-EVO.

## Ketterien menetelmien yhteiset piirteet

Useimmat ketterät menetelmät pyrkivät minimoimaan riskejä jakamalla ohjelmistokehityksen lyhyisiin iteraatioihin, jotka kestävät tyypillisesti yhdestä neljään viikkoa. Kukin iteraatio on kuin pieni ohjelmistoprojekti ja sisältää kaikki uusien toimintojen julkaisemiseen tarvittavat tehtävät: projektisuunnittelun, vaatimusanalyysin, ohjelmistosuunnittelun, koodauksen, testauksen ja dokumentoinnin. Vaikka iteraatio ei välttämättä lisää niin paljon toiminnallisuutta, että tuotteen julkaisu olisi järkevää, ketterä ohjelmistokehitysprojekti pyrkii periaatteessa julkaisukelpoiseen ohjelmistoon jokaisen iteraation lopussa. Iteraation lopussa projekti arvioi uudelleen projektin prioriteetit ja päättää seuraavan iteraation sisällöstä.

Ketterät menetelmät pitävät suoraa viestintää (mieluiten kasvokkain) tärkeämpänä kuin kirjoitettuja dokumentteja. Useimmat ketterät tiimit työskentelevät samassa työtilassa, ja tiimiin kuuluvat kaikki, joita tarvitaan ohjelmiston saamiseen valmiiksi. Tämä tarkoittaa vähintään ohjelmoijia ja heidän ”asiakkaitaan”. (Asiakkaat määrittelevät tuotteen ja voivat olla tuotepäälliköitä, liiketoiminta-analyytikkoja tai varsinaisia käyttäjiä.) Tiimiin voi kuulua myös testaajia, käyttöliittymäsuunnittelijoita, teknisiä kirjoittajia ja päälliköitä.

Ketterät menetelmät korostavat toimivan ohjelmiston olevan ensisijainen edistyksen mittari eikä dokumentaatiolla ole samaa itseisarvoa kuin useissa perinteisemmissä malleissa. Tästä seuraa yleinen harhaluulo, että ketterä kehitys olisi kuritonta ohjelmointia tai että suunnittelua ei tehtäisi lainkaan. Suunnittelua tehdään päinvastoin jatkuvasti, koko projektin ajan. Suunnitelmia vain ollaan halukkaampia muuttamaan kuin perinteisissä malleissa.

## Agile Manifesto ja Agile Alliance

Vuonna 2001 17 merkittävää ketterän kehityksen (jota silloin kutsuttiin ”kevyiksi menetelmiksi”) puolestapuhujaa kokoontui Snowbirdin hiihtokeskukseen Utahissa keskustelemaan menetelmiensä yhteisestä perustasta. Tarkoitus oli luoda yhteistä pohjaa ketterille menetelmille ja edistää näin ketterän ajattelun leviämistä. Tuon kokoontumisen tuloksena he julkaisivat julistuksen nimeltä *Agile Manifesto* (’Ketterä manifesti’), jota pidetään ketterän kehityksen perusmääritelmänä. Manifestissa määritellään ketterille menetelmille neljä tyypillistä arvoa, sekä 12 periaatetta, joita menetelmät noudattavat.

Manifestin sisältö on seuraava:

:*Me etsimme parempia keinoja ohjelmistojen kehittämiseen tekemällä sitä itse ja auttamalla siinä muita.*
:*Tässä työssämme olemme päätyneet arvostamaan*
:***Yksilöitä ja vuorovaikutusta''' enemmän kuin prosesseja ja työkaluja''
:***Toimivaa sovellusta** enemmän kuin kokonaisvaltaista dokumentaatiota''
:***Asiakasyhteistyötä*' enemmän kuin sopimusneuvotteluita*
:***Muutokseen reagoimista** enemmän kuin suunnitelman noudattamista* 
:*Vaikka oikeallakin puolella on arvoa,* *me arvostamme vasemmalla olevia asioita enemmän.''

Ketterien menetelmien käyttöä Suomessa edistää Agile Finland ry, ja maailmanlaajuisesti Agile Alliance -niminen voittoa tavoittelematon järjestö.

## Katso myös
*Ohjelmistotuotanto
*Refaktorointi

## Lähteet

## Kirjallisuutta
* 
* 
* 
* 

## Aiheesta muualla

* Agile Alliancen kotisivut. 
* Agile Finland ry:n kotisivut.