1. Agile

Alku lyhennetty Sami Kososen gradusta / Vesa Lappalainen.

Ketterissä menetelmissä (Agile methods) pyritään järkevään suhteeseen dokumentoinnissa, suunnittelussa ja koodaamisessa niin, että pääpaino on asiakkaan tyytyväisyydellä ja toimivalla ohjelmalla. Katso: Agile manifesto

1.1 Arvot

1.2 Periaatteet

  1. Tärkeintä on täyttää asiakkaan vaatimukset julkaisemalla jatkuvasti ja aikaisin uusia hyödyllisiä versioita ohjelmistosta.
  2. Hyväksytään ja otetaan vastaan muuttuvat vaatimukset, jopa kehityksen loppuvaiheessa. Ketterät menetelmät valjastavat muutoksen asiakkaan kilpailueduksi.
  3. Luovutetaan toimivia versioita kehitettävästä ohjelmistosta säännöllisesti, mielellään lyhyin väliajoin muutamasta viikosta muutamaan kuukauteen.
  4. Liiketoiminnan ammattilaisten ja kehittäjien täytyy työskennellä päivittäin yhdessä koko projektin ajan.
  5. Rakennetaan projektit motivoituneiden yksilöiden ympärille ja annetaan heille ympäristö ja tuki jota he tarvitsevat, sekä luotetaan, että he saavat työn tehtyä.
  6. Kaikkein tehokkain tapa välittää tietoa kehitystiimille ja kehitystiimissä, on kasvokkain tapahtuva keskustelu.
  7. Toimiva ohjelmisto on ensisijainen edistymisen mitta.
  8. Ketterät menetelmät suosivat kestävää kehitystä. Rahoittajien, kehittäjien ja käyttäjien tulisi kyetä pitämään jatkuvasti yllä tasainen työtahti.
  9. Jatkuva huomion kiinnittäminen tekniseen laatuun, sekä hyvään rakenteeseen ja suunnitteluun, lisää ketteryyttä.
  10. Yksinkertaisuus - taito maksimoida työn määrä, jota ei tarvitse tehdä - on olennaista.
  11. Parhaat arkkitehtuurit, vaatimukset ja suunnitelmat nousevat itseorganisoituvista tiimeistä.
  12. Tasaisin väliajoin tiimi miettii miten voisi tulla entistä tuottavammaksi, ja sitten säätää ja muokkaa toimintaansa sen mukaisesti.

2. Agile menetelmiä

Seuraavana muutamia Agile-menetelmiä.

2.1 Extreme Programming, XP

Eräs, ehkä tunnetuin, ketterä menetelmä. Keskittyy erityisesti ohjelmointityöhön. Soveltamisessa oltava tarkkoja ettei tule pelkästään: "Meillä tehdään XP:llä, meillä ei dokumentoida".

Katso esim:

2.1.1 Arvot

Kommunikointi:
XP:n työtavat vaativat kunnollista kommunikaatiota ihmisten välillä. Suurin osa kommunikaatiosta tulisi olla suoraan kasvokkain tapahtuvaa keskustelua. Tämä pyritään mahdollistamaan perinteisten sermeillä jaettujen työtilojen sijaan avoimella työtilalla.
Yksinkertaisuus:
XP painottaa yksinkertaisen rakenteen tärkeyttä. Beckin mukaan ohjelmistojen, joita voidaan pitää yksinkertaisina, tulee noudattaa seuraavia kriteerejä: ohjelmakoodi ajaa kaikki testit, kommunikoi ohjelmoijalle kaiken tarvittavan, kopioitua koodia ei ole, ja se sisältää ainoastaan tarvittavan minimimäärän luokkia ja metodeja.
Palaute:
Kehittäjien ja asiakkaiden tulisi saada palautetta järjestelmän tilasta niin usein kuin mahdollista. Palautetta kerätään usein ja heti tehdyn työn jälkeen. Sitä kerätään toimittajalta, asiakkaalta sekä itse rakennettavalta ohjelmistolta.
Rohkeus:
Tämä arvo perustuu tosiasialle, että kehittäjien tulee kyetä näkemään, että kehitysprosessi on ajautunut väärään suuntaan ja korjaukset ovat välttämättömiä. Ongelmien korjaaminen saattaa tarkoittaa monen päivän töiden heittämistä hukkaan ja koodin uudelleenkirjoittamista, vaikka se olisikin aiemmin läpäissyt testit.

2.1.2 Käytännöt

Yhteiset käytännöt Iteraatiot
Yhteinen sanasto (metafora)
Avoin työtila
Aiemmista kokemuksista oppiminen
Ohjelmoijien käytännöt Testilähtöinen ohjelmointi (testaus)
Pariohjelmointi
Uudelleenrakentaminen
Yhteisomistajuus
Jatkuva integrointi
Et tule tarvitsemaan sitä (yksinkertainen rakenne)
Hallinnon käytännöt Hyväksytty vastuu
Taustatuki
Neljännesvuosikatsaus
Peili
Tasainen työtahti (40-tuntinen työviikko)
Asiakkaan käytännöt Tarinoiden kerronta
Julkaisujen suunnittelu (suunnittelupeli)
Hyväksyntätestaus
Lyhyin väliajoin tuotettavat julkaisut (pienet julkaisut)

2.2 Scrum

Lähtökohtana on hallita ohjelmistotuotantoprosessia ja hallita/tukea muuttuvaa ympäristöä/ vaatimuksia.

2.3 RUP - The Rational Unified Process

( Kruchten 1996, Kruchten 2000).Oliopohjaisten järjestelmien iterativiinen ohjelmistotuotantomenetelmä. Ei alunperin ketterä menetelmä mutta soveltuvin osin käytettynä voi ketteriäkin piirteitä löytää.

2.4 OSS - Open Source Software development

( O’Reilly 1999).Yhteneväisyyksiä agile - menetelmien kanssa

2.5 Mobile-D /VTT

3. Agile -linkkejä