Ohjeita XP (eXtreme Programming)
Transcription
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