Virker agil softwareudvikling?

Hvis ikke jeg vidste bedre ville jeg have troet at Scott Ambler havde lært dansk og fulgt med i debatten om agil udvikling her på Version2 i de sidste uger, inden han skrev dette tankevækkende essay - men realiteten er nok at vores diskussion slet ikke er unik, men går for sig over hele verden og har gjort det i mange år.
Læs den og hvad enten du er enig eller uenig, så bemærk at han kan argumentere uden at kalde sin modpart for idioter eller det der er værre.
Hvem er Scott Ambler forresten, nå ja han er en meget åbenmundet kritiker af usunde ting i den agile verden og så er han ansvarlig for Agil udvikling i en lille garagevirksomhed
PS - jeg skal nok skrive om problemerne i agil udvikling

Kommentarer (14)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Carsten Sonne

Iterativ og incrementiel udvikling er ikke nogen ny fremgangsmåde. Agile udvikling er, som jeg forstår det, en meget udefinerbar størrelse bestående af enten iterativ eller incrementiel udvikling sammen med noget andet.

Agile udvikling kommer i mange varianter der gør det relativt svært at se præcis hvad der er det agile selv. Når jeg siger agil til en anden forstår han næsten 100% sikker noget andet end mig.

Mange af tankerne i agil udvikling er ikke nye opfindelser. Det kan med grove ord kaldes 'gammel vin på nye flasker' uden at omgåes sandheden. For mig og se betår agil udvikling primært at et sæt Best Practices sammensat med nogle regler af filosofisk karakter. Ingen af delene er nytænkning. Det nye består i sammensætningen.

Jeg benytter selv en del af teknikkerne som også høre ind under agil udvikling. Samtidig kan jeg ikke forestille mig personer som Martin Fowler, Craig Larmann og Alistair Cockburn hopper med på vognen med mindre det er noget de mener der er perspektiv i.

Jeg er nu nok overbevist om de fleste af de agile teknikker virker, hvad det så end præcist er. Jeg har dog et par forbehold:

  • TDD og lignende fremgangsmåder er ikke velegnet til alle typer udviklingsprojekter.
  • Agil udvikling markedsføres og lugter at for meget af religion. Nogle tilhængere virker til tider fanatisk i en sådan grad at en mistanke om oprigtighed melder sig.
  • Den ihærdighed hvormed flere tilhængere forsøger at overbevise omverden giver mig accosiationer til scientology, dianetik og lignende tvivlsomme affære.
  • For at agile metoder skal virke, skal både ledelse, kunde og projekt være kompatible. Detaljerede kravspecifikationer kombineret med fastpriskontrakter passer meget dårligt til den agile fremgangsmåde. Successkritier, deadlines ol. skal ligeledes tilpasses.

Trods alle de positive sider ved agile udvikling sammen med det faktum at respekterede skikkelser som Martin Fowler m.fl. bakker op om metoder, ja, så er jeg stadig skeptisk af overstående årsager.

Morten Wegelbye Nissen

Punkt 1, her giver jeg dig dig ret - hvis nogen på dit hold ikke er med på hvad det er, så kan det blive svært.
Ved TDD bliver dine test en del af din dokumentation for hvordan koden virker. Jeg har svært ved at se hvordan "Working software over comprehensive documentation" kan fungere uden. Bevares, dine tests kan også blive skrevet uden brug af TDD.
Punkt 2. Det kan du sige om alt, fra politik til brugte biler. Kan ikke forstå hvorfor alle skal trække det frem.
Jeg vil også påstå at vi på det seneste har set fanatiske religiøse modstandere af Agile udvikling - så det går lige op.
Punkt 3 Se punkt 2
Punkt 4; det er hovedet på sømmet. Hvis ikke omgivelserne er med, så dur det ikke (Hint: Et af punkterne til hvornår agil ikke dur)

Det her med [religiøsforblindet|altmuligtandet] det ene og det andet, kan vi ikke godt putte den 9 fod under. De findes over alt.

Debatten her på version2, hvor de primære dualanter er Bent og PHK springer ud fra den første v2 live. Til information kan jeg sige at PHK kun var der cirka de sidste 25%, han så kun fullrate og sig selv. Det er lidt træls, for havde han været der hele dagen, tror jeg han havde haft et noget mere nuanceret billede af tilhængerne. Alle indlæg havde netop pointer med at der ikke er nogen sølvkugler, at god arkitektur ikke går hånd-i-hånd med agil udvikling, det er kan være op af bakke at få alle med osv. osv.

Nikolaj Brinch Jørgensen

En af de i mine øjne helt store styker ved de agile metoder, at de erkender at de ikke er fuldstændige, men at de hele tiden skal tilpasses omverdenen, og at det som det handler om er, at få udviklingsprocessen gjort bedre. Modsætningen er f.eks. RUP som prædiker en færdig opskrift (et rammeværk), som man skal følge (efter man har plukket de artefakter men skal bruge ud af enorme mængder der er i kataloger - og så lige huse at betale sin licens til Rational).

Denne tankegang springer ud af Lean (Kaizen) om kontnuerlige forbedringer af sin fremstillingsproces.

@Carsten

Der er sikkert en del agile fortalere, som står på en prædikestol, ligesom en del tilhængere af Linux, Rails, Java, Windows, iPhone osv. gør. Jeg synes personligt ikke forskellen er stor.
Jeg genkender godt dit syn på visse tilhørsgrupper som fanatikere, for mig er det altid dem som brænder for noget, som jeg absolut ikke brænder for. Det tror jeg er naturligt - man får meget nemt følelsen af at nogen må være religiøse omkring et emne de taler varmt for, hvis man selv synes emnet er tåbeligt. Man forstår jo ikke hvorfor manden brænder for det, så han må jo være religiøs.

Hvilke typer udviklingsprojekter passer TDD ikke til? Og hvad er de lignende fremgangsmåder du taler om. Mest af interesse, for jeg kunne godt tænke mig at finde ud af hvilke fremgangsmåder du har fundet, som ikke kan anvendes, og på hvilke projekter.

Carsten Sonne

Igen præller alt kritik af som vand på en fedtet gås. Jeg kan kun give PHK fuldstændig ret i hans vurdering af useriøsiteten og fan kulturen omkring agil udvikling.

Hvad der er sket og ikke sket på version2live er mig uvedkommende. Hvis nogen har en høne at plukke med PHK, så må de jo gøre det. Det har intet med mig at gøre.

Jeg interessere mig for teknik og mine kunder.

Michael Rasmussen

Kan vi ikke snart blive enige om en ting: Agile metoder har intet med softwareudvikling at gøre specifikt. At være agil betyder, at et projekt ledes på en bestemt måde. Så agile metoder er altså metoder til projektledelse, og kan med lige stor ret anvendes på al produktudvikling.

For at udvikle et stykke software kræves ganske rigtigt en software udviklingsmodel, men det har intet med agile metoder at gøre. Vi kan dog godt blive enige om, at ikke alle software udviklingsmodeller kan anvendes i et projekt, hvor man anvender agile metoder som ledelsemodel.

Morten Wegelbye Nissen

Igen præller alt kritik af som vand på en fedtet gås. Jeg kan kun give PHK fuldstændig ret i hans vurdering af useriøsiteten og fan kulturen omkring agil udvikling.

Eller også taler vi ikke samme sprog, jeg har virkelig ingen ide om hvilken kritik der er prællet af. Jeg må ikke have været klar nok i spyttet, men jeg syntes nu jeg gav dig ret i alle dine 4 punkter. Hvis der i din post, uden for de 4 punkter, også var kritik; Ja så er der et problem med sproget.

En god programmør udvikler sig selv hele tiden. Derfor søger jeg information omkring agil udvikling. Læser debatterne med fråde - men det der sker her for tiden minder mig om dagspressens behandling af islam.

Jeg ser ikke mig selv som agil - arbejder ikke efter scrum eller noget. Jeg ville ønske at jeg altid fik skrevet tests til min kode, også helst før jeg skriver koden.

( Min kommentar omkring v2live burde have stået for sig selv, og ikke i et svar til din post )

ps. Er jeg den eneste der syntes høne og PHK i samme sætning er lidt sjovt i denne her debat.

Nikolaj Brinch Jørgensen

@Morten

Er jeg den eneste der syntes høne og PHK i samme sætning er lidt sjovt i denne her debat.

Nej det er du ikke.

Dit svar til Carsten er ellers ganske udemærket. Specielt behandlingen af det her postulat om at alle der beskæftiger sig med agil udvikling (om det så er software, biler, bygninger eller hvad det måtte være), skal skæres over een kam som nogle fanatister og virkelighedsfjerne idioter. Din formulering er helt spot on.

@Carsten

Det er rart at høre dine holdninger til agil udvikling, men som Michael skriver, så taler du vist ikke om det samme som os andre. Vi taler om en proces/metode for projektledelse, ikke om en kasse med en samling best practices for hvordan man bedst skriver sin kode. Jeg tror en del af forvirringen kommer af at mange tror eXtreme Programming er den eneste for for agil udvikling (og XP beskæftiger sig meget med hvordan man som udvikler gør sit arbejde). Det er dog ikke det vi behandler.

Iøvrigt en opfordring til alle udviklere, læs: The Pragmatic Programmer (og til dem som har læst den for længe siden, læs den igen). Det er værdifuld viden, ligesom The Mythical Man Month er det.

Slet Mig nu

Bent, ved fremtidige indlæg kunne du ikke beskrive de enkelte elementer i Agile tanken og så element for element diskutere, kritisere, argumentere for og imod?

Det virker som om at kritikken går på:

at der er en fanklub af Agile,   
at fanklubben ikke har research artikler fra de sidste 25 år at kaste i grams,  
at det ikke er noget nyt - alle har gjort lidt i deres egne projekter  
hvis man ikke kaster sig for føderne af kritikkerne så er man en ond fanboy

Jeg tror at det kunne være diskussionen tjent hvis der fokuseres på hvad der reelt snakkes om, i stedet for konceptet som en black box. Principperne er lette at sige, men enormt svære at implementere. Jeg finder f.eks. at man sjældent har et projekt som lige kan være self-organizing og være rubberduck med business, pga. manglende personegenskaber som kommunikation med ikke-tekniske folk, ego'er, interesser, politik o.s.v. De forskellige practices som knyttes til, ala' pair-programming og TDD - de er interessante, men jeg oplever problemer med folks kapacitet, evner, interesser, egoer m.m. til at det er helt nemt. Så en diskussion af tricks, teknikker eller lignende kunne være mere interessant.

P.S. interessant artikel forresten:
(Empirical Evaluation of Agile Software Development: The Controlled Case Study Approach)
http://www.springerlink.com/content/ql4cwua10aghv6pc/

Man kan finde den gratis ved at google for den.

Bent Jensen

Ja, og nej. Hvis du ser isoleret på en metode som Scrum handler det mest om projektstyring, og kan som du nævner det anvendes på meget andet end softwareudvikling. Jeg mener dog at der er aspekter ved softwareudvikling, som er mere eller mindre agile, og jeg mener faktisk at man ikke får særlig meget udbytte af Scrum, hvis man ikke har det på plads. Det er ting som continuous integration, Automatisk test tæt på softwareudviklingen (TDD og varianter deraf). Xunit frameworket til unittest blev lavet af Kent Beck, som også stod fadder til eXtreme Programming. Du kan læse om det her: http://www.martinfowler.com/bliki/Xunit.html

Log ind eller Opret konto for at kommentere