Som du säkert känner till syftar programvarukonfigurationshantering (SCM) inom programvaruutveckling på en process för att underhålla datorsystem, servrar och programvara i ett önskat och konsekvent tillstånd.
Det kallas ibland förändringshantering för programvara eller IT-automation och innebär att ha ett system på plats för att spåra och jämföra ändringar som görs i ett system under hela processen för programvaruutveckling samt identifiera vem som gjorde dessa ändringar.
Syftet är att förenkla projektledningen, minimera fel, öka spårbarheten och förbättra den övergripande programvarukvaliteten.
Fördelarna med en SCM-process är:
- Uppdateringar av flera användare: Ofta arbetar många personer med programvaruutveckling, vilket innebär ständiga uppdateringar och ändringar. SCM gör det möjligt att spåra all kod och alla konfigurationer som distribueras till produktion (även kallad en konfigurationsrevision) och skapar dessutom spårbarhet genom att fastställa vilken medverkande som gjorde varje ändring.
- Produktivitet: SCM ökar programvarans produktivitet eftersom det säkerställer minimalt med fel. Du kan till exempel alltid se till att dina test- och produktionsmiljöer överensstämmer.
- Kommunikation och samarbete: Kommunikation mellan teammedlemmar blir enkel med SCM, vilket gör det lätt för projektets intressenter att samarbeta och förbättra produktens kvalitet.
- Testning av plattformar och operativsystem: Säkerställ att programvaran fungerar effektivt på flera plattformar och operativsystem.
- Hantering av ändringar: SCM gör det enklare att hantera ändringar i tidsplan, policyer och användare.
- Kostnadskontroll: Genom att spåra teammedlemmar och projektets arbetsflöde hjälper SCM till att kontrollera kostnaderna och öka effektiviteten.
I den här artikeln går jag igenom de olika stegen i en SCM-process, vilka som behöver involveras och vilka verktyg som finns tillgängliga för att hjälpa till.
De 5 stegen i en SCM-plan
Processen för programvarukonfigurationshantering består av en serie steg som är utformade för att spåra och hantera alla defekter, resurser, koder, dokument, maskinvara och budgetar under ett projekt.
SCM är en tvärvetenskaplig process som involverar personer på alla nivåer, däribland DevOps, utvecklare, projektledare/projektägare, systemadministratörer och testare.
1. Planering och identifiering
Det första steget i processen är planering och identifiering. I detta steg är målet att planera utvecklingen av programvaruprojektet och identifiera de delar som ingår i omfånget. Detta görs genom möten och brainstorming-sessioner med teamet för att fastställa de grundläggande kriterierna för resten av projektet.
En del av denna process innebär att fastställa hur projektet ska fortskrida och identifiera kriterierna för avslut. På så sätt vet teamet hur det ska avgöra när alla projektets mål har uppnåtts.
Specifika aktiviteter under detta steg omfattar:
- Identifiera delar som testfall, kravspecifikationer och kodmoduler
- Identifiera varje konfigurationsobjekt för datorprogramvara i processen
- Sammanställa grundläggande information om varför, när och vilka ändringar som ska göras samt vem som ansvarar för att genomföra dem
- Skapa en lista över nödvändiga resurser, till exempel verktyg, filer, dokument och så vidare
2. Versionshantering och baslinje
Steget med versionshantering och baslinje säkerställer produktens kontinuerliga integritet genom att identifiera en godkänd version av programvaran. Denna baslinje fastställs vid en viss tidpunkt i SCM-processen och kan endast ändras genom ett formellt förfarande.
Syftet med detta steg är att kontrollera de ändringar som görs i produkten. Allteftersom projektet utvecklas fastställs nya baslinjer, vilket resulterar i flera versioner av programvaran.
Detta steg omfattar följande aktiviteter:
- Identifiera och klassificera de komponenter som omfattas av projektet
- Utveckla ett sätt att spåra hierarkin för programvarans olika versioner
- Identifiera de väsentliga relationerna mellan olika komponenter
- Upprätta olika baslinjer för produkten, inklusive utvecklings-, funktions- och produktbaslinjer
- Utveckla ett standardiserat märkningssystem för alla produkter, revisioner och filer så att alla har samma information.
Att fastställa en baslinje för ett projektattribut tvingar fram formella processer för kontroll av konfigurationsändringar om dessa attribut ändras.
3. Ändringskontroll
Ändringskontroll är den metod som används för att säkerställa att alla ändringar som görs överensstämmer med resten av projektet. Att ha dessa kontroller på plats bidrar till kvalitetssäkring samt godkännande och lansering av nya baslinjer. Ändringskontroll är avgörande för att projektet ska kunna slutföras framgångsrikt.
I det här steget skickas begäranden om att ändra konfigurationer till teamet och godkänns eller avslås av programvarukonfigurationsansvarig. De vanligaste typerna av begäranden gäller att lägga till eller redigera olika konfigurationsobjekt eller ändra användarbehörigheter.
Den här proceduren omfattar:
- Kontroll av ad hoc-ändringar som kunden begär
- Bedömning av ändringsbegärans värde genom att undersöka den övergripande påverkan den kommer att ha på projektet
- Genomförande av godkända ändringar eller förklaring till varför ändringsbegäranden avslogs.
4. Redovisning av konfigurationsstatus
Nästa steg är att säkerställa att projektet utvecklas enligt planen genom att testa och verifiera det mot de förutbestämda baslinjerna. Det innebär att granska versionsanteckningar och relaterade dokument för att säkerställa att programvaran uppfyller alla funktionella krav.
Redovisning av konfigurationsstatus följer varje version som lanseras under processen och bedömer vad som är nytt i varje version och varför ändringarna var nödvändiga. Några av aktiviteterna i det här steget är:
- Dokumentera och utvärdera ändringar som gjorts från en baslinje till nästa
- Övervaka statusen för och lösningen av alla ändringsbegäranden
- Underhålla dokumentation över varje ändring som gjorts till följd av ändringsbegäranden och för att nå en annan baslinje
- Kontrollera tidigare versioner för analys och testning.
5. Granskningar och översyner
Det sista steget är en teknisk granskning av varje fas i programvaruutvecklingens livscykel. Granskningar och översyner omfattar processen, konfigurationerna, arbetsflödet, ändringsbegäranden och allt som har ingått i utvecklingen av varje baslinje under projektets utveckling.
Teamet genomför flera granskningar av applikationen för att verifiera dess integritet och sammanställer även viktig tillhörande dokumentation, såsom versionsanteckningar, användarhandböcker och installationsguider.
Aktiviteterna i det här steget omfattar:
- Säkerställa att målen som fastställdes i steget för planering och identifiering uppnås
- Säkerställa att programvaran följer de identifierade standarderna för konfigurationskontroll
- Säkerställa att ändringar från baslinjer överensstämmer med rapporterna
- Validera att projektet är konsekvent och fullständigt i enlighet med projektets mål.
Till skillnad från traditionella filsystem kan en specialiserad programvara för databashantering erbjuda avancerade funktioner som dataintegritet och säkerhet, vilka är avgörande för effektiv programvarukonfigurationshantering.
Vilka deltar i programvarans konfigurationsprocess?
SCM-processen är tvärvetenskaplig och omfattar i stort sett alla medlemmar i programvaruutvecklingsteamet.
Konfigurationsansvarig
Den konfigurationsansvariga ansvarar för att avgöra vem som ansvarar för vad under hela utvecklingsprocessen. Personen ser till att alla följer SCM-processen i hela projektet och har sista ordet om alla ändringsbegäranden.
Projektledare
Projektledarens roll är central i SCM-processen. Projektledaren fastställer projektets tidsram för att säkerställa att tidsfristerna för slutförande hålls och tar även fram rapporter om teamets framsteg. En annan viktig uppgift för projektledaren är att säkerställa att varje teammedlem följer de förutbestämda riktlinjerna för att skapa, ändra och testa programvaran.
Programvaruutvecklare
Utvecklarna ansvarar för att skriva kod under utvecklingen och för att hantera alla godkända ändringsbegäranden.
Revisor
Den här rollen ansvarar för alla granskningar och översyner och måste säkerställa att den slutliga lanseringen är komplett och konsekvent.
Vilka är fördelarna med att använda verktyg för konfigurationshantering?
Det finns ett antal verktyg som kan underlätta processen för hantering av programvarukonfiguration. Syftet med dessa verktyg är att automatisera traditionellt manuella uppgifter, vilket möjliggör större noggrannhet, snabbhet och kontroll. Mer specifikt kan de hjälpa till med:
- Varningar och rapporter: Ett bra SCM-verktyg ger varningar och rapporter om det finns avvikelser från den överenskomna baslinjen. Dessa data skickas vidare nästan i realtid, vilket gör att chefer snabbt kan agera om något avviker från planen.
- Spåra ändringar: SCM-verktyg spårar automatiskt ändringar på servrar eller i applikationer och gör det även möjligt att manuellt registrera sådana data. Ändringsgranskning kan också utföras genom att övervaka utdata från skript.
- Jämförelser av konfigurationer: De bästa verktygen för hantering av programvarukonfiguration erbjuder ett sätt att identifiera skillnader mellan konfigurationer.
- Snabbare felsökning: Fel, misstag och problem identifieras snabbt, så att utvecklare kan agera innan problemet växer.
- Inventariespårning: De flesta SCM-verktyg har en funktion för att spåra hårdvaru- och programvarutillgångar, så att du inte behöver föra en manuell lista.
- Patchhantering: SCM-verktyg kan hjälpa dig att spåra alla detaljer kring patchhantering när du distribuerar uppdaterad programvara.
Finns det några nackdelar med att använda ett verktyg för hantering av programvarukonfiguration?
Det finns några saker att tänka på innan du börjar använda ett SCM-verktyg, bland annat:
- Resurskrävande: Du måste ha resurserna som krävs för att stödja processen från början till slut
- Kunskapsbegränsningar: Alla som deltar måste ha djupgående kunskaper om de verktyg för programvaruhantering som används
- Nackdel för små och medelstora företag: Omfattningen av det som krävs för att använda dessa verktyg effektivt kan vara svår för ett mindre företag att hantera
- Hårdvaruspecifikationer: Snabb och välkonfigurerad hårdvara krävs för att processen ska fungera smidigt.
Slutord om hantering av programvarukonfiguration
Ovan presenterade jag en generell översikt över vad du behöver veta för att konfigurera en process för hantering av programvarukonfiguration som kan spåra, kontrollera och hantera dina projekt.
SCM-verktyg, som Ansible eller TeamCity, hjälper till att automatisera många delar av SCM-processen och kan ge en stor avkastning på investeringen. Du kan se vårt urval i artikeln de 10 bästa verktygen för hantering av programvarukonfiguration.
Världen inom hantering av programvarukonfiguration och kvalitetssäkring utvecklas snabbt. Prenumerera på nyhetsbrevet The QA Lead för fler praktiska tips, knep och verktyg direkt i din inkorg.
Eller fortsätt lära dig genom att lyssna på denna podcast: GENERATIONEN AV AUTONOM AUTONOMISERING OCH HUR DEN SER UT (MED BERTOLD KOLICS FRÅN MABL) eller genom att läsa denna lista: DE 10 SENASTE VERKTYGEN FÖR PROGRAMVARUTESTNING SOM QA-ANSVARIGA ANVÄNDER
