Yleistä
Extreme Programming on nimensä mukaisesti hyvin ohjelmointikeskeinen menetelmä. Poiketen useista muista ketteristä menetelmistä, 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. Esimerkiksi refaktorointikäytännön noudattaminen yksikkötesteissä hutiloiden on yleensä hyvin tuhoisaa.
Aivan pelkkä käytäntökokoelma ei XP:kään ole, mukana on koko joukko periaatteita ja myös omat arvot. Vaikka pääpaino onkin toteutuskäytännöissä, XP:ssä on jonkin verran myös projektinhallintaan liittyviä käytäntöjä, kuten suunnittelupeli.

Itse asiassa Kent Beckin suurin huoli onkin, että XP:n toteutuksissa keskitytään liikaa insinöörikäytäntöihin. Menetelmän todellinen luonne tulee kuitenkin esiin vain, jos sen arvoja ja periaatteita noudatetaan kokonaisuutena. XP:n monet käytännöt ohjaavat toteutusta kyllä teknisesti parempaan suuntaan, mutta Beckin mukaan olisi tarpeen keskittyä vastuulliseen kehitykseen.
Beck piti XP2006 –tapahtumassa keynoten What’s more extreme than XP – Responsible software development. Esityksen pääteema oli se, että sovelluskehitysprojektien olisi muututtava huomattavasti vastuullisemmiksi tekemisistään. Beckin näkemys vastuullisuudesta tarkoittaa seuraavia asioita:
- Tavoitteena pitäisi suurimman mahdollisen arvon tuottaminen mahdollisimman matalilla kustannuksilla. Tähän tarvitaan nopeaa palautemekanismia, joka useimmiten toteutuu lyhyiden iteraatioiden muodossa.
- Hallitut riskit. Kaikki riskit ovat julkisia ja niille on hallintakeinot olemassa. Huonoimpaan mahdolliseen vaihtoehtoon on myös varauduttu ja palautetta kerätään koko ajan.
- Prosessin jatkuvuus. Työ etenee tavalla, joka voi jatkua pitkään. Riittävät resurssit ovat saatavilla, ihmisillä ei ole liian suurta stressiä ja ihmiset ovat innostuneita työstään.
- Välillä kannattaa pysähtyä miettimään, mistä projektissa on todella kyse. On tärkeää välillä nähdä yksityiskohtien yläpuolelle.
- Jatkuva taitotason parantuminen, kehitysprosessin kehittyminen ja ennakkoluuloton uusien asioiden kokeilu ovat kriittisiä menestystekijöitä.
- Läpinäkyvyys. Älä tee mitään, mitä tarvitsee piilotella. Kerro aina koko totuus ja työskentele pienin askelin, tehden aina todellista toiminnallisuutta.
Muutoksen jatkuminen vaatii yhteisöllisyyttä, sitoutumista ja vastuuntuntoisuutta. Vastuullisen kehityksen elinkaari koostuu arvioinnista, vaatimusten selventämisestä, testaamisesta, toteuttamisesta, suunnittelusta ja integroinnista. Tämä miniprosessi toistuu usein ja lopputuloksena on aina oltava uutta arvoa tuottavaa toiminnallisuutta.