Loading…
Tilbage

Profilbillede

Hvad menes der med agil udvikling?

Martin Mouridsen

Jeg kunne godt tænke mig at vide, hvad der egentlig menes med agil udvikling. Jeg forstår det som et meget bredt emne, og jeg tror derfor nemt, at folk forvirrer det med noget andet.

Hej Martin,

Du har ret at det er et meget bredt emne :-)

Agil softwareudvikling dækker over forskellige metoder, som beskriver primært måden at projektstyre eller produktudvikler på en mere fleksibel måde end vandfaldsmodellerne.

Den primære forskel er at udviklingen foregår i iterationer og efter hver iteration leveres en fungerende stykke software. På den måde giver du løbende værdi ti kunden, og kan opnå at kunden giver dig hurtig tilbagemelding.

Så hvis du tænker at ”gammeldags” planlægning tager udgangspunkt i tidsplaner med milepæle og produktleverancer, som baserer sig på grund af ”gestimater” (Top-down), så kan man sige at agil udvikling er drivet bottom-up, hvor udviklingsteamet afstemmer og forpligter sig for leverancerne.

Det er en meget meget langt emne. Du er mere end velkommen at ringe eller skrive til mig.

 

De bedste hilsner

Miglena

Hej Martin,

Du har ret at det er et meget bredt emne :-)

Agil softwareudvikling dækker over forskellige metoder, som beskriver primært måden at projektstyre eller produktudvikler på en mere fleksibel måde end vandfaldsmodellerne.

Den primære forskel er at udviklingen foregår i iterationer og efter hver iteration leveres en fungerende stykke software. På den måde giver du løbende værdi ti kunden, og kan opnå at kunden giver dig hurtig tilbagemelding.

Så hvis du tænker at ”gammeldags” planlægning tager udgangspunkt i tidsplaner med milepæle og produktleverancer, som baserer sig på grund af ”gestimater” (Top-down), så kan man sige at agil udvikling er drivet bottom-up, hvor udviklingsteamet afstemmer og forpligter sig for leverancerne.

Det er en meget meget langt emne. Du er mere end velkommen at ringe eller skrive til mig.

 

De bedste hilsner

Miglena

Jeg er helt enig med, Miglena. Det er faktisk ganske godt forklaret.

 

Jeg vil dog lige tilføje en enkelt, men måske meget relevant ting: 

Fordelen ved agil udvikling er, som Miglena også er inde på, opdeling i iterationer. Dette er gældende for både udvikler og kunde. 

Når man som kunde skal have udviklet et stykke software, har man som regel ikke det store kendskab til selve udviklingsdelen, altså hvad det kræver - og hvad der giver mening at udvikle i sammenhæng. Her spiller iterationer en stor rolle, da en iteration opdeler udviklingsprocessen i flere dage og dermed sikrer at man udvikler i prioriteringer, fremfor ønsker. 

Vi har netop været igennem en længere udviklingsproces hos Alfabeto, hvor vi gjorde brug af ovenstående. 

Jeg syntes Miglena's pointe omkring bottom-up er ret spot on.

Jeg tror det er vigtigt med agil udvikling at man tager udgangspunkt i at ting ikke er perfekte fra starten, men nærmere bygger løsninger og produkter som man kan tilpasse hen af vejen.

I vores virksomhed, som blandt andet har stået for RKI-LÅN.dk og PANTSAT.DK . Vi har lige lanceret den, og den er langt fra perfekt - men vi har sørget for at komme i luften således vi kan få noget traffik og analysere og teste hypoteser.

Vi bruger en lang række software plug-ins til at analysere hvorledes brugere navigere på hjemmesiden. På den måde tilretter vi løsningen baseret på bruger data i stedet for blot intuition.

ændret af Marcus Hansen (28.11.2018)

Nu er det her et ældre indlæg, og der er helt sikkert en hel del der har hørt om agil udvikling, siden dette spørgsmål blev stillet.

For mig er agil udvikling et fundamentalt anderledes mindsæt for udvikling, en den vandfaldsmodel vi alle udviklede efter før. Vi pakkede den ind i OML, UML og andre former for design, men alle var funderet i udgangspunktet, en kravspecifikation med faste udviklingsfaser. Dvs. man skulle have specificeret og designet hele slutproduktet inden man gik igang med udviklingen. Ændringer undervejs var en stor og konstant udfordring, fordi de rykkede produktet, tiden og prisen.

I den agile udviklingsproces forsøger man at gøre op med det mindsæt, at vi tror at altid kender alt om det vi skal udvikle før vi går igang med at udvikle det. Lovgivning, markeder, konkurrenter, kunder ændrer sig hurtigere end nogensinde før, så vi har behov for at udvikle på en måde der gør det lettere at håndtere udefra kommende ændringer. I den agile udviklingsproces udarbejder man en backlog af opgaver, som tilsammen udgør en slags kravspecifikation. Backloggen bliver prioriteret, så de opgaver som giver mest mening/værdi har højest prioritet og derefter. Hvis der kommer nye opgaver ind fordi noget har ændret sig, så bliver de oprettet i backloggen og prioriteret ind. Det betyder at de opgaver der giver mindst værdi, altid er nederst i bunken af opgaver, og måske derfor, aldrig bliver udviklet. Udvikling forgår i iterationer, hvor der efter hver iteration afleveres et produkt. Det produkt testes, og kan måske endda gå live, med lidt funktionalitet, og ny funktionalitet kommer på efter hver iteration. På den måde gennemtestes systemet samtidig med at det udvikles. I stedet for ved vandfaldsmodelen, hvor hele systemet skal testes til sidst.

Så efter min mening er agil udvikling det mindset, at vi ikke behøves at kende hele vores domæne før vi går igang med at udvikle. At vi gør plads til at tage nye opgaver ind, som giver mere mening nu, i forhold til dem vi troede vi skulle lave, fordi det giver mere værdi for brugerne/kunden.

At være agil er at være omstillingsparat :)


 

Hej Flemming,

Fint oplæg du har skrevet.

Hilsen

Søren