Planview-bloggen

Din väg till smidighet i affärsverksamheten

Agil planering för företag, Work Management för team

Top 6 Software Development Methodologies

Få de fakta du behöver för att kunna avgöra vilken metod som är rätt för ditt team.

Publicerad Av Brook Appelbaum

Metoder för utveckling av programvara.

Vill du lägga till mer struktur i ditt arbetsflöde för mjukvaruutveckling? Att välja rätt metodik för mjukvaruutveckling för din produktorganisation beror till stor del på teamets storlek, mål och andra faktorer. Här är en översikt över de mest använda och erkända metoderna för mjukvaruutveckling för att hjälpa dig att avgöra vilken som är rätt för ditt team.

1. Vattenfall

När det gäller mjukvaruutveckling är Waterfall det mest traditionella och sekventiella valet. Även om den vanligtvis betraktas som en "gammal skola" eller föråldrad metod är det bra att förstå Waterfalls historia och struktur för att bättre kunna uppskatta flexibiliteten hos modernare metoder. Waterfall skapades först i 1970 och var en av de mest framträdande metoderna under flera decennier på grund av dess planeringsbaserade tillvägagångssätt.

Vattenfall kräver mycket struktur och dokumentation i förväg. Den är uppdelad i fristående etapper eller steg. Det första steget är avgörande och kräver att både utvecklare och kunder har en fullständig förståelse för projektets krav och omfattning innan något påbörjas. Etapperna är relativt rigida och följer ofta denna sekvens: fastställa projektets krav och omfattning, analysera dessa krav, utforma, genomföra, testa, driftsätta och slutligen underhålla.

Det finns en brist på flexibilitet med detta tillvägagångssätt, vilket innebär att det som beslutas av kunden och utvecklaren i början måste genomföras.

Om några ändringar behöver göras eller misstag åtgärdas i slutskedet kräver vattenfallsmetoden i allmänhet en fullständig omstart. Vanligtvis måste ett steg vara färdigt innan nästa kan börja, vilket kan underlätta organisation och uppgifter. Och eftersom hela projektets omfattning förstås i förväg kan man lätt mäta framstegen i programvaran.

Läs nästa: Vad är agil programvaruutveckling?

Vattenfall används ofta av stora, planeringsdrivna team som har en mycket tydlig förståelse för projektets omfattning, men utvecklingsteam som inte arbetar i ett vakuum kommer troligen att få bättre resultat med flexibiliteten och smidigheten hos modernare metoder.

2. Funktionsdriven utveckling

Feature-Driven Development (FDD) är ett iterativt och inkrementellt tillvägagångssätt för programvaruutveckling som härstammar från den agila metoden och anses vara ett sätt att genomföra den. I likhet med Waterfall betraktas FDD vanligtvis som en äldre metodik, ett slags föregångare till moderna Lean/Agile-implementationer. FDD fokuserar fortfarande på målet att leverera fungerande programvara ofta och är ett särskilt kundorienterat tillvägagångssätt, vilket gör att det passar bra för mindre utvecklingsteam.

Funktioner är en grundläggande del av FDD. Funktioner är arbetsmoment som värderas av kunden och som enligt FDD-metoden bör levereras varannan vecka.

För att ofta och effektivt producera konkret programvara har FDD fem steg, varav det första är att utveckla en övergripande modell. Därefter ska du upprätta en lista över funktioner och sedan planera för varje funktion. De två sista stegen - design per funktion och byggning per funktion - kommer att ta upp den största delen av arbetet. Vid varje steg uppmuntras statusrapportering, vilket hjälper till att spåra framsteg, resultat och eventuella fel.

Även om effektiv respons på förändringar är en av FDD:s bättre egenskaper, kan en förståelse för kundens krav och den övergripande modellen i början av projektet minska överraskningar under utvecklingen.

Läs nästa: Vad är FDD i Agile?

Dessutom måste alla funktioner som tar längre tid än två veckor att utforma och bygga delas upp i separata funktioner tills de uppfyller tvåveckorsregeln. FDD:s rigida struktur gör den mindre önskvärd för team som balanserar projektdrivet arbete och arbete med att åtgärda problem.

3. Agil

Den agila metoden utvecklades som ett svar på den växande frustrationen över Waterfall och andra mycket strukturerade och oflexibla metoder. Detta tillvägagångssätt är utformat för att hantera förändringar och behovet av att producera programvara snabbare.

Agile värderar individer och deras relationer och interaktioner högre än verktyg; den har samarbete med kunderna under hela utvecklingsprocessen; den reagerar på förändringar i stället för att följa en fastlagd plan; och den fokuserar på att presentera fungerande mjukvara, snarare än dokumentation.

Till skillnad från Waterfall är Agile väl rustad för att hantera komplexiteten och variationen i utvecklingsprojekt.

Med den agila metoden utvecklas teamet i korta sprintar eller iterationer, som var och en har en definierad varaktighet och en lista över leveranser, men inte i någon särskild ordning. Under sprintar arbetar teamet mot målet att leverera fungerande programvara (eller något annat konkret, testbart resultat).

Agile är samarbetstungt och fokuserar på teamets styrkor och effektivitet, tillsammans med intern feedback från olika avdelningar och kunder. Kundtillfredsställelse är högsta prioritet i den agila metoden, vilket teamet uppnår genom att kontinuerligt leverera fungerande, testade och prioriterade funktioner.

Läs vidare: Grunderna och fördelarna med den agila metoden

4. Scrum

Scrum är ett annat sätt att genomföra den agila metoden och lånar från Agiles grundläggande övertygelser och filosofi om att team och utvecklare bör samarbeta intensivt och dagligen.

Med Scrum utvecklas programvaran med hjälp av ett iterativt tillvägagångssätt där teamet står i centrum - erfarna och disciplinerade medarbetare i mindre team kan ha störst framgång med den här metoden, eftersom den kräver självorganisering och självförvaltning.

Läs vidare: Agil projektledning och Scrum

Teamets medlemmar delar upp slutmålen i mindre mål i början och arbetar sig igenom dem med hjälp av iterationer av fast längd - eller sprintar - för att bygga programvara och visa upp den ofta (som vanligtvis varar i två veckor). Möten spelar en viktig roll i Scrum-metoden, och under varje sprint hålls dagliga planeringsmöten och demonstrationer för att följa utvecklingen och samla in feedback.

Denna inkrementella metod främjar snabba förändringar och utveckling och ger mervärde till komplexa projekt.

Scrum innehåller strukturen och disciplinen hos mer traditionella metoder för mjukvaruutveckling med flexibiliteten och de iterativa metoderna hos modern Agile.

5. Extreme Programming (XP)

Extreme Programming (eller XP) är ett annat agilt ramverk som fokuserar på att producera mjukvara av högre kvalitet med hjälp av de bästa metoderna för mjukvaruutveckling. Precis som de flesta agila metoder tillåter XP frekventa lanseringar i korta utvecklingssprintar som uppmuntrar till förändringar när det behövs.

I allmänhet följer XP en uppsättning värderingar snarare än steg, inklusive enkelhet (utveckla det som krävs, inget mer), kommunikation (team måste samarbeta och arbeta tillsammans med varje del av programvaran), konsekvent feedback och respekt.

Extreme Programing kräver att utvecklarna först planerar och förstår kundens användarberättelser - deras informella beskrivningar av vissa funktioner. Andra metoder är: schemaläggning och uppdelning av arbetet i iterationer. Utforma med enkelhet i åtanke, koda och testa ofta, vilket bidrar till att skapa felfri programvara. Lyssna på feedback för att bättre förstå funktionaliteten, och testa sedan mer.

6. Lean

Lean är både en metodik för arbetsflöden och ett tankesätt, där principer och metoder från tillverkningsindustrin införlivas och tillämpas brett på en mängd olika branscher, inklusive mjukvaruutveckling. Även om Agile är en utmärkt metod för praktisk tillämpning av bästa utvecklingspraxis, innehåller den inga instruktioner för hur man skalar upp dessa metoder i hela organisationen eller hur man tillämpar dem utanför utvecklingsarbete.

Det är därför många organisationer som tillämpar Agile på teamnivå börjar införliva Lean-filosofier, -metoder och -verktyg för att hjälpa till att förnya sig i stor skala.

Leans grundprinciper - optimera helheten, eliminera slöseri, bygga in kvalitet, skapa kunskap, skjuta upp åtaganden, leverera snabbt och respektera människor - kan hjälpa till att vägleda beslutsfattandet i hela organisationen på ett sätt som kan bidra till att upptäcka potentiella problem och upprätthålla en sund organisationskultur.

Läs vidare: Vägledande principer för Lean Development

Genom att kombinera det bästa av Lean-tänkande och agila metoder för programvaruutveckling kan man skapa en sund och hållbar innovationskultur som inte bara gynnar utvecklingsorganisationen utan även systemet som helhet.

Lär dig mer om metoder för mjukvaruutveckling

Du kan lära dig mer om att kombinera Lean och Agile inom mjukvaruutveckling med hjälp av följande resurser:

För dagens företag är det viktigt att skapa en miljö med ständiga förbättringar och innovationer för att leverera kundvärde snabbare. Rätt programvara hjälper till att stödja Lean- och Agile-principer, praxis och arbetsmetoder och optimerar affärsflödet i alla affärsfunktioner. Se själv! Prova Planview AgilePlace gratis i 30 dagar.

Relaterade inlägg

Skrivet av Brook Appelbaum Direktör, produktmarknadsföring

Brook Appelbaum is the Director of Product Marketing for Planview’s Lean and Agile Delivery Solution. With nearly 20 years of marketing experience, Brook has led many different product and digital marketing teams. However, her favorite leadership role is that of a Product Owner. As part of an Agile marketing team inside Planview, Brook drives the campaign and product marketing strategy for the Lean and Agile Delivery Solution. And she thinks LeanKit is the coolest.