Agil metodik: Mening, fördelar, nackdelar och mer
Alltid velat veta vad agil metodik inom mjukvaruutveckling är? Ta en närmare titt här för att få detaljerna.

Den agila metoden är en mjukvaruutvecklingsfilosofi som syftar till att leverera bättre värde till kunderna genom att använda kortare utvecklingscykler samtidigt som ständiga revisioner ingår.
Mjukvaruutveckling växte från områdena matematik och naturvetenskap. Så, det inkorporerade ursprungligen de vetenskapliga metoderna från dessa områden.
Dessa metoder utvecklades till vattenfallsmetoden på 1970-talet för att tillgodose dagens krav. Datorer och deras mjukvara på den tiden var stora, komplexa och designade för att hålla i årtionden. Så vattenfallsmetoden passade bra.
Men i slutet av 1990-talet förändrade internet världen dramatiskt och ett nytt tillvägagångssätt blev nödvändigt. Det var så den agila metodiken kom till liv.
Nedan följer en närmare titt på denna mjukvaruutvecklingsrörelse och hur den kan hjälpa dig och ditt team.
Historien om den agila utvecklingsmetoden
Agil mjukvaruutveckling växte från internet och dess omättliga behov av applikationer under högkonjunkturen på 1990-talet och början av 2000-talet.
Detta var också en period då många utvecklare utan datavetenskaplig bakgrund gick över till webbutveckling på grund av det enorma behovet av webbplatser som vänder sig till olika grupper och branscher.
Naturligtvis var de flesta startups små. Så de flesta utvecklingar skedde i små team, med det slutliga målet ofta att vara en snabb tid till marknaden. Att vara sent innebar att förlora marknadsandelar.
För att motverka de restriktioner som vattenfallsmodellen ställde för att få ut produkter på marknaden så snabbt som möjligt, kom olika utvecklare på olika metoder under 1990-talet. De inkluderar Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban och andra.
Sedan, någon gång under 2001, samlades 17 utvecklare som praktiserade den ena eller den andra formen av tidig agil utveckling i Utah, USA. Sedan avslutade de sitt möte med att publicera "Manifestet för agil mjukvaruutveckling".
Detta manifest bygger på 4 värderingar och 12 principer.
De 4 värdena och 12 principerna för agil utveckling
Utifrån de erfarenheter de samlade under sitt möte nådde de 17 utvecklarna en överenskommelse om en uppsättning värderingar för att skapa mjukvara mer effektivt.
Dessa fyra värden är som följer:
- Individer och interaktioner över processer och verktyg. Det betyder att det är viktigt att utveckla mjukvara med verktyg samtidigt som man följer en specifik process. Men att ha kompetenta människor som samarbetar mer effektivt är viktigare.
- Fungerande mjukvara över omfattande dokumentation. Den här attackerar vattenfallsmetoden att först designa mjukvara och skriva dokumentation för den innan själva mjukvaruutvecklingsprocessen.
- Kundsamarbete över avtalsförhandling. Det är bara genom att arbeta nära kunden eller användaren som du kan lära dig och utveckla precis vad kunden behöver. Detta skapar mer värde.
- Reagerar på förändring över att följa en plan. Att följa en projektplan är viktigt. Men planen får inte vara för stel. Det måste rymma förändringar för att möta intressenternas förväntningar.
Dessa Agile Manifesto-värden ovan är baserade på 12 principer och de är som följer:
- Kundnöjdhet genom tidig och kontinuerlig leverans av värdefull programvara.
- Välkomna förändrade krav, även i sen utveckling.
- Leverera fungerande programvara ofta (veckor snarare än månader)
- Nära, dagliga samarbete mellan affärsmän och utvecklare
- Projekt är uppbyggda kring motiverade individer, som man bör lita på
- Konversation ansikte mot ansikte är den bästa kommunikationsformen (samlokalisering)
- Fungerande mjukvara är det primära måttet på framsteg
- Hållbar utveckling, kunna hålla ett konstant tempo
- Kontinuerlig uppmärksamhet på teknisk spetskompetens och bra design
- Enkelhet – konsten att maximera mängden arbete som inte görs – är avgörande
- Bästa arkitekturer, krav och design kommer från självorganiserande team
- Regelbundet reflekterar teamet över hur man kan bli mer effektivt och anpassar sig därefter
Iterationer eller sprints
Iterationer eller sprints i agil mjukvaruutveckling är korta perioder på vanligtvis 1 till 4 veckor, i vilka utvecklingsarbetet bryts. Detta gör saker lättare att hantera, eftersom det kräver mindre planering.
Varje team består också vanligtvis av medlemmar med olika funktioner, och dessa kan innefatta planering, analys, design, kodning och testning.
Teamet arbetar med programvaran vid varje iteration eller sprint tillsammans. Och de producerar en fungerande produkt i slutet. Denna fungerande mjukvara är ett mått på verkliga framsteg, enligt Agile Manifesto.
Beroende på produkten och på kundens behov kan en iterations produkt släppas på marknaden eller inte. Så det tar ofta många iterationer för en enda release.
Fördelarna med agil utveckling
Som du kan föreställa dig ger den agila metodiken många fördelar. De är följande:
- Snabbare implementering av idéer
- Mer flexibilitet än vattenfallsansatsen
- Förbättrad produktivitet med hanterade iterationer
- Bättre produkter genom användarinteraktioner
- Fel identifieras snabbt och elimineras
Nackdelar med den agila metoden
Det finns också vissa nackdelar med att arbeta med en agil utvecklingsmetod. Och de kan inkludera:
- Det kan vara svårt att bedöma de totala kostnaderna i början
- Det kräver mycket kundinput
- Innebär mycket oplanerat arbete
- Inget klart definierat projektslut
När ska man använda agila metoder
- När du inte kan uppskatta vad programvaran kräver
- Du har tillräckligt med tillgång till kunder
- Du utvecklar en webbapp eller ett system som är lätt att uppdatera
- Du måste snabbt ta marknadsandelar med en tidig release
Populära ramverk för agila utveckling
Det finns många populära ramverk för agila utveckling. Vissa började långt före Agile Manifesto 2001, medan andra kom senare.
Målet med ett ramverk är helt enkelt att definiera reglerna för en metod. Så även om de mest populära ramarna listas nedan för din referens, finns det många fler. Och du är också fri att skapa din eller ändra ett befintligt ramverk för att passa ditt team.
- Scrum: Detta ramverk är designat för lag med 10 eller färre medlemmar. Arbetet är uppdelat i sprints på 2-4 veckor med dagliga 15 minuters möten.
- Kanban: Kanban kommer från Toyota och är ett japanskt ord som betyder skylt och är till stor hjälp för team som uppskattar visuella hjälpmedel. Uppgifter flyttas från ett steg till ett annat med hjälp av visuella representationer som klisterlappar eller appar.
- Snabb applikationsutveckling RAD: Den här frasen kan både syfta på agil mjukvaruutveckling i allmänhet eller James Martin-metoden. RAD fokuserar på användargränssnittskrav och förlitar sig mycket på prototypframställning.
- Lean Startup: Detta ramverk är till för dem som behöver utveckla en produkt eller tjänst, men först måste bestämma dess lönsamhet på marknaden. Det innebär att man använder experiment för att se vad som fungerar och vad som inte fungerar.
Andra anmärkningsvärda ramverk inkluderar Extreme Programming (XP), Adaptiv mjukvaruutveckling, Agile Modeling, Dynamic Systems Development Method och Scaled Agile Framework.
Agile vs vattenfallsmetoder
Här är en titt sida vid sida på de smidiga och vattenfallsmetoderna för att utveckla programvara. Det kan hjälpa att veta hur varje metod står sig mot den andra. Så du kan enkelt välja de bästa verktygen för ditt jobb.
| Agile | Vattenfall |
|---|---|
| Inkrementell och iterativ metod | Linjär och sekventiell livscykelmodell |
| Flexibel att ändra | Stela implementeringar |
| Tester och recensioner pågår | Det finns bara en testfas efter avslutad |
| Kraven kan ändras | Krav är fasta efter planering |
| En samling av många mindre projekt | Ett enda projekt |
| Mer kundengagemang | Mindre kundengagemang |
Adaptiv vs prediktiv utveckling
Målet med agil mjukvaruutveckling är att anpassa sig till förändringar i den verkliga världen. Och dessa är ofta ett resultat av en kunds eller användares behov. Anpassning står i skarp kontrast till vattenfallsmodellens prediktiva karaktär.
Då är det vettigt att använda agila metoder när man utvecklar system som man inte är så säker på hur det kommer att bli. Eller när det sker ständiga förändringar och utveckling i en bransch. Internet är ett stort exempel.
Annars om du utvecklar för ett system eller en marknad som du vet allt om, och som knappast förändras eller är immun mot förändringar. Då kan vattenfallsfilosofins prediktiva karaktär vara till hjälp.
Hantverk av mjukvara
Software Craftsmanship är en annan filosofi som bygger på agila utvecklingsprinciper och den fokuserar på att betona kompetensen hos mjukvaruutvecklarna som är involverade i ett projekt.
Software Craftsmanship-rörelsen har också ett manifest och det säger:
Som blivande mjukvaruhantverkare höjer vi ribban för professionell mjukvaruutveckling genom att öva på det och hjälpa andra att lära sig hantverket. Genom detta arbete har vi kommit till värde: · Inte bara fungerande mjukvara, utan också välgjord mjukvara · Inte bara reagera på förändringar, utan också stadigt tillföra värde · Inte bara individer och interaktioner, utan också en gemenskap av professionella · Inte bara kunder samarbete, men också produktiva partnerskap Det vill säga, i jakten på föremålen till vänster har vi funnit att föremålen till höger är oumbärliga. © 2009, undertecknad. Detta uttalande kan fritt kopieras i vilken form som helst, men endast i sin helhet genom detta meddelande
Slutsats
När vi kommer till slutet av vår titt på den agila metodiken och mjukvaruutvecklingen kan du se att det finns så många alternativ där ute.
Varje lag är olika. Och precis som olika team utvecklade sina olika metoder för att anpassa sig till förändrade tider. Du måste också anpassa dig genom att antingen använda ett redan etablerat ramverk eller genom att anpassa det för att passa ditt team.





