Agile metode: Betydning, fordele, ulemper og mere
Har du altid ønsket at vide, hvad agil metodologi inden for softwareudvikling er? Se nærmere her for at få detaljerne.

Den agile metodologi er en softwareudviklingsfilosofi, der sigter mod at levere bedre værdi til kunderne ved at bruge kortere udviklingscyklusser og samtidig inkludere konstante revisioner.
Softwareudvikling voksede fra felterne matematik og naturvidenskab. Så det inkorporerede oprindeligt de videnskabelige metoder fra disse områder.
Disse metoder udviklede sig til vandfaldstilgangen i 1970'erne for at imødekomme datidens krav. Computere og deres software på den tid var store, komplekse og designet til at holde i årtier. Så vandfaldsmetoden passede godt.
Men i slutningen af 1990'erne var internettet dramatisk ved at ændre verden, og en ny tilgang blev nødvendig. Sådan kom den agile metodik til live.
Følgende er et nærmere kig på denne softwareudviklingsbevægelse, og hvordan den kan hjælpe dig og dit team.
Historien om den agile udviklingsmetode
Agile softwareudvikling voksede fra internettet og dets umættelige behov for applikationer under boom-årene i 1990'erne og begyndelsen af 2000'erne.
Dette var også en periode, hvor mange udviklere uden datalogisk baggrund skiftede til webudvikling på grund af det massive behov for websteder, der henvender sig til forskellige grupper og brancher.
Naturligvis var de fleste startups små. Så de fleste udviklinger skete i små teams, hvor det endelige mål ofte er en hurtig time-to-market. Som forsinket betød det at miste markedsandele.
For at imødegå de begrænsninger, som vandfaldsmodellen udgjorde for at få produkter på markedet så hurtigt som muligt, fandt forskellige udviklere på forskellige metoder i løbet af 1990'erne. De omfatter Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban og andre.
Så, engang i 2001, kom 17 udviklere, der praktiserede den ene eller den anden form for tidlig agil udvikling, sammen i Utah, USA. Derefter afsluttede de deres møde med at udgive 'Manifest for Agile Software Development.
Dette manifest er baseret på 4 værdier og 12 principper.
De 4 værdier og 12 principper for agil udvikling
Ud fra de erfaringer, de samlede under deres møde, nåede de 17 udviklere til enighed om et sæt værdier for at skabe software mere effektivt.
Disse fire værdier er som følger:
- Individer og interaktioner over processer og værktøjer. Det betyder, at det er vigtigt at udvikle software med værktøjer, mens man følger en bestemt proces. Men det er vigtigere at have kompetente mennesker, der arbejder sammen mere effektivt.
- Fungerende software over omfattende dokumentation. Denne angriber vandfaldsmetoden med først at designe software og skrive dokumentation til det før selve softwareudviklingsprocessen.
- Kundesamarbejde over kontraktforhandling. Det er kun ved at arbejde tæt sammen med kunden eller brugeren, at du kan lære og udvikle netop det, kunden har brug for. Dette skaber mere værdi.
- Reagerer på forandring over at følge en plan. Det er vigtigt at følge en projektplan. Men planen må ikke være for stiv. Den skal rumme ændringer for at leve op til interessenternes forventninger.
Disse Agile Manifest-værdier ovenfor er baseret på 12 principper, og de er som følger:
- Kundetilfredshed ved tidlig og kontinuerlig levering af værdifuld software.
- Velkommen til skiftende krav, selv i sen udvikling.
- Lever fungerende software ofte (uger i stedet for måneder)
- Tæt, dagligt samarbejde mellem forretningsfolk og udviklere
- Projekter er bygget op omkring motiverede individer, som man bør have tillid til
- Ansigt til ansigt samtale er den bedste form for kommunikation (samlokalisering)
- Arbejdssoftware er det primære mål for fremskridt
- Bæredygtig udvikling, i stand til at holde et konstant tempo
- Kontinuerlig opmærksomhed på teknisk ekspertise og godt design
- Enkelhed – kunsten at maksimere mængden af ikke udført arbejde – er afgørende
- De bedste arkitekturer, krav og design kommer fra selvorganiserende teams
- Regelmæssigt reflekterer teamet over, hvordan man bliver mere effektivt og justerer derefter
Iterationer eller sprints
Iterationer eller sprints i agil softwareudvikling er korte perioder på normalt 1 til 4 uger, hvor udviklingsarbejdet brydes ind. Det gør tingene nemmere at styre, da det kræver mindre planlægning.
Hvert team består også typisk af medlemmer med forskellige funktioner, og disse kan omfatte planlægning, analyse, design, kodning og test.
Holdet arbejder på softwaren ved hver iteration eller sprint sammen. Og de producerer et fungerende produkt til sidst. Dette fungerende stykke software er et mål for ægte fremskridt, ifølge Agile Manifesto.
Afhængigt af produktet og kundens behov kan en iterations produkt blive frigivet på markedet eller ej. Så det tager ofte mange gentagelser for en enkelt udgivelse.
Fordelene ved agil udvikling
Som du kan forestille dig, bringer den agile metode mange fordele. De er som følger:
- Hurtigere implementering af ideer
- Mere fleksibilitet end vandfaldstilgangen
- Forbedret produktivitet med administrerede iterationer
- Bedre produkter gennem brugerinteraktioner
- Fejl bliver hurtigt identificeret og elimineret
Ulemper ved den agile metode
Der er også nogle ulemper ved at arbejde med en agil udviklingsmetode. Og de kan omfatte:
- Det kan være svært at vurdere de samlede omkostninger i starten
- Det kræver masser af kundeinput
- Indebærer masser af uplanlagt arbejde
- Ingen klart defineret projektafslutning
Hvornår skal man bruge agile metoder
- Når du ikke kan vurdere, hvad softwaren kræver
- Du har nok adgang til kunder
- Du er ved at udvikle en webapp eller et system, der er nemt at opdatere
- Du skal hurtigt vinde markedsandele med en tidlig udgivelse
Populære agile udviklingsrammer
Der er mange populære agile udviklingsrammer. Nogle startede langt før Agile Manifesto i 2001, mens andre kom senere.
Målet med en ramme er simpelthen at definere reglerne for en metode. Så mens de mest populære rammer er angivet nedenfor til din reference, er der mange flere. Og du er også fri til at oprette din eller ændre en eksisterende ramme, så den passer til dit team.
- Scrum: Denne ramme er designet til hold med 10 eller færre medlemmer. Arbejdet er opdelt i sprints på 2-4 uger med daglige møder af 15 minutter.
- Kanban: Kanban stammer fra Toyota og er et japansk ord, der betyder billboard og er meget nyttigt for teams, der sætter pris på visuelle hjælpemidler. Opgaver flyttes fra det ene trin til det andet ved hjælp af visuelle repræsentationer som sticky notes eller apps.
- Hurtig applikationsudvikling RAD: Denne sætning kan både referere til agil softwareudvikling generelt eller James Martin-metoden. RAD fokuserer på brugergrænsefladekrav og er stærkt afhængig af prototyping.
- Lean Startup: Denne ramme er for dem, der har brug for at udvikle et produkt eller en tjeneste, men først skal bestemme dets markedslevedygtighed. Det involverer brug af eksperimenter for at se, hvad der virker, og hvad der ikke gør.
Andre bemærkelsesværdige rammer omfatter ekstrem programmering (XP), adaptiv softwareudvikling, agile modellering, dynamisk systemudviklingsmetode og den skalerede agile ramme.
De agile vs vandfaldsmetoder
Her er et side-om-side kig på de agile og vandfaldsmetoder til udvikling af software. Det kan hjælpe at vide, hvordan hver metode står over for den anden. Så du kan nemt vælge de bedste værktøjer til dit job.
| Agile | Vandfald |
|---|---|
| Inkrementel og iterativ tilgang | Lineær og sekventiel livscyklusmodel |
| Fleksibel til at ændre | Rigide implementeringer |
| Test og anmeldelser er i gang | Der er kun én testfase efter afslutning |
| Kravene kan ændre sig | Kravene fastsættes efter planlægning |
| En samling af mange mindre projekter | Et enkelt projekt |
| Mere kundeinvolvering | Mindre involvering af kunder |
Adaptiv vs forudsigelig udvikling
Målet med agil softwareudvikling er at tilpasse sig ændringer i den virkelige verden. Og disse er ofte et resultat af en kundes eller brugers behov. Tilpasning står i skarp kontrast til vandfaldsmodellens prædiktive karakter.
Så giver det mening at bruge agile metoder, når man udvikler systemer, så man ikke er så sikker på, hvordan tingene vil gå. Eller når der er konstante ændringer og udvikling i en branche. Internettet er et stort eksempel.
Ellers hvis du udvikler til et system eller marked, som du ved alt om, og som næsten ikke ændrer sig eller er immun over for forandringer. Så kan den forudsigende karakter af vandfaldsfilosofien være til hjælp.
Software håndværk
Software Craftsmanship er en anden filosofi, der bygger på agile udviklingsprincipper, og den fokuserer på at understrege færdighederne hos de softwareudviklere, der er involveret i et projekt.
Software Craftsmanship-bevægelsen har også et manifest, og det hedder:
Som håbefulde softwarehåndværkere hæver vi standarden for professionel softwareudvikling ved at øve det og hjælpe andre med at lære håndværket. Gennem dette arbejde er vi kommet til værdi: · Ikke kun fungerende software, men også veludviklet software · Ikke kun reagere på forandringer, men også støt tilføje værdi · Ikke kun individer og interaktioner, men også et fællesskab af professionelle · Ikke kun kunder samarbejde, men også produktive partnerskaber. Det vil sige, at vi i jagten på emnerne til venstre har fundet genstandene til højre for at være uundværlige. © 2009, undertegnede. Denne erklæring kan frit kopieres i enhver form, men kun i sin helhed gennem denne meddelelse
Konklusion
Når vi kommer til slutningen af vores kig på den agile metodologi og softwareudvikling, kan du se, at der er så mange muligheder derude.
Hvert hold er anderledes. Og ligesom forskellige teams udviklede deres forskellige metoder til at tilpasse sig skiftende tider. Du bliver også nødt til at tilpasse dig ved enten at gå med en allerede etableret ramme eller ved at tilpasse den, så den passer til dit team.





