Den velsmurte udviklingsmaskine
Effektiv softwareudvikling, kræver en infrastruktur der understøtter flow i udviklingsprocessen og sikrer konstant feedback til den enkelte softwareudvikler. Den gode infrastruktur er både en optimering af den enkelte udviklingsmaskine og hele det omkringliggende system der gør at udviklerne kan arbejde effektivt sammen.
Der er tre grundlæggende elementer i et solidt udviklingsmiljø:
- Versionskontrol
Det er absolut nødvendigt at ændringer i koden går via versionskontrol. Det sikrer både at flere udviklere kan arbejde med den samme kode samtidigt, og at man kan får et globalt undo-værktøj, hvis man har lavet større fejl. Der findes mange udmærkede versionskontrolsystemer, både kommercielle og open-source. Vi anbefaler Subversion sammen med TortoiseSVN på Windows og SubClipse til Eclipse. Subversion kan sættes op på Windows og Linux servere, og skalerer let fra de helt små systemer til de større med f.eks. omfattende sikkerhedskrav.
- Automatiseret Build / Continuous Integration
For at sikre at løbende ændringer ikke ødelægger noget i en anden del af projektet er det vigtigt at det er let at bygge hele projektet. Jo flere trin der indgår i denne proces, jo mindre er sandsynligheden for at det bliver gjort regelmæssigt. Løsningen er at bruge et build-system der er fleksibelt nok til at kunne håndtere hele projektet. Der findes mange gode build værktøjer som eksempelvis NAnt eller MSBuild til .NET samt Maven og Ant til Java. Det optimale udviklingsmiljø fungerer som et samlebånd hvor udviklerne lægger kode på båndet i den ene ende og derefter bliver der, uden nogen manuel indblanding, leveret en færdig installation i den anden ende, som kan overdrages direkte til testerne. Der findes allerede en række konkrete værktøjer der kan hjælpe med det. Vi anbefaler Cruise Control .NET fra ThoughtWorks eller Hudson, der begge er gratis og open source. Det kommercielle Team Cityer et meget solidt produkt der også findes i en gratis udgave til små teams.
- Automatiseret Test
Fejl kan ikke undgås, men man kan reducere de risici de udgør for projektet. Når man først har automatiseret sit build kan man udvide den eksisterende infrastruktur til automatisk at få afviklet en række tests, som kan afgøre om der introduceres nye fejl. Det er rigtigt at det koster noget tid at udvikle de automatiske tests, men til gengæld giver det døgnet rundt en overvældende gennemsigtighed i sundhedstilstanden for systemet. Når man har opbygget en god mængde tests, vil man med meget større selvsikkerhed kunne lave rettelser i produktet, og stadig sove godt om natten. Vi anbefaler at man starter med et eksisterende test framework som f.eks. NUnit eller JNunit, så man kommer hurtigt igang uden at skulle opfinde den dybe tallerken igen.
Hvor kan BestBrains hjælpe?
Vi kan hjælpe jer med at analysere og optimere infrastrukturen i jeres eksisterende udviklingsmiljø. Vi kan levere det faglige input der gør i kan bruge jeres eksisterende resourcer meget bedre.
Vil du vide mere om hvordan jeres infrastruktur kan forbedres, så kontakt Sonny Korte på sonny.korte@bestbrains.dk eller på telefon +45 5054 5442, og vi kan aftale et uforpligtende møde.


