Mjukvaruutveckling är en komplex affärsprocess. Detta innebär att IT-proffs måste tala språket optimering, planering och kostnadsberäkning. En förståelse för ledningskoncept ger både arbetsgivare och utvecklare en stor fördel och hjälper till att ta samarbetet till nästa nivå. Allt du behöver veta om metoder för mjukvaruutveckling: trender, principer och fallgropar för nybörjare - 1

OBS, nybörjare! Modeller, metoder och allmän förvirring

Till att börja med måste vi göra ett viktigt förtydligande: modeller för mjukvaruutveckling och metoder för mjukvaruutveckling är separata och distinkta. Modeller förutsäger hur ett system kommer att bete sig. Metoder krävs för att systemet ska fungera som det ska. Förvirrande mjukvaruutvecklingsmodeller och metoder är standardprocedurer för varje IT-nybörjare, så detta anses inte vara en stor blunder. Ett exempel på en modell är den klassiska vattenfallsmodellen , med dess linjära progression, tydliga definition av mål för varje steg och strikt kontroll över deadlines. En annan modell är spiralmodellen, med sitt fokus på tidig upptäckt och begränsning av projektrisker. Spiralutvecklingen börjar i det små, först löser lokala problem och går sedan vidare till mer komplexa. Slutligen är en annan modell iterativ och inkrementell utveckling (IID) , där projektets livscykel bryts ner i en serie iterationer, som var och en liknar ett "miniprojekt". I allmänhet är en modell en beskrivning av mjukvaruutvecklingsprocessen . Men metoder är system för att kontrollera, utvärdera och övervaka arbetet med tilldelade uppgifter. Metoder är pinnen och moroten i den moderna tiden, som behövs för att kontrollera varje steg i utvecklingsprocessen. De väljs utifrån projektets inriktning, dess budget och deadlines för genomförandet av den slutliga produkten. Dessutom kan metoder väljas baserat på temperamentet hos projektledaren och hans eller hennes team. Till och med utifrån företagets eller kundens filosofi. Låt oss ta en titt på de mest populära metoderna.

1. Scrum

Scrum är en agil projektledningsmetod. Den är baserad på "sprints", eller korta iterationer, strikt tidsbegränsade (vanligtvis 2-4 veckor). Detta minimerar mötestiden, men ökar deras frekvens. Varje sprint består av en lista med uppgifter som ska slutföras i slutet av iterationen, och var och en av dem har sin egen "vikt". Under mötena diskuterar teamet vad teammedlemmarna har gjort, vad de planerar att göra och vilka problem som finns. Scrum använder en backlog för planering. I detta tillvägagångssätt har lag i allmänhet en scrum master. Denna person hjälper teamet att arbeta utan avbrott och skapar en bekväm miljö för teamet. Projektet kommer även att ha någon i rollen som produktägare. Denna person är utvecklingschef, övervakar produkten och fungerar som huvudlänken mellan vad kunden efterfrågar och vad teamet producerar.

Fördelar:

  • förmåga att snabbt starta ett projekt med lägsta möjliga budget;
  • daglig övervakning av framsteg, täta projektdemonstrationer;
  • förmågan att göra justeringar under projektets gång.

Nackdelar:

  • svårigheter att sluta kontrakt på grund av bristen på en fast budget;
  • fungerar inte för ett oerfaret team eller när deadlines eller budgeten är underskattade;
  • förmågan att ständigt göra förändringar mellan spurterna kan skapa förvirring.

Vem är det till?

Ett sådant här system är lämpligt för projekt på upp till tio personer, oavsett om de är självständiga eller finns inom stora företag. Detta är bekvämt om teamet har en stor mängd arbete och en lång livscykel som tvingar dem att förändras och anpassa sig till nya marknadsförhållanden.

2. Kanban

Den viktigaste egenskapen hos Kanban är visualisering av projektets livscykel. Kolumner för att utföra arbetsobjekt skapas. Arbetsmomenten hanteras individuellt. Kolumnerna är markerade med statusar som: Att göra, Pågår, Kodgranskning, Under testning, Klar (naturligtvis kan kolumnnamnen variera). Varje gruppmedlems mål är att minska antalet arbetsobjekt i den första kolumnen. Kanbans tillvägagångssätt är intuitivt och hjälper dig att förstå var problemen ligger. Strukturen för Kanban är inte definitivt och oåterkalleligt fixerad: beroende på projektets detaljer kan du lägga till improviserade kolumner. Till exempel använder vissa team ett system där du måste definiera färdiga regler för ett arbetsobjekt innan du utför det. I det här fallet läggs två kolumner till: Specificera (specificera parametrarna) och Implementera (sätt igång).

Fördelar:

  • flexibilitet i planeringen. Teamet koncentrerar sig endast på det aktuella arbetet, prioriteringen av en uppgift definieras också;
  • synlighet. När alla deltagare har tillgång till data är globala problem lättare att upptäcka;
  • högt engagemang i utvecklingsprocessen. Att visualisera processer ökar självorganisering och självkontroll.

Nackdelar:

  • arbetar inte med team på fler än fem personer;
  • inte avsedd för långsiktig planering;
  • inte lämplig för ett omotiverat team. Kanban har inte deadlines för varje arbetsobjekt. Metodiken föreskriver inte heller påföljder för förseningar.

Vem är det till?

Kanban fungerar utmärkt i företag där teamet är motiverat att växa och nå resultat. Det borde redan vara uppenbart - det här är för ett litet team. Kanske till och med en avdelning eller del av ett team.

3. Rational Unified Process (RUP)

RUP-metoden använder en iterativ utvecklingsmodell. I slutet av varje iteration (som tar 2 till 6 veckor) bör teamet uppnå de planerade målen och få en fungerande, om än tillfällig, version av projektet. RUP efterlyser en uppdelning av projektet i fyra faser . I varje fas utförs arbetet med nästa generation av produkten: start, utarbetning, konstruktion och övergång. I slutet av en fas uppnås en projektmilstolpe. Det ögonblick då teamet utvärderar sina resultat kan betraktas som en projektmilstolpe. Detta innebär att metodiken innebär att huvudfunktionerna släpps i den första fasen, och tillägg läggs till i efterföljande faser.

Fördelar:

  • gör det möjligt att hantera föränderliga uppgifter, både från kunden och förändringar som uppstår under arbetets gång;
  • säkerställer kontinuerlig förbättring av produkten. Under iterationer kan du noggrant utvärdera projektet;
  • gör det möjligt att identifiera och eliminera risker i de tidiga stadierna av arbetet, samt att effektivt kontrollera utvecklingens kvalitet.

Nackdelar:

  • Denna metod är ganska komplex och svår att implementera i ett litet team eller företag;
  • beror på experternas förmåga att ställa uppgifter;
  • behöver överdriven dokumentation av krav.

Vem är det till?

Stora projekt med tydligt fastställda krav och risker som är väl förstått, när produkten behöver släppas så snabbt som möjligt. Även på bekostnad av funktionalitet, för att snabbt ockupera din nisch och först senare lägga till pricken.

Det finns många metoder, men en trend

Förutom scrum och Kanban, som onekligen är populära och bygger på agila principer , samt den tåliga, iterativa RUP-metoden, använder företag många varianter av metoder. Ett företag kan vara närmare extrem programmering och fatta de snabbaste och enklaste besluten. En annan kan vara närmare testdriven utveckling. En annan kanske fortfarande föredrar snabb applikationsutveckling (RAD). Som sagt, det finns en stark, obestridlig trend mot att använda flera metoder samtidigt. Eller till och med kombinera modeller och metoder till ett unikt ledningssystem. Dagens företag strävar efter att eliminera byråkratiska barriärer och skapa en atmosfär av enhetligt lagarbete inom organisationen, utan att flytta ansvar mellan avdelningar och organisatoriska enheter. Enligt Scrum Alliance, 70 % av IT-företagen använder scrum. Bland dem finns sådana jättar som Google, Amazon, Salesforce, Microsoft och Adobe. Startups och unga projekt är mer benägna till Kanban, men Toyota och till exempel spelarna på Wargaming använder det också. Scrum är ett planeringsverktyg, medan Kanban är för att övervaka framsteg. När det gäller RUP används det oftast av västerländska företag med 50-200 anställda och intäkter på 1-10 miljoner dollar. IBM modifierade dock RUP för att komma närmare agila principer och släppte OpenUP-metoden (RUP, men agile). Denna omtalade agila metodik driver nu IT-världen . Detta är inte bara en förbigående modefluga – det är fortfarande innovativt, och det används faktiskt på många stora företag. Agile används i Silicon Valley. Facebook och Uber använder det.

Poängen

Varje projekt har sin egen metod för mjukvaruutveckling, som beror på team, finansiering, deadlines och kundkrav. Det finns ingen universell hanteringsteknik: inte ens den mycket populära agila metodiken kan säkerställa det bästa förhållningssättet till utvecklingsprocessen. Som ett resultat väljs metoder noggrant, ibland till och med i princip. Så mycket att vi kan dra slutsatser om ett företag själv eller om dess kunder genom att titta på dess metodik. Metoder blandas, kompletteras med modeller och anpassas. Så mycket att de ger upphov till nya angreppssätt. Som sagt, managementområdet förblir i slutändan i händerna på scrum och Kanban, med oväntade inslag av vattenfallsmodellen eller den iterativa RUP-metoden.
Mer läsning:
Webbplatser: Böcker:
  • Andrew Stelman, Jennifer Greene: "Learning Agile";
  • Per Kroll, Bruce MacIsaac: «Agility and Discipline Made Easy: Practices from OpenUP and RUP»;
  • Mike Cohn: "Lyckas med Agile: Programvaruutveckling med Scrum";
  • Robert C. Martin: "Agil mjukvaruutveckling: principer, mönster, praxis";
  • Marcus Hammarberg, Joakim Sunden: "Kanban in Action";
  • I. Jacobson, G. Booch, J. Rumbaugh: "Unified Software Development Process".