Hva er ekstrem programmering?
Ekstrem programmering er en av de nyere metodene for å utvikle programvare. Den tar sikte på å forbedre tradisjonelle metoder for programvareutvikling ved å vektlegge forretningsverdi og kvalitet. Denne metoden for programmering prøver å levere komplette og feilfrie programvare som oppfyller forretningsbehov, innen intervaller så korte som uker.
I den tradisjonelle måten å utvikle programvare spenner et prosjekt mange måneder eller år. Et team av analytikere prøver å få alle kravene fra brukerne. Deretter skaper et sett med designere den brede strukturen i systemet. Etter det koder programmerere systemet innenfor den strukturen. Testere sørger da for at koden er feilfri, og oppfyller kravene.
Hovedproblemet som oppstår med tradisjonell utvikling er at brukere selv ikke alltid er klare på kravene sine, og kravene endres ofte i løpet av den utvidede tiden det tar å lage programvaren. Ulike mennesker er involvert i forskjellige stadier, og dokumentereration er knapt noen gang komplett, så folk i de senere stadier kan ikke finne ut tankeprosessen til folket i de tidligere stadiene. Dette resulterer i programvare av lav kvalitet så vel som lav forretningsverdi.
Vanligvis innebærer ekstrem programmering hyppige programvareleveranser innen få uker. Motivasjonen er å tilby fullt fungerende programvare som adresserer noe kritisk forretningsbehov. En endring i kravene tilpasses i neste levering.
Ekstrem programmering, eller XP for kort, legger vekt på kvalitet ved å skrive tester før du utfører programmeringen. Når programvaren er skrevet, blir kode gjennomgått og testet mange ganger om dagen. Hele programvaren er satt sammen og testet en gang eller til og med flere ganger om dagen. Dette gjøres for å sikre at ingen enkelt del av programvaren bringer systemet ned.
En av de kjente aspektene ved ekstrem programmering er Pair ProgrammiNg, der to programmerere jobber sammen på en datamaskin. På grunn av denne tilnærmingen blir tankeprosessen, designen og kodingen som går inn i å lage programvare sjekket umiddelbart. Ansvaret for å utvikle ethvert stykke programvare blir delt.
Med denne utviklingsmetoden starter programvaren med en enkel design, og utvikler seg for å tilfredsstille ytterligere forretningsbehov. Oppretting av funksjoner unngås til de faktisk blir høy prioritet. Det legges vekt på teamarbeid for å lage komplette systemer, så hvert teammedlem spiller rollen som analytiker, designer, programmerer og tester hver dag. Det er intens kommunikasjon i programmeringsteamet, så vel som mellom programmererne og brukerne som programvaren blir levert til.
I denne programmeringsmetoden vektlegges refactoring -konseptet meget. Refactoring er intern kodeforfining for å gi koden en god struktur, og gjøre det lettere å forstå uten å påvirke utdataene. Alt arbeidet iVolved i ekstrem programmering forventes å bli gjort i et bærekraftig tempo uten sene kvelder og helger. Dette øker moralen og reduserer sannsynligheten for feil.
Ekstrem programmering tar navnet sitt fra ideen om at de positive aspektene ved hvordan gode programmerere fungerer, blir tatt til det ekstreme for å utnytte fordelene. Denne utviklingsmetoden har vært ganske effektiv i en rekke programvaresystemer. Siden dette fremdeles er en ny metodikk, utvikler dens praksis kontinuerlig.