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 programvarestykker som oppfyller forretningsbehov, i intervaller så korte som uker.
På den tradisjonelle måten å utvikle programvare, spenner et prosjekt over mange måneder eller år. Et team av analytikere prøver å få alle kravene fra brukerne. Deretter skaper et sett designere den brede strukturen i systemet. Etter det koder programmerere systemet innenfor den strukturen. Testere sikrer da at koden er feilfri, og oppfyller kravene.
Hovedproblemet som man opplever med tradisjonell utvikling er at brukerne ikke alltid er klar over kravene sine, og kravene endres ofte i løpet av den lengre tiden det tar å lage programvaren. Ulike mennesker er involvert i forskjellige stadier, og dokumentasjonen er nesten aldri fullstendig, så folk i de senere stadier kan ikke finne ut av tankeprosessen til menneskene i de tidligere stadiene. Dette resulterer i programvare av lav kvalitet og lav forretningsverdi.
Vanligvis innebærer ekstrem programmering hyppige programvareleveranser i løpet av få uker. Motivasjonen er å tilby fullt fungerende programvare som imøtekommer et kritisk forretningsbehov. En endring i kravene imøtekommes ved neste levering.
Ekstrem programmering, eller XP for kort, understreker 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 eller til og med flere ganger om dagen. Dette gjøres for å sikre at ingen enkelt del av programvaren bringer systemet ned.
Et av de kjente aspektene ved ekstrem programmering er parprogrammering, der to programmerere jobber sammen på en datamaskin. På grunn av denne tilnærmingen blir tankeprosessen, utformingen og kodingen som går ut på å lage programvare sjekket umiddelbart. Ansvaret for å utvikle programvare blir delt.
Med denne utviklingsmetoden starter programvare med en enkel design, og utvikler seg for å tilfredsstille ytterligere forretningsbehov. Opprettelse av funksjoner unngås inntil de faktisk blir høyt prioritert. Det legges vekt på teamarbeid for å lage komplette systemer, slik at 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 programvaren blir levert til.
I denne programmeringsmetoden er konseptet refactoring sterkt vektlagt. Refactoring er intern kodeforfining for å gi koden en god struktur, og gjøre det lettere å forstå uten å påvirke utdataene. Alt arbeidet med ekstrem programmering forventes å bli utført i et bærekraftig tempo uten sene kvelder og helger. Dette øker moralen og reduserer sannsynligheten for feil.
Ekstrem programmering tar navnet fra ideen om at de positive aspektene ved hvor bra programmerere fungerer blir tatt til det ekstreme for å dra nytte av fordelene. Denne utviklingsmetoden har vært ganske effektiv i en rekke programvaresystemer. Siden dette fremdeles er en ny metodikk, utvikles dens praksis kontinuerlig.