BEDRIFTSTEKNOLOGI

Ny utviklingsmetode kutter tungt i prisen

Mange har prøvd, men nå hevder Avanade at deres nye metode gir dramatisk besparelser på i alle typer kode-prosjekter.

3. mai 2007 - 07:25

Si ordet programvarefabrikk til en programmerer, og det er store sjanser for at vedkommende steiler litt. Det er fort gjort å få for seg assosiasjoner til samlebånd der ansatte sitter på rekke og rad og skriver kode på løpende bånd. Ikke akkurat en ønskesituasjon for mange som ser på jobben sin som det ultimate kreative yrket.

De som ikke steiler når de hører om programvarefabrikker, er de som har tatt det i bruk. Det er nemlig et system som gjør det enklere og raskere å skrive kode.

– Vi har eksempler der vår programvarefabrikk har generert opptil 60 prosent av koden, sier Inge Stubdal, i Avanade til digi.no.

digi.no har fått en prat med Stubdal og Avanades internasjonale sjefsarkitekt, Kyle Huntley. De forteller ivrig om det nyeste tilskuddet som skal effektivisere utviklingsarbeid.

– Utviklerne slipper å jobbe med å skrive den samme typen kode om igjen og om igjen. De kan isteden konsentrere seg om de interessante oppgavene, sier Huntley.

En programvarefabrikk kan beskrives som et sett med dynamiske maler som brukes til å automatisk generere kode. Som med andre maler setter de en ramme for hva som kan gjøres, men de kan også justeres slik at de blir fleksible nok til å dekke forskjellige behov på forskjellige prosjekter.

– Vi kan utvikle et stort og variert utvalg av programvare. Det er som å erstatte ansatte på samlebåndet med roboter, sier Huntley.

– Det er bare å skrive spesifikasjonene i XML, og så kan programvarefabrikken generere koden, sier Stubdal.

Effekten kan minne litt om det man forsøker å oppnå ved å samle gjenbrukbar kode i programvarebiblioteker, som for eksempel i DLL-filer (Dynamic Link Library). Forskjellen ligger i at koden genereres hver gang, og at den dynamisk tilpasses variasjonene i behov.

– Gjenbruk av kode gir effekt opp til et vist nivå, men langt fra hele veien, sier Huntley.

Forsøk på å automatisere skriving av kildekode er i seg selv ikke nytt. Det finnes diverse utviklersystemer som gjør det, og mange gjør en manuell klipp-og-lim jobb fra egenutviklede biblioteker med for eksempel kildekoden for å lage en databasekobling.

Programvarefabrikker skiller seg fra slike systemer blant annet gjennom å være et slags dynamisk malsett.

Malsettet kan tilpasses behovet. Hvis noe må oppdateres, som for eksempel en sikkerhetsendring, så kan dette enkelt oppdateres i selve programvarefabrikken. Dermed slipper man å gjøre endringen på alle prosjektene man har brukt fabrikken til. Koden genereres på nytt og blir brukt i neste kompilering.

Programvarefabrikker kan også ses på som et slags XML-basert språk for systemkrav. På en måte kan tankegangen virke litt som UML, men UML blir et for generelt språk til å klare denne oppgaven, ifølge Avanades sjefsarkitekt.

For at det skal fungere i praksis må det være et såkalt «domain specific language», altså et språk med begrenset virkeområde. Det reduserte omfanget gjør at det er mulig å få på plass et språk som fungerer i praksis.

– SQL er et domenespesifikt språk og det samme er HTML. Når man begrenser virkeområdet, kan man gjøre antagelser, sier Huntley.

Der man kan gjøre antagelser, kan man også automatisere. Dermed blir det mulig å automatisere store deler av kildekoden, selv om det er mange åpne variabler.

Sjefsarkitekten sammenligner det hele med hvordan man lager et hus ved hjelp av spesialisert CAD-programvare (Computer Assisted Design).

– Det er som å lage et hus ved hjelp av CAD-programvare. Dra frem vinduer, dører eller komplette rom, som for eksempel et kjøkken, sier Huntley.

Programvarefabrikker kan ses på både som en konkurrent og som et supplement til tjenesteutsetting til lavkostland. På lik linje med slik tjenesteutsetting, så egner programvarefabrikker seg godt til å håndtere rutinearbeid med utgangspunkt i kravspesifikasjoner. På det punktet har programvarefabrikker et viktig fortrinn i forhold til for eksempel indiske programmerere.

– Offshoring håndterer ikke tvetydighet særlig godt. Jo mer du kan gi folkene nærmest problemene, jo bedre, sier Huntley.

På den annen side vil også utviklerne i India og andre lavkostland nyte godt av teknologien.

Utviklere med en generell god forståelse av sitt yrke har som regel ingen problemer med å forstå og bruke programvarefabrikker.

– Du kan sannsynligvis bli en relativt dyktig ekspert i løpet av et par dager, sier Huntley.

I Avanade brukes omtrent 2,5 årsverk på programvarefabrikken, i tillegg til en kvalitetssikrer som jobber på fulltid med å teste at alt er som det skal være. Omtrent hver andre uke kommer en ny versjon med oppdateringer og nye funksjoner.

– Ny funksjonalitet skaper som hovedregel ikke kompatibilitetsproblemer, sier Huntley.

Det kan oppstå ved endringer i eksisterende funksjonalitet, men Avanade har foreløpig ikke opplevd store problemer med dette. Det er uansett et mye mindre problem enn om de skulle basert seg på gjenbruk av kompilerte programvarekomponenter.

Programvarefabrikker er ikke en Avanade-oppfinnelse. Microsoft leverer slike standard fabrikker, men Avanade har vært tidlig ute med å utvikle sitt sett. Det gir de en midlertidig konkurransefordel frem til Microsoft og andre virkelig får sine programvarefabrikker på plass. Det gjør det mulig for Avanade å levere billigere løsninger og allikevel tjene mer.

– Før eller siden vil Microsoft få dette helt på plass, sier Huntley.

Det bekymrer ikke Avanade. De satser på å ligge i forkant og regner med at det vil dukke opp nok av nye muligheter til å effektivisere enda mer i fremtiden

– Programvarefabrikker er et stort skritt videre. Jeg vil si at det er like stort som overgangen fra assembler-kode, sier Huntley.

Wikipedia har som vanlig mer om emnet, men i dette tilfellet er artikkelen foreløpig ikke så god. Den inneholder imidlertid noen linker til andre kilder og som alle andre artikler på Wikipedia blir den trolig bedre etter hvert. Her kan du uansett lese mer om programvarefabrikker.

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.