Dovne programmører kræver adræt udvikling

Skær fedtet af udviklingsprocessen med RUP, Scrum, Lean og XP. Sådan lyder budskabet fra gruppen om agil udvikling på Version2's netværk for it-professionelle.

»I bund og grund er udviklere lidt dovne. Hvis de kan slippe for at lave nogle ting, som ikke giver værdi, så vil de gerne gøre det.«

Sådan lyder forklaringen på, hvorfor de adrætte udviklingsmetodikker indenfor software er så populære for tiden. Den kommer fra Niels C. Jacobsen, som er it-arkitekt i IBM og en af bagmændende for gruppen om agile (adrætte) metoder på Version2's netværk for it-professionelle. Men hvad handler det egentlig om?

»Man prøver at skære fedtet fra og se på, hvad der giver værdi for projektet. Man kigger på forskellige handlinger, som f.eks. dokumentation og siger: Giver dette her værdi i det vi gør. Og hvis ikke, hvorfor så gøre det.«

De agile metodikker har mange navne, som Scrum, Lean og XP, men de tager alle udgangspunkt i RUP, fortæller Niels C. Jacobsen. Der er ikke tale om en indbygger i Andeby, men en samling "best practices" med det fulde navn Rational Unified Process, som er opsamlet i over 1.000 projekter i gennem de sidste 20 år.

Agil på den rigtige måde

Men RUP brugt på den forkerte måde er ikke agilt.

»Der er mange der bruger RUP forkert. De tager det som en metodik man bør gå igennem fra start til slut, i stedet for at se på hvad der giver værdi. Ved at bruge de best practices som giver mening for den kunde som man arbejder med, så kommer man til at arbejde agilt.«

I gruppen for agil udvikling på Version2's netværk for it-professionelle er formålet at deltagerne kan sparre med hinanden og dele deres erfaringer. En anden vinkel er at give opmærksomhed om agil udvikling til omverdenen.

Den agile gruppe er blandt dem, der har trukket flest medlemmer indtil videre.

»Det tror jeg er fordi, det er hot lige nu. Det bliver meget drevet af udviklerne. Det er udviklerne, der gerne vil prøve at gøre tingene anerledes. Optimere tingene nedefra.«

Se mere om gruppen Agil udvikling

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (6)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Frank Vilhelmsen

Denne her dovne udvikler/matematiker undre sig en del over det gode danske ord agil. Er det nu ikke sådan at det engelske ord “agile” oversættes til det danske ord “adræt” og på denne måde rent faktisk kommer til at betyder noget meningsfuld?

I mine øre lyder “Adræt udvikling” langt bedre end mange af de klon ord som benyttes. feks. Agil arkitektur, Agil process, Agil udvikling, Agil software osv.

Jeg tror at de adrætte metodikker mister deres effekt fordi vi ikke på samme tid udskifter vores værkstøj og tænkesæt. Vi vil alle gerne arbejder hurtigere og mere effektivt men vi gør det på den gamledags måde.

  • 0
  • 0
Jens Madsen

Ofte er forskel på de teknikker der anvendes, for henholdsvis kort og langsigtet værdi.

Ønsker du kortsigtet værdi, er det om at blive hurtig færdig, og få penge i kassen - dokumentation er kun nødvendigt overfor kunden. Ingen intern dokumentation nødvendigt. At programmet er grimt, betyder intet. At det er mere kompleks og uoverskueligt, har ingen betydning. Kunden betaler uanset programmets udseende.

Problemerne kommer bagefter - så har ovenstående nul værdi.

Som enhver anden form for effektivering risikeres meget nemt, at man ikke kun skærer flæsket bort, men også hjertet.

  • 0
  • 0
Jens Madsen

Ofte, tænker virksomheder økonomisk, når der tales om "værdi". Der ses på, hvor mange penge der kommer ind til virksomheden, og hvor stor profit det giver.

Dette fører til, at agilt nemt bliver optimering efter hvor der er økonomisk gevindst.

Dette er ikke nødvendigvis hverken positivt for virksomheden, for samfundet, eller for køberen.

En god virksomhed, har en "image" der sætter nogle krav til eksempelvis kvalitet. Virksomheden "nægter" at producere noget, under en vis bundkvalitet. Dette skyldes ikke loven. Det skyldes virksomhedens "vilje". En god virksomhed skal have en sådan "vilje", der er større end økonomi. Hellere lave kvalitet og gå konkurs, end at overleve på bras.

Jeg kender mange, der ser utroligt meget på, om noget giver "værdi" for et projekt. Genneralt mener de, at deres egne ting giver stor værdi. Min opfattelse er, at det sker nogen meget ubehagelige og beklagelige ting, ved sådanne tanker. Man tillader kun éen tanke. Kun éen løsning. Og man kan derved ikke sætte den i relief med andre løsninger. Man opnår dermed ikke at kunne se hvor dårlig det er det som gøres. For man har ikke nogen sammenligning - sammenligningen er "død". Først når du har tilpas stor ineffektivitet, tænker på forskellige muligheder - også den ikke nødvendigvis bedste ved første øjekast - og når du sætter disse op overfor hinanden, opnår du at kunne indsé kvalitetten og fordelene i de forskellige metoder ordentligt.

Det betyder ikke, at man ikke kan tænke "lidt" rationelt. Men enhver form for rationalitet går ud over noget. Og som regel går det ud over ting som kvalitet, overskuelighed, måske valg af forkert løsning osv. Der vælges den første løsning, i stedetfor undersøges talrige løsninger med henblik på analyse af disse og vurdering af hvilken der er bedst.

Naturligvis kunne vi sige, at netop det at undersøge mange løsninger, og at vurdere hviken af disse der er bedst, er agilitet - fordi det giver værdi. Men som jeg har set agilitet i praksis er det "afskæring" af tankevirksomhed. Og resultatet er så dårligt, at man som virksomhed ofte ikke bør lægge navn til.

Langt bedre, end at tænke agilt, er at tænke kvalitet. Hvad skal til, for at opnå god kvalitet? Hvordan skal systemerne være, for at der ikke opstår "tilfælde" og ustabilitet? Hvordan undgås programmørerne laver noget forkert? Der er mange aspekter som vedrører kvaliteten - trods du sagtens vil kunne sælge et dårligere produkt til samme pris, og spare bunker af udviklingsomkostninger.

Min pointe er, at der findes større ting i livet end "værdi". Og det gælder også virksomheder.

Det kan være renomé. Det kan være ideologi (f.eks. miljø). Eller det kan være andre faktorer, som ikke giver gevindst. Dette kan medføre at produkterne "skal laves på en bestemt måde", der ikke på nogen måder er agilt.

Jeg tror at agilitet er for småvirksomheder, der hverken har renomé, nogle virskomhedsværdier de holder på, nogle traditioner som er værd at leve for, og som desuden ikke har resourcer nok til ordentlig udvikling, og derfor må søge at tænke optimalt.

Optimalitet betyder sjældent noget. Næste dag er kursen ændret. Måske er ingeniørarbejdslønnen gået ned i nul kroner i timen, og den tid kunden må bruge på at få skittet til at virke op i tusind kroner i timen - som virksomheden må betale. Det kan være resultat af dårligt arbejde.

  • 0
  • 0
Therese Hansen

@Jens:
Det virker som om du er gået lidt skævt af de agile udviklingsmetoder. Læser jeg dit indlæg korrekt, som at du mener, at agile udviklingsmetoder giver dårligere kode?

Det er en typisk fejlopfattelse at agilitet er cowboykodning <http://en.wikipedia.org/wiki/Cowboy_coding&gt;, hvor man bare koder derudaf uden at dokumentere, specificere og designe. Dette er ikke tilfældet.

Agilitet er netop en måde at håndtere at kursen hele tiden ændrer sig, som du skriver til sidst i dit indlæg. Ikke en måde at skære ind til benet for optimeringens skyld.

Agilitet indeholder flere mekanismer, som sikrer kvalitet, såsom test-først (TDD), par-programmering og refaktorisering.

  • 0
  • 0
Martin Rytter

@Jens:

Jeg tror det du forsøger at sige er at nogle virksomheder har stor fokus på kortsigtede værdier. Du efterlyser en balance i forhold til langsigtede værdier (fx kvalitet, renomé osv.).

Den pointe kan jeg tilslutte mig.

Jeg kan imidlertid ikke tilslutte mig billedet af adræt softwareudvikling som en modsætning til kvalitet. Her er jeg helt på linie med Therese. Se i øvrigt: http://www.agilemanifesto.org/.

/mrj

  • 0
  • 0
Log ind eller Opret konto for at kommentere