Utvecklingslivscykeln: Viktiga stadier av mjukvaruutveckling

Viktiga stadier av mjukvaruutveckling

Beroende på vem du frågar, brukar man säga att livscykeln inom mjukvaru- eller systemutveckling (SDLCThe system development life cycle) består består av fem till sju stadier. Dessa steg täcker allt från projektkrav till kommunikation med intressenter, produktdesign och utveckling, testning och underhåll.

Alla programvaruutvecklingsprojekt går igenom samma stadier, oavsett vilket utvecklingssätt man använder. Ordning och sekvenser kan dock variera beroende på hur projektspecifikationer, mål och teamstorlek ser ut. Att ha en livscykel för systemutveckling är viktigt eftersom det fungerar som en plattform för att omvandla en idé till en funktionell och en fullt operativ lösning. Förutom att täcka de tekniska aspekterna i utvecklingen av ett IT-system, omfattar SDLC även vissa aktiviteter såsom användarupplevelse, efterlevnad av säkerhetsregler, procedurutveckling, policyutveckling och förändringshantering.
Låt oss titta på de sju stadierna av mjukvaruutvecklingens livscykel:

  1. Planering: Den första fasen involverar informationsinsamling och strategiläggning. Innan man går in i ett nytt projekt, bör man se till att man har gott om mänskliga, tekniska och ekonomiska resurser för att uppfylla projektkraven. Projektledare, utvecklare och andra intressenter bör inkluderas i planeringsstadiet. I slutet av detta steg bör man ha en detaljerad arbetsomfattning, SOW (Scope of Work) som specificerar projektets vad, varför och hur.
  2. Analys & Tekniska krav: Den här fasen går djupare in i de tekniska krav som omgärdar produkten i fråga. Här skall tydligt framgå vad slutprodukten ska användas till, vem som ska använda den, vilka problem den kommer att lösa, om den kommer att behöva integreras i befintliga system, vilka data som krävs och vad säkerhetsbehoven kommer att innebära. Detta är också det skede då beslut fattas om teknikstack och testkrav. Här bör man också börja sprintplanera för agila processer eller planera handlingsbara steg för andra processer.
  3. Design och prototyp: Under den här fasen kommer man bilda sig en uppfattning om hur slutprodukten kommer att se ut kännas och fungera. Utvecklare kan skapa enkla wireframes eller prototyper för att se hur funktioner kommer att interagera, eller möjligen utveckla en funktionell prototyp för att få feedback från användarna. För mer komplicerade mjukvarulösningar är det nödvändigt att utföra programvaruarkitekturansträngningar. Detta innebär involvering av erfarna mjukvaruutvecklare/arkitekter som kan utforma komplexa konstruktioner som innehåller flera faktorer och interaktioner. Det är avgörande att eliminera säkerhetsluckor så tidigt som möjligt och undvika dataintrång i framtiden.
  4. Kodning & produktutveckling: Med en tydlig vision för design och funktionalitet är det dags för utvecklarteamet att kavla upp ärmarna, börja skriva kod och lägga ihop allt med SOW i åtanke. Det finns ett brett utbud av metoder och principer att välja mellan när man bygger mjukvara.
  5. Testning & riskbedömning: Testning, spårning och buggfixning är en integrerad del av utvecklingen av mjukvara eftersom de minskar risken för buggar och fel i den färdiga produkten. Även om iterativa och inkrementella processer inkluderar testning i varje fas, krävs mer djupgående testning av den färdiga produkten innan full implementering. Detta kan innebära betatester med en liten grupp användare eller att använda UX-verktyg för att få en uppfattning om hur användare interagerar med programvaran.
  6. Implementering: När man har testat klart produkten och är nöjd med resultaten är det dags att släppa programvara till användarna. En av de viktigaste aspekterna av detta steg är att se till att användarna är utbildade och skickliga nog att använda applikationen produktivt. Oupptäckta buggar eller oförutsedda problem med kompatibilitet/användbarhet kan också dyka upp, vilket innebär att utvecklingsteam bör hållas i beredskap för att snabbt mildra eventuella problem. (Har man dock slutfört programvarans designprocess på rätt sätt kommer dessa problem att reduceras till ett minimum).
  7. Uppdateringar och underhåll: Kundnöjdheten slutar inte med lansering av en produkt. När användare börjar interagera med programvaran kan buggar uppstå, ytterligare funktioner eller funktionalitet kan begäras och programvara måste underhållas och uppgraderas löpande.
Sammanfattning 

Att följa systemutvecklingens livscykel är i många avseenden avgörande ur ett kvalitetssäkrande perspektiv varje gång man går in i ett nytt projekt eller en ny fas i ett programvaruprojekt. Genom att anamma ett systematiskt tillvägagångssätt möjliggör man för teamen att komma med nya lösningar på befintliga problem på ett standardiserat och kontrollerat sätt.

Hur SDLC kommer att täcka och tillfredsställa övergripande krav bör bestämmas innan man påbörjar ett nytt projekt så att man kan uppnå bästa resultat. När det steget är klart kan man välja rätt SDLC-metodik eller en hybrid av modeller som är perfekt anpassade till  huvudprojektkrav och förväntade slutresultat.