Denne artikel stammer fra det trykte Computerworlds arkiv. Artiklen blev publiceret den Computerworld d. 7. oktober 2005.
Skal der vælges en struktureret, dokumenttung udviklingsmodel eller en mere adræt, enkel og uforudsigelig udviklingsmodel.
Forvirring, vrede og hovedrysten var nogle af reaktionerne, da Linus Torvalds i en mail på Linuxudvikler-listen i sidste uge tilsyneladende undsagde brugen af specifikationer til software-udvikling.
- En "spec" (red. specifikation) er tæt på at være ubrugelig. Jeg har aldrig set en spec som var stor nok til at være både brugbar og nøjagtig. Og jeg har set masser af rigtigt dårligt arbejde baseret på specs. Det er den værste måde at skrive software på, fordi det pr. definition er baseret på, at softwaren skal matche teori, ikke virkeligheden, skrev Linus Torvalds torsdag den 29. september.
Mailen fra Linus Torvalds, der er kendt for at komme med meget bastante udmeldinger, kan ses som et ekstremt udtryk for den såkaldte agile udviklingsproces. Den agile udviklingsproces tager udgangspunkt i, at det gælder om at få noget velfungerende kode - ikke at få en masse systemdokumentation. Eller som Linus Torvalds skriver i en senere mail, efter at forskellige udviklere har argumenteret for at specifikationer er nyttige:
- Tal ikke om specs. Tal om kode, der er læsbar og som virker.
Som modpol til agile udviklingsmetoder som Extreme Programming og Scrum, er der den modeldrevne systemudvikling, som Rational Unified Process (RUP). Her fokuseres på at bygge en model af systemet gennem en formaliseret og struktureret udviklingsproces inden kodningen starter. Med andre ord; det gælder om at få skrevet en række af de af Linus så forhadte specifikationer.
Samme uge som Linus Torvalds skrev sin lammende kritik af software-specifikationer, var en række softwareudviklere forsamlet i Århus til JAOO-konference for blandt andet at diskutere, hvordan man bedst udvikler software. Her var der repræsentanter for begge systemudviklingslejre.
Blandt andet fortalte Andrew Scotland om sine erfaringer med at anvende Scrum hos den engelske tv-station BBC. Han understregede, at man skal opfatte systemudvikling som et håndværk; ikke en fremstillingsproces.
Det var i modsætning til budskabet som kom fra den erfarne metodeguru Ivar Jacobson, der blandt andet har stået bag use cases, UML og RUP. Han fremhævede, at det var nødvendigt at få en ingeniørmæssig disciplin ind i softwareudviklingen. Ivar Jacobson erkendte dog, at de store, tykke metodebøger ikke bliver læst af udviklerne. Hans løsning er at gøre den strukturerede procesviden tilgængelig for udviklerne i form af intelligente agenter, der vejleder systemudviklerne i systemudviklingsprocessen.
I modsætning til Andrew Scotland, der ikke mener, at man kan sammenligne systemudvikling med en fremstillingsproces, er man hos Microsoft overbevist om, at det netop er vejen frem. Microsoft taler om deciderede softwarefabrikker. Åbningstalen på JAOO-konferencens tredje dag, onsdag, blev holdt af Arvindra Sehmi, chef for enterprise team hos Microsoft. Arvindra Sehmi sagde, at man nok skal forvente, at der går 10 til 20 år, inden softwarefabrikkerne er på plads, men at de kommer. Microsoft havde dog ingen illusioner om at UML er vejen frem til en bedre udviklingsproces.
- Vi bruger en masse tid på at tegne UML-diagrammer, og så smider vi dem væk, når vi går igang med at kode, sagde Arvindra Sehmi.
Løsningen er at få et modelsprog, der er meget nærmere den egentlige kode. Arvindra Sehmi mener, at selve koden er en model. Det er nok et synspunkt som Linus Torvalds vil tilslutte sig. Microsoft har dog ikke tænkt sig at gå Linux-programmørens vej, men forestiller sig, at man kan udvikle sprog til forskellige problemområder. Sprogene, Domain Specific Language (DSL), er meget kodelignende og er et centralt element i Microsofts lange march mod softwarefabrikker.
Læs interviewet med Ivar Jacobson i CTO, side 8