Agil modell
Flexibel (Agil) metodik hjälper till att minska risken i mjukvaruutveckling genom att flytta arbetsflödet i flera små cykler. Dessa cykler kallas iterationer och varar vanligtvis två till tre veckor.
En iteration är som ett litet mjukvaruprojekt som består av uppgifter som var och en förbättrar funktionaliteten. Dessa inkluderar: upprätta en plan, utvärdera krav, komma överens om ett projekt, skriva kod, testa och skapa teknisk dokumentation.
En iteration är vanligtvis inte tillräckligt för en fullfjädrad mjukvaruversion. Men det som är bra med Agile är att små delar av projektet är redo för utvärdering i slutet av varje iteration. Detta gör att teammedlemmar kan ändra prioriteringar för vidare arbete utan att vänta på den slutliga releasen.
Genom att tillämpa en "agil" utvecklingsmetodik kan du se ett konkret resultat efter varje iteration. Det vill säga att utvecklaren kan förstå om resultatet av hans arbete uppfyller kraven eller inte. Detta är en av de viktiga fördelarna med den flexibla modellen.
När det gäller nackdelarna, när du använder Agile, är det ibland svårt att uppskatta kostnaden för arbetsresurser och projektets budget. Om vi tar alternativen för den praktiska tillämpningen av den flexibla modellen, är den mest kända bland dem Extreme Programming (XP).
XP baseras på korta möten med teammedlemmar som äger rum varje dag och regelbundna möten (en gång i veckan eller mindre). Vid dagliga möten (daglig standup) diskuteras vanligtvis:
- aktuella resultat av arbetet;
- en lista över uppgifter som ska utföras av varje gruppmedlem;
- svårigheter och sätt att lösa dem.
Manifest
Agile är en hel riktning i utvecklingen, så reglerna för att arbeta med det deklareras i ett speciellt dokument - Agile Manifesto. Detta inkluderar både praxis och principer som teamet ska arbeta efter.
Agile Manifesto består av 4 grundläggande idéer och 12 principer.
Nyckelidéer:
- samarbete mellan utvecklare är viktigare än verktyg;
- den fungerande versionen av produkten har företräde framför dokumentationen;
- ömsesidig förståelse mellan teamet och kunden är viktigare än villkoren i kontraktet;
- Den ursprungliga planen kan alltid ändras vid behov.
När det gäller de 12 principerna för Agile, här är de:
- huvudprioriteringen är att det färdiga programmet överensstämmer med kundens förväntningar;
- ändrade förhållanden är tillåtna i vilket skede som helst, även i det sista utvecklingsskedet (om detta kan förbättra programvarans kvalitet och konkurrenskraft);
- regelbunden leverans av fungerande versioner av mjukvaruprodukten (var 14:e dag, månad eller kvartalsvis);
- nyckeln till framgång är regelbunden interaktion mellan kunden och utvecklarna (helst dagligen);
- projekt bör byggas bland dem som är intresserade av dem, sådana människor bör ges de nödvändiga förutsättningarna för arbete och alla typer av stöd;
- det bästa sättet att dela information i ett team är ett personligt möte;
- den fungerande versionen av programvaran är den bästa indikatorn på framsteg;
- alla intressenter måste kunna upprätthålla önskad arbetstakt under hela mjukvaruutvecklingsprocessen;
- teknisk förbättring och bra design förbättrar flexibiliteten;
- det är viktigt att hålla det enkelt och inte överskapa;
- de bästa resultaten erhålls från de lag som kan organisera sig själv;
- teammedlemmar bör regelbundet tänka på sätt att förbättra sin effektivitet genom att ändra arbetsflödet.
Enligt Agile-manifestet beror en bra mjukvaruutvecklingsprocess direkt på de personer som är involverade i denna process. För att göra detta måste du organisera deras interaktion så effektivt som möjligt, skapa det mest organiserade laget.
Metoder
Det finns också flera metoder i Agile Manifesto som förklarar värderingar och principer:
- Agil modellering;
- Agile Unified Process;
- Agil datametod
- Rapid Application Development (DSDM);
- Viktig enhetlig process;
- extrem programmering;
- funktionsdriven utveckling;
- Bli verklig;
- Öppna;
- Klunga.
Agile Modeling är en samling principer, termer och metoder som påskyndar och förenklar utvecklingen av mjukvarumodeller och dokumentation.
Målet med Agile Modeling är att förbättra modellering och dokumentation. Det är viktigt att notera att detta inte inkluderar kodning, testning eller problem relaterade till projektkontroll, distribution och support. Denna metod inkluderar dock kodgranskning.
Agile Unified Process är en metod som gör det enkelt för användare att approximera (modellera). Används vanligtvis för att utveckla kommersiell programvara.
Agile Data Method - flera liknande metoder där kundvillkor uppnås genom samarbete mellan flera team.
DSDM - detta tillvägagångssätt skiljer sig från de andra genom att, tillsammans med utvecklarna, användare av den framtida produkten tar en aktiv del i den.
Funktionsdriven utveckling är en utvecklingsmetodik som har en tidsgräns: "varje funktion får inte implementeras längre än två veckor."
Det är värt att tänka på att om användningsfallet är litet kan det betraktas som en funktion. Om det är betydande måste det delas upp i flera funktioner.
Getting Real är en iterativ metod där programgränssnittet utvecklas först, och först därefter utvecklas dess funktionalitet.
OpenUP är en utvecklingsmetod som delar in projektcykeln i fyra steg: start, förädling, konstruktion och överlämning.
Enligt principerna för Agile är det, oavsett arbetets varaktighet, nödvändigt att ge alla intressenter och teammedlemmar ett sätt att bekanta sig med och fatta beslut. Tack vare detta är det möjligt att effektivt kontrollera situationen och utvärdera mellanresultat i tid. Projektplanen definierar livscykeln, och slutresultatet bör betraktas som en stabil version av applikationen.
När det gäller Scrum så reglerar det reglerna för att hantera utvecklingsprocessen och låter dig tillämpa befintliga kodningsmetoder med möjlighet att justera villkoren eller göra ändringar. Genom att använda denna metod kan du se och eliminera avvikelser från det förväntade resultatet i de tidiga utvecklingsstadierna.
Låt oss ta en titt på detta lite mer detaljerat...
GO TO FULL VERSION