Denne artikel stammer fra det trykte Computerworlds arkiv. Artiklen blev publiceret den CTO d. 7. oktober 2005.
En af mændene bag use cases, UML og Rational Unified Process, Ivar Jacobson, vil skabe bedre software ved hjælp af intelligente agenter.
Mange udviklere i store organisationer tænker ikke, de har ikke den luksus.
Et citat, der nok vil få de fleste udviklere op af stolene. Udtalelsen, der kommer fra metode-guruen Ivar Jacobson, skal dog ses i den rette sammenhæng.
- Udviklerne har måske et dokument, der fortæller dem, hvad de skal gøre - ikke hvorfor. Samtidig er de under tidspres og har måske nogle templates, som de blot skal rette til for at få lavet deres kode. De får ikke lov til at tænke, uddyber Ivar Jacobson.
Ivar Jacobson har i mere end tyve år arbejdet på at skabe bedre software.
- Jeg er overrasket over, hvor lidt viden der er om softwareudvikling i de virksomheder, jeg besøger som konsulent.
Alligevel bliver der skrevet meget kode.
Redningen for systemudviklingen er ifølge den 66-årige svensker intelligente agenter. De intelligente agenter skal hjælpe udviklerne med de mere trivielle udviklingsopgaver og samtidig være i stand til at forklare udviklerne, hvorfor nogle ting skal gøres.
- 80 procent af udviklingsarbejdet er arbejde, der ikke kræver den store hjernegymnastik. Hvorfor ikke bruge agenter til det, så folk kan koncentrere sig om at tænke, hvor der er behov for det, spørger Ivar Jacobson. Samtidig vil de intelligente agenter kunne forklare mindre erfarne udviklere, hvorfor nogle bestemte ting skal gøres.
- Hver udvikler har sin egen virtuelle mentor. Mentoren underviser dig i, hvad du har brug for og hjælper dig til at bruge den viden i det konkrete udviklingsprojekt, forklarer Ivar Jacobson.
De intelligente agenter er ikke teoretisk ønsketænkning. De findes allerede.
Ivar Jacobson har udviklet intelligente agenter i form af produktet WayPointer, og blandt andre det indiske softwarefirma Tata Consulting bruger WayPointer til den interne systemudvikling. Tata Consluting siger, at de har opnået en produktivitetsforøgelse på tyve procent. Det overrasker ikke Ivar Jacobson.
- Succeskriterierne for de intelligente agenter er, at de skal reducere omkostningerne med mindst 20 procent. Derudover skal softwarekvaliteten øges, og agenterne skal også gøre undervisning i systemudvikling nemmere, siger Ivar Jacobson.
- Og så skal det være sjovt, tilføjer han.
Ivar Jacobson mener det alvorligt, når han siger, at udvikling skal være sjov. Løsningen er at lægge den eksplicitte viden ind i de intelligente agenter, der så løbende under udviklingsarbejdet kan guide og vejlede udvikleren.
- Agenterne finder ud af, hvad du vil, og kommer så med forslag til, hvordan du kan gøre det. Altsammen er selvfølgelig afhængig af hvilken kontekst man er i, forklarer Ivar Jacobson.
Er de intelligente agenter et skridt mod software-fabrikken? Ivar Jacobson tøver, inden han svarer:
- Da jeg startede mit tidligere firma Objectory, anvendte jeg faktisk fabrikken som metafor for, hvilken retning systemudviklingen skulle udvikle sig hen imod. Jeg gik væk fra metaforen, fordi folk misforstod ideen: Softwareudvikling skal ikke være samlebåndsarbejde, hvor udviklerne blot laver gentaget, trivielt arbejde. Softwareudvikling er ingeniør-arbejde, hvor noget repetitivt arbejde kan erstattes af agenter, men mennesker kan ikke erstattes, når det kommer til kreativitet. Ideen med fabrikken er at gøre det muligt at få forudsigelige resultater, forklarer Ivar Jacobson.
Ivar Jacobson understreger, at de intelligente agenter ikke vil automatisere hele softwareprocessen og distancerer sig fra forudsigelser om, at de vil overflødiggøre programmører.
- De næste 10-15 år - eller så langt, som vi nu kan se - vil vi stadig udvikle software, som vi gør i dag, men meget arbejde vil blive overtaget. Med tiden vil der nok ikke blive brug for så mange deciderede kodere, men kodning er i virkeligheden også kun en lille del af systemudviklingen, siger Ivar Jacobson.
Billedtekst:
Metodeguruen Ivar Jacobson ser intelligente agenter som vejen frem for en bedre systemudviklingsproces.