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
- Yksilöt ja vuorovaikutukset vs. prosessit ja työkalut
- Toimiva ohjelmisto vs. kattava dokumentaatio
- Yhteistyö asiakkaan kanssa vs. sopimusneuvottelut
- Muutoksiin vastaaminen vs. suunnitelman noudattaminen
1.2 Periaatteet
- Tärkeintä on täyttää asiakkaan vaatimukset julkaisemalla jatkuvasti ja aikaisin uusia hyödyllisiä versioita ohjelmistosta.
- Hyväksytään ja otetaan vastaan muuttuvat vaatimukset, jopa kehityksen loppuvaiheessa. Ketterät menetelmät valjastavat muutoksen asiakkaan kilpailueduksi.
- Luovutetaan toimivia versioita kehitettävästä ohjelmistosta säännöllisesti, mielellään lyhyin väliajoin muutamasta viikosta muutamaan kuukauteen.
- Liiketoiminnan ammattilaisten ja kehittäjien täytyy työskennellä päivittäin yhdessä koko projektin ajan.
- 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ä.
- Kaikkein tehokkain tapa välittää tietoa kehitystiimille ja kehitystiimissä, on kasvokkain tapahtuva keskustelu.
- Toimiva ohjelmisto on ensisijainen edistymisen mitta.
- 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.
- Jatkuva huomion kiinnittäminen tekniseen laatuun, sekä hyvään rakenteeseen ja suunnitteluun, lisää ketteryyttä.
- Yksinkertaisuus - taito maksimoida työn määrä, jota ei tarvitse tehdä - on olennaista.
- Parhaat arkkitehtuurit, vaatimukset ja suunnitelmat nousevat itseorganisoituvista tiimeistä.
- 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
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
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.