Agile Software Development 101

Författare: Judy Howell
Skapelsedatum: 26 Juli 2021
Uppdatera Datum: 23 Juni 2024
Anonim
What is Agile?
Video: What is Agile?

Innehåll


Hämtmat:

Denna mjukvaruutvecklingsmetod uppmuntrar samarbete och flexibilitet för att leverera en högkvalitativ produkt.

Det har varit mycket surr runt Agile i programvaruteknik och applikationsutvecklingsvärlden. Agile är inte ett begrepp, utan ett tankesätt. Som namnet antyder koncentrerar det sig på att vara flexibel och dynamisk. Denna metod avlägsnar också isoleringen mellan faser av programvaruutveckling och uppmuntrar utvecklingsgruppen att samarbeta med kvalitetsanalytiker. Det betonar också kundernas engagemang för att utveckla, bygga och leverera en högkvalitativ produkt. Här kan du ta en titt på Agile, hur det fungerar och några bästa metoder för denna populära mjukvaruutvecklingsmetod.

En kortfattad livscykel för programutveckling

Mjukvaruutvecklingens livscykel (SDLC) är processen för att skapa mjukvarulösningar eller modifiera befintliga strukturer avsedda att tillgodose ett särskilt problem. Den omfattar olika steg som följs i en logisk ordning. I traditionella SDLC-modeller är dessa steg som följs efter varandra och som vanligtvis utförs isolerat:


  1. Krav som samlas in från klienterna
  2. System- och genomförbarhetsanalys
  3. Design och modellering
  4. Kodning eller implementering
  5. Testning
  6. Distribution och leverans
  7. Underhåll och ändringsförfrågningar

I en typisk mjukvaruutvecklingscykel är de faktiska användarna eller klienterna involverade i processen med kravsamling och sedan under betatest. Problemet med denna traditionella modell är dock att underhållsdelen av cykeln blir en svår och ganska dyr affär. Många gånger finns det inget utrymme för förbättringar eller förändringar i systemet. I värsta fall är programvaran som har konstruerats eller utvecklats inte i linje med de faktiska kundens specifikationer och förväntningar, vilket innebär att utvecklingsgruppen kan behöva starta hela processen igen.

Varför agile utveckling annorlunda

De vanligaste traditionella modellerna av SDLC - vattenfallsmodellen, snabbapplikationsmodell, iterativ modell, spiralmodell etc. har sina egna uppsättningar av för- och nackdelar. Det tog åldrar innan människor faktiskt kunde analysera hur realistiska dessa modeller var. De passar perfekt in i ideala scenarier, men de var alltid praktiska när det gällde verkliga applikationer. Som ett resultat stod mjukvaruutvecklingsteam inför många utmaningar. Några av begränsningarna för konventionella SDLC-modeller inkluderar:


  • De tillåter inte att krav ändras i de senare skedenen eftersom dessa är frusna i specifikationsdokumentet för programvarukrav. I vissa fall går användarnas förväntningar oförklarade eller missförstås.
  • Slutanvändarna ser inte systemet förrän det är klart. Detta ger mycket lite utrymme för förslag och ändringar.
  • Traditionell SDLC kan skapa ett stort kommunikationsgap mellan utvecklare och testare, eftersom de är separata faser, och det finns inget samarbete mellan de två parterna.
  • Testning av vitlåda kan inte göras effektivt.

Användningen av Agile löser många av dessa problem eftersom det snarare än en steg-för-steg-process fungerar som mer av en filosofi och ramverk som syftar till att hjälpa team att samarbeta, svara på förändringar och bygga en färdig produkt som innehåller mer input från alla parter, inklusive användare.

Agile Practices

Framväxten av Agile-metodik är inte mindre än en revolutionerande reform i mjukvaruutvecklingsmetodiken, eftersom den ger tillräckligt med utrymme för projektgrupperna att vara kreativa och mångsidiga och samtidigt ta kollektivt ägande av varje fas av produkten. Genom att följa Agile-vägen kan enskilda deltagare i mjukvaruutvecklingsteamet konditionera sina sinnen att omfamna osäkerhet, hantera förändringar och bygga en bättre produkt som en process, snarare än i diskreta, obefogade steg.

Även om det inte finns någon omfattande lista över Agile-principer, finns det vissa metoder som Agile förökar. Dessa inkluderar:

  1. Testdriven utveckling (TDD)
    Helst bör utvecklare först skriva testfall för den funktionalitet som de kommer att koda för. Detta kommer att säkerställa god kvalitetskod, som mindre troligt kommer att bryta under exceptionella förhållanden. Denna process hjälper också till att säkerställa att användarspecifikationer har tagits upp.
  2. Parprogrammering
    I Agile-utveckling arbetar programmerare vanligtvis med samma problem i par, där en person skriver koden (drivrutinen) och den andra granskar koden och ger idéer och förslag (navigatör). Detta förbättrar produktiviteten och minskar den tid som krävs för att granska koden.
  3. Code Refactoring
    Kodrefaktoring innebär att koden delas upp i mindre och enklare moduler som kan (och borde) existera oberoende i det ideala scenariot. Detta förbättrar kodens läsbarhet, testbarhet och underhållbarhet i hög grad.
  4. Aktivt deltagande från faktiska intressenter
    Efter regelbundna intervall av en bestämd tidsperiod (kallas "ss") bör klienterna få en betydande fungerande prototyp av programvaran. Detta gör att utvecklare kan få feedback om vad de bygger när de går.
  5. Behandla krav som en prioriterad stack
    I Agile är det viktigt att kategorisera krav utifrån deras betydelse. Detta kan inkludera både implicita såväl som tydliga kundförväntningar på mjukvaruprodukten som utvecklas. Programvaruutvecklingsteamet bör kollektivt uppskatta tiden och resurserna de kommer att investera för att implementera funktionen och kartlägga det baserat på användarnas krav och den relativa ordningen i vilken de kommer att hantera varje del av projektet.
  6. Regressionstestning
    Regressionstest innebär att testa funktionaliteten för en hel applikation efter att ha lagt till en ny funktion eller ändrat den befintliga funktionaliteten i koden. Detta hjälper till att säkerställa att ändringarna inte har brutit den befintliga koden.

Varför gå smidig?

Agile föreskriver vissa metoder, men det verkställs inte av ett program för utveckling av programvara. Trots allt, om det inte finns något utrymme för justeringar och avvikelser, är syftet med Agile i hög grad besegrade. Att integrera även några aspekter av Agile-utveckling i ett projekt kan hjälpa programvaruutvecklingsteam att hantera oförutsedda utmaningar och i slutändan bygga en bättre produkt på ett mer effektivt sätt.

Inga buggar, ingen stress - din steg-för-steg-guide för att skapa livsförändrad programvara utan att förstöra ditt liv

Du kan inte förbättra dina programmeringsfärdigheter när ingen bryr sig om mjukvarukvalitet.