Äärimmäinen ohjelmointi on yksi uusimmista menetelmistä ohjelmistojen kehittämiseksi. Sen tavoitteena on parantaa perinteisiä ohjelmistokehitysmenetelmiä korostamalla liiketoiminnan arvoa ja laatua. Tällä ohjelmointimenetelmällä pyritään toimittamaan täydellisiä ja virheettömiä ohjelmistotuotteita, jotka vastaavat liiketoiminnan tarpeita jopa viikon sisällä.
Perinteisellä tapaa kehittää ohjelmistoja projekti kestää useita kuukausia tai vuosia. Analyytikkoryhmä yrittää saada kaikki vaatimukset käyttäjiltä. Sitten joukko suunnittelijoita luo järjestelmän laajan rakenteen. Tämän jälkeen ohjelmoijat koodaavat järjestelmän kyseisessä rakenteessa. Testaajat varmistavat sitten, että koodi on virheetön ja täyttää vaatimukset.
Perinteisen kehityksen suurin ongelma on se, että käyttäjät eivät ole aina selviä vaatimuksistaan, ja vaatimukset muuttuvat usein ohjelmiston luomiseen kuluvan pitkän ajan kuluessa. Eri ihmiset ovat mukana eri vaiheissa, ja dokumentointi on tuskin koskaan valmis, joten myöhemmissä vaiheissa olevat ihmiset eivät voi selvittää ihmisten ajatteluprosessia aikaisemmissa vaiheissa. Tämä johtaa huonolaatuisiin ohjelmistoihin ja alhaiseen liikearvoon.
Yleensä äärimmäiseen ohjelmointiin sisältyy usein ohjelmistotoimituksia muutaman viikon sisällä. Motivaatio on tarjota täysin toimiva ohjelmisto, joka vastaa joihinkin kriittisiin liiketoimintatarpeisiin. Muutos vaatimuksiin otetaan huomioon seuraavassa toimituksessa.
Äärimmäinen ohjelmointi tai lyhyesti XP korostaa laatua kirjoittamalla testejä ennen ohjelmointia. Ohjelmistoa kirjoitettaessa koodi tarkistetaan ja testataan monta kertaa päivässä. Koko ohjelmisto kootaan ja testataan kerran tai jopa useita kertoja päivässä. Tämä tehdään sen varmistamiseksi, että mikään ohjelmiston osa ei tuhoa järjestelmää.
Yksi äärimmäisen ohjelmoinnin tunnetuista näkökohdista on pariohjelmointi, jossa kaksi ohjelmoijaa työskentelee yhdessä tietokoneen ääressä. Tämän lähestymistavan ansiosta ohjelmistojen luomiseen liittyvä ajatteluprosessi, suunnittelu ja koodaus tarkistetaan välittömästi. Vastuu minkä tahansa ohjelmiston kehittämisestä jaetaan.
Tällä kehittämismenetelmällä ohjelmisto alkaa yksinkertaisella suunnittelulla ja kehittyy tyydyttämään liiketoiminnan muita tarpeita. Ominaisuuksien luomista vältetään, kunnes niistä tulee todella tärkeitä. Pääpaino on tiimityössä täydellisten järjestelmien luomiseksi, joten jokainen tiimin jäsen on joka päivä analyytikon, suunnittelijan, ohjelmoijan ja testaajan roolissa. Ohjelmointitiimin sisällä sekä ohjelmoijien ja käyttäjien, joille ohjelmisto toimitetaan, välillä on voimakasta viestintää.
Tässä ohjelmointimenetelmässä refaktoroinnin käsitettä korostetaan voimakkaasti. Refactoring on sisäinen koodin tarkennus, joka antaa koodille hyvän rakenteen ja helpottaa sen ymmärtämistä vaikuttamatta tulostukseen. Kaiken äärimmäiseen ohjelmointiin liittyvän työn odotetaan tapahtuvan kestävässä tahdissa ilman myöhäisiä iltoja ja viikonloppuja. Tämä lisää moraalia ja vähentää virheiden todennäköisyyttä.
Äärimmäinen ohjelmointi on saanut nimensä ajatuksesta, että hyvien ohjelmoijien työskentelyn positiiviset puolet viedään äärimmäisyyteen hyötyjen hyödyntämiseksi. Tämä kehittämismenetelmä on ollut varsin tehokas useissa ohjelmistojärjestelmissä. Koska tämä on vielä uusi menetelmä, sen käytäntöjä kehitetään jatkuvasti.