CodeGym /Java blogg /Slumpmässig /Metoder för mjukvaruutveckling
John Squirrels
Nivå
San Francisco

Metoder för mjukvaruutveckling

Publicerad i gruppen
Vid många intervjuer kommer du förmodligen att få frågan om metoder. Det här är inte den viktigaste eller svåraste frågan, men att ha ett cheat sheet skulle vara trevligt. I den här artikeln ska vi försöka förmedla vad en utvecklingsmetodik är och jämföra dem. En mjukvaruutvecklingsmetodik är en process som används för att utveckla en viss produkt, det vill säga det är ett sätt att organisera utveckling av ett team av utvecklare. Det finns många olika utvecklingsmodeller, som var och en definierar sitt eget tillvägagångssätt. Det kan inte sägas att någon av dem ska användas för varje projekt. Rätt tillvägagångssätt beror helt på situationen. Jag tänker överväga tre av dem mer i detalj.

Vattenfall

Vattenfallsmetoden är en av de äldsta och involverar en strikt sekventiell implementering: varje steg måste slutföras innan nästa börjar. Med andra ord innebär en övergång till nästa steg att arbetet i föregående steg är 100 % färdigt. Bilden visar hur det fungerar: först analyserar vi problemet (dokumenterar uppgifter, diskuterar utmaningar), sedan designar vi (projektets struktur tar form i detta skede) och sedan kodar och testar vi. Det är inte tillåtet att återgå till tidigare stadier. Detta tillvägagångssätt rekommenderas för små projekt där kraven är kända i förväg och sannolikt inte kommer att förändras. Metoder för mjukvaruutveckling - 2Fördelar:
  • Komplett och konsekvent dokumentation i varje steg
  • Enkel användning
  • Stabila krav
  • Budgetar och deadlines är fördefinierade
Nackdelar:
  • En stor mängd dokumentation
  • Inte särskilt flexibel
  • Klienten kan inte se en demoversion av produkten
  • Inget alternativ att gå bakåt

Klunga

Scrum är en metod för mjukvaruutveckling som delar upp hela processen i iterationer. I slutet av varje interaktion är teamet redo att tillhandahålla en demoversion av produkten. Bilden visar att teamet går igenom alla utvecklingsstadier parallellt, vilket gör det möjligt att ha en färdig del av projektet i slutet av varje iteration. Metoder för mjukvaruutveckling - 3Jag ska försöka att kortfattat förklara essensen av metodiken med enkla ord, men det finns mycket terminologi. Jag tror att det viktigaste är att förstå essensen. Du kommer ihåg terminologin med erfarenhet. All utveckling är uppdelad i sprints (ofta 2-3 veckor). Det finns en eftersläpning(uppgiftslista) för hela utvecklingsperioden och för varje separat sprint. Varje uppgift har sin egen berättelsepunkt (svårighetsgrad). Varje deltagare i processen har en roll:
  • Scrum-teamet består av de professionella (utvecklare, testare, designers) som arbetar med ett projekt.
  • Scrum master är den person som ser till att principerna för scrum respekteras.
  • Produktägaren är kunden.
Denna metod bygger på kommunikation, så det finns ett stort antal möten:
  • Stand-up – Detta är ett kort möte, som hålls varje dag, där alla teammedlemmar deltar. Varje deltagare svarar på 3 frågor: Vad gjorde jag? Vad ska jag göra? Och vilka blockeringsproblem finns det?
  • Planeringsmöte – Detta möte hålls i början av sprinten. De uppgifter som ska utföras i nästa sprint identifieras vid detta möte.
  • Retrospektiv - Detta möte hålls i slutet av sprinten och syftet är att identifiera vad som gjordes bra och vad som kan förbättras.
Fördelar:
  • Kunden kan se resultat under utvecklingsprocessen
  • Daglig uppföljning av utvecklingsprocessen
  • Förmåga att göra justeringar under utveckling
  • Etablerad kommunikation med alla teammedlemmar
  • En liten mängd dokumentation
Nackdelar:
  • Svårt att bedöma arbetskraft och andra kostnader som krävs för utveckling
  • Svårt att identifiera flaskhalsar innan utvecklingen startar
  • Behovet av att involvera alla i andra teammedlemmars arbete.

Kanban

Kanban är en metod som bygger på att visualisera framstegen i att slutföra teamets uppgifter. Huvudtanken är att minska antalet uppgifter som för närvarande utförs (i kolumnen "Pågående"). I scrum är teamet fokuserat på att framgångsrikt genomföra spurter. I Kanban intar uppgiften den främsta positionen. Detta är bra för projekt i underhållsstadiet, där den grundläggande funktionaliteten redan har implementerats, och minimala förbättringar och buggfixar kvarstår. I Kanban tilldelas uppgifter individuellt. En uppgift går igenom alla stadier på tavlan, oberoende av andra uppgifter, och när den väl är klar kan den visas för kunden. En Kanban-tavla består av kolumner, som var och en representerar en separat utvecklingsprocess. Vissa kolumner (till exempel "Pågår" ) begränsa antalet uppgifter de kan hålla. Detta hjälper till att snabbt och enkelt hitta problemområden i arbetsfördelningen. Bilden visar ett exempel på just en sådan tavla. Antalet kolumner och deras namn kan variera. Jag kommer att presentera de vanligaste: Metoder för mjukvaruutveckling - 4
  • Att göra – Listan över uppgifter som måste utföras
  • Pågår – Uppgifter som för närvarande arbetar med
  • Kodgranskning – Uppgifter som är gjorda och har skickats in för granskning
  • In Testing – Uppgifter redo för testning
  • Klar – Färdiga uppgifter
Fördelar:
  • Enkel användning
  • Synlighet (hjälper till att lokalisera flaskhalsar, förenklar förståelsen)
  • Högt teamengagemang i själva processen
  • Mycket flexibel utveckling
Nackdelar:
  • En instabil uppgiftslista
  • Svårt att applicera på långsiktiga projekt
  • Brist på hårda deadlines

Ett sista ord om metoder för mjukvaruutveckling

Människor som innehar eller strävar efter chefspositioner måste förstå metoder för mjukvaruutveckling grundligt, men alla måste förstå åtminstone grunderna. Metoder är en integrerad del av utvecklingsprocessen och används inte bara inom IT-sfären. Tack för att du tog dig tid att läsa min artikel. Jag hoppas att det var till hjälp för dig. Jag försökte bara beskriva nyckelpunkterna så lättillgängligt och kortfattat som möjligt. Som ett resultat är denna artikel inte uttömmande. Jag skulle gärna höra din åsikt om det och svara på dina frågor. Med vänliga hälsningar!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION