Ohjeita XP (eXtreme Programming)

Ohjeita XP (eXtreme Programming)
Menetelmä keskittyy enimmäkseen toteutuskäytäntöihin. Sopii erityisesti projekteille, joissa
vaatimukset saattavat muuttua. XP tarjoaa valikoidun joukon käytäntöjä, joita pitää noudattaa
yhdessä. Monin paikoin on myös tärkeää, että niitä kaikkia todella noudatetaan yhdessä, sillä
käytännöt on rakennettu tasapainottamaan toisiaan. XP-menetelmä on tarkoitettu etupäässä
ohjelmistoprojekteihin koodaajien työkaluksi, mutta menetelmän ideologiaa ja työkaluja voidaan
käyttää myös soveltuvin osin projektien hallinnassa.
XP:n arvomaailma koostuu viidestä asiasta: kommunikaatio, yksinkertaisuus, palaute, rohkeus ja
kunnioitus.
XP:n käytännöt jakaantuvat neljään pääryhmään: palaute, sujuva prosessi, jaettu ymmärrys ja
toteuttajan hyvinvointi. Pääryhmät puolestaan koostuvat useista eri menetelmistä.
1. Palaute
Palautteen menetelmiä ovat pariohjelmointi, suunnittelupeli, testivetoinen kehitys ja yhtenäinen
tiimi.
Pariohjelmointi
Menetelmä, jossa kaksi henkilöä työskentelee yhdessä, joista toinen toimii ”pääohjelmoijana” ja
toinen seuraa vierestä. Pari voi vaihtaa rooleja kuten parhaaksi katsovat. Tiimin sisällä pareja
voidaan vaihtaa säännöllisesti. Menetelmä sopii ohjelmointiin tai ohjelmoinnin tapaiseen
työskentelyyn.
Menetelmän hyötyjä
 pääohjelmoijan jäädessä pohtimaan ongelmaa, saattaa parilla olla ratkaisu valmiina
 tarkkailija huomaa usein nopeasti pääohjelmoijan tekemän virheen
 keskittyminen parempaa koska työn ulkopuolisten asioiden tekemisen kynnys kasvaa,
”kiusaus päivittää Facebook -sivustoa pienenee”
 toinen toiselta oppiminen.
Suunnittelupeli
Menetelmä koostuu joukosta suunnittelupelisessioita, joihin osallistuvat asiakas ja tuotekehittäjät.
Suunnittelupelisessio käydään kerran kunkin toteutuksen aikana. Suunnittelupelin perusideana on
saada asiakkaat kertomaan omin sanoin, tarinan muodossa, tarpeensa ja ongelmansa.
Tuotekehittäjien työ on miettiä kuinka tarinan tarpeet toteutetaan teknisesti.
Suunnittelupelisession vaiheet
Aloitussessio
 tutkintavaihe: asiakas kuvailee tarpeet tarinoina, joiden perusteella arvioidaan toteutusten
määrä ja työn kesto
 sitoumusvaihe: arvioidaan hintaa, hyötyä ja ajan käyttöä
 ohjausvaihe: asiakas päättää toteutusten välisen prioriteetin, jolloin ne tehdään ja otetaan
käyttöön tässä järjestyksessä.
Toteutusten teko
 Kunkin toteutuksen puolessa välissä tarkistetaan aikataulu. Mikäli huomataan, ettei toteutus
valmistu luvatussa aikataulussa, asiakas jättää joitakin toimintoja pois (tai siirtää aikataulua
myöhäisemmäksi).
 Toteutuksen lopuksi asiakasta pyydetään arvioimaan tuotettua toteutusta.

Toteutuksien valmistuessa ja asiakkaan ”ymmärryksen” lisääntyessä, on asiakkaalla
mahdollisuus vaihtaa toteutuksien sisältöä ja niiden välistä prioriteettia.
Menetelmän hyötyjä
 säännöllinen palaute asiakaan ja toteuttajan välillä
 arviota tehdään usein ja pienille asioille kerrallaan, jolloin toteutuksen aikataulun ja
tavoitteiden arvioista voidaan olettaa tulevan tarkempia.
Testivetoinen kehitys
Testivetoisessa kehityksessä (Test Driven Development, TDD) rakennetaan jokaiselle
toimintakokonaisuudelle oma testi. Perinteisessä tavassa toimia on testaus jätetty projektin
loppupäähän, jolloin projektin aikana kumuloituvat virheet tulevat esiin juuri ennen projektin
valmistumista.
Menetelmän hyötyjä
 testikattavuus nousee ja virheet löytyvät mahdollisimman aikaisessa vaiheessa
 vähentää lopputuotteessa olevien virheiden määrää ja alentaa niistä johtuvia kustannuksia.
Huomioitavia asioita:
 yksittäisten testien suunnittelussa huomioitava kokonaisuus, toimintokokonaisuudet usein
riippuvaisia toinen toisistaan
 testaus tulee olla mahdollisimman automaattista, jolloin kustannukset pysyvät kurissa.
Yhtenäinen tiimi
Ajatuksena on luoda mahdollisimman helposti lähestyttävä työympäristö, joka kannustaa
tiimin/tiimien väliseen ajatustenvaihtoon.
2. Sujuva prosessi
Sujuvan prosessin menetelmiä ovat jatkuva integraatio, refaktorointi ja pienet julkaisut.
Jatkuva integraatio
 Toimintojen yhdistäminen toisiinsa mahdollisimman aikaisessa vaiheessa, perinteisen
loppukokoonpanon sijaan.
Refaktorointi
 tarkoitetaan toteutuksen muuttamista siten, että varsinainen toiminnallisuus ei muutu
 toteutusten sisältöjen muuttumisen mahdollisuuden takia on toteutusten perusrakenteiden
oltava niin joustavia, että muutokset ovat mahdollisia.
Pienet julkaisut
 kunkin toteutuksen tekeminen kestää 1 – 6 viikkoa
 toteutukset ovat laadultaan asennuskelpoisia.
Menetelmien hyötyjä
 nopea palaute toimintojen yhteensopivuudesta.
3. Jaettu ymmärrys
Jaetun ymmärryksen menetelmiä ovat toteutuskäytännöt, yhteisomistus ja yksinkertaisuus.
Toteutuskäytännöt
 luodaan yhteiset pelisäännöt sille, kuinka tiimissä toteutuksia tuotetaan.
Yhteisomistus
 tiimin kaikki jäsenet voivat tehdä muutoksia toteutuksiin, jolloin muutos ei ole yksittäisestä
henkilöstä kiinni
 vaatii hyvää tiimihenkeä ja sitoutumista sekä vastuunottamista koko tuotteesta.
Yksinkertaisuus
 toteutus tehdään yksinkertaisimmalla mahdollisella toimivalla tavalla
 ei tietoisesti varauduta vaatimuksiin, joita ei ole sillä hetkellä tiedossa (uskotaan, että
muutosten aiheuttama lisätyö on pienempi kuin laajennettavuuden lisääminen heti).
4. Toteuttajan hyvinvointi
Toteuttajan hyvinvoinnin menetelmä on tasainen tahti.
Tasainen tahti
 työtahti on jatkuvasti sellainen mitä jaksaa ylläpitää loputtomasti
 ylitöitä ei lähtökohtaisesti suositella käytettäväksi aivotunnit ratkaisevat, ei läsnäolotunnit
 mitä väsyneempi, sitä enemmän menee aikaa töiden ryhtymiseen ja sähläämiseen
 tasainen tahti varmistaa, että pidemmällä aikavälillä ihminen toimii optimaalisesti.
Lähteet
http://www.ketteratkaytannot.fi/fi-FI/Menetelmat/
http://www.cs.uta.fi/research/thesis/masters/Lindberg_Harri.pdf
http://www.extremeprogramming.org/rules.html
Laatija
Pekka Lavikainen
Lehtori
Lahden ammattikorkeakoulu
Tekniikan ala