Zoals je ongetwijfeld weet, verwijst softwareconfiguratiebeheer (SCM) in de software-engineering naar een proces voor het onderhouden van computersystemen, servers en software in een gewenste, consistente staat.
Het wordt soms softwarewijzigingsbeheer of IT-automatisering genoemd. Het idee is om een systeem te hebben waarmee wijzigingen die tijdens het proces van softwareontwikkeling in een systeem zijn aangebracht, kunnen worden bijgehouden en vergeleken, en waarmee ook kan worden vastgesteld wie deze revisies heeft uitgevoerd.
Het doel is om projectbeheer eenvoudiger te maken, fouten te minimaliseren, de traceerbaarheid te vergroten en de algehele softwarekwaliteit te verbeteren.
De voordelen van een SCM-proces zijn:
- Updates door meerdere gebruikers: Vaak werken veel mensen aan softwareontwikkeling, wat betekent dat er voortdurend updates en wijzigingen zijn. Met SCM kun je alle code en configuraties bijhouden die in productie zijn geïmplementeerd (ook wel een configuratie-audit genoemd) en wordt bovendien traceerbaarheid geïntroduceerd door vast te stellen welke bijdrager elke wijziging heeft aangebracht.
- Productiviteit: SCM verhoogt de productiviteit van de software doordat het minimale fouten garandeert. Je kunt er bijvoorbeeld altijd voor zorgen dat je test- en productieomgevingen overeenkomen.
- Communicatie en samenwerking: Met SCM is communicatie tussen teamleden eenvoudig, waardoor belanghebbenden die bij het project betrokken zijn gemakkelijk kunnen samenwerken en de kwaliteit van het product kunnen verbeteren.
- Platform- en besturingssysteemtests: Zorg ervoor dat de software effectief werkt op meerdere platforms en besturingssystemen.
- Omgaan met wijzigingen: SCM maakt het eenvoudiger om wijzigingen in planning, beleid en gebruikers op te vangen.
- Kostenbeheersing: Door teamleden en de projectworkflow bij te houden, helpt SCM de kosten te beheersen en de efficiëntie te verhogen.
In dit artikel neem ik je mee door de verschillende stappen van een SCM-proces, wie erbij betrokken moet zijn en welke tools beschikbaar zijn om te helpen.
De 5 stappen van een SCM-plan
Het softwareconfiguratiebeheerproces bestaat uit een reeks stappen die zijn ontworpen om alle defecten, resources, code, documenten, hardware en budgetten gedurende een project bij te houden en te beheren.
SCM is een interdisciplinair proces waarbij mensen op elk niveau betrokken zijn, waaronder DevOps, ontwikkelaars, projectmanagers/-eigenaren, SysAdmin en testers.
1. Planning en identificatie
De eerste stap in het proces is planning en identificatie. In deze stap is het doel om de ontwikkeling van het softwareproject te plannen en de items binnen de scope te identificeren. Dit wordt bereikt door vergaderingen en brainstormsessies met je team te houden om de basiscriteria voor de rest van het project vast te stellen.
Een deel van dit proces bestaat uit het bepalen hoe het project zal verlopen en het identificeren van de exitcriteria. Zo weet je team wanneer alle doelen van het project zijn bereikt.
Specifieke activiteiten tijdens deze stap zijn:
- Items identificeren, zoals testgevallen, specificatievereisten en codemodules
- Elk configuratie-item van computersoftware in het proces identificeren
- De basisdetails groeperen van waarom, wanneer en welke wijzigingen worden aangebracht en wie verantwoordelijk is voor het uitvoeren ervan
- Een lijst maken van noodzakelijke resources, zoals tools, bestanden, documenten enzovoort
2. Versiebeheer en basislijn
De stap voor versiebeheer en basislijnen zorgt voor de voortdurende integriteit van het product door een geaccepteerde versie van de software te identificeren. Deze basislijn wordt op een specifiek moment in het SCM-proces vastgesteld en kan alleen via een formele procedure worden gewijzigd.
Het doel van deze stap is om de wijzigingen die in het product worden aangebracht te beheersen. Naarmate het project zich ontwikkelt, worden nieuwe basislijnen vastgesteld, wat resulteert in meerdere versies van de software.
Deze stap omvat de volgende activiteiten:
- De componenten identificeren en classificeren die onder het project vallen
- Een manier ontwikkelen om de hiërarchie van verschillende softwareversies bij te houden
- De essentiële relaties tussen verschillende componenten identificeren
- Verschillende basislijnen voor het product vaststellen, waaronder ontwikkelings-, functionele en productbasislijnen
- Een gestandaardiseerd labelschema ontwikkelen voor alle producten, revisies en bestanden, zodat iedereen dezelfde informatie heeft.
Het vastleggen van een projectkenmerk dwingt formele configuratiewijzigingsbeheerprocessen af wanneer deze kenmerken worden gewijzigd.
3. Wijzigingsbeheer
Wijzigingsbeheer is de methode die wordt gebruikt om ervoor te zorgen dat alle aangebrachte wijzigingen consistent zijn met de rest van het project. Deze beheersmaatregelen dragen bij aan kwaliteitsborging en aan de goedkeuring en release van nieuwe basislijn(en). Wijzigingsbeheer is essentieel voor de succesvolle voltooiing van het project.
In deze stap worden verzoeken om configuraties te wijzigen ingediend bij het team en goedgekeurd of afgewezen door de softwareconfiguratiemanager. De meest voorkomende typen verzoeken zijn het toevoegen of bewerken van verschillende configuratie-items of het wijzigen van gebruikersrechten.
Deze procedure omvat:
- Het beheren van ad-hocwijzigingen die door de klant worden aangevraagd
- Het controleren van de waarde van het wijzigingsverzoek door de algehele impact ervan op het project te onderzoeken
- Het doorvoeren van goedgekeurde wijzigingen of uitleggen waarom wijzigingsverzoeken zijn afgewezen.
4. Configuratiestatusregistratie
De volgende stap is ervoor te zorgen dat het project zich volgens het plan ontwikkelt door te testen en te verifiëren aan de hand van de vooraf bepaalde basislijnen. Hierbij worden releasenotities en gerelateerde documenten bekeken om te controleren of de software aan alle functionele vereisten voldoet.
Configuratiestatusregistratie houdt elke versie bij die tijdens het proces wordt uitgebracht en beoordeelt wat er nieuw is in elke versie en waarom de wijzigingen noodzakelijk waren. Enkele activiteiten in deze stap zijn:
- Het registreren en evalueren van wijzigingen die van de ene basislijn naar de volgende zijn aangebracht
- Het monitoren van de status en oplossing van alle wijzigingsverzoeken
- Het bijhouden van documentatie van elke wijziging die is aangebracht als gevolg van wijzigingsverzoeken en om een andere basislijn te bereiken
- Het controleren van eerdere versies voor analyse en testen.
5. Audits en beoordelingen
De laatste stap is een technische beoordeling van elke fase in de levenscyclus van softwareontwikkeling. Bij audits en beoordelingen worden het proces, de configuraties, de workflow, de wijzigingsverzoeken en alles wat tijdens de ontwikkeling van elke basislijn in het project is opgenomen, onderzocht.
Het team voert meerdere beoordelingen van de applicatie uit om de integriteit ervan te verifiëren en stelt ook essentiële bijbehorende documentatie samen, zoals releasenotities, gebruikershandleidingen en installatiegidsen.
Activiteiten in deze stap zijn:
- Ervoor zorgen dat de doelen die in de stap voor planning en identificatie zijn vastgesteld, worden behaald
- Ervoor zorgen dat de software voldoet aan de geïdentificeerde standaarden voor configuratiebeheer
- Ervoor zorgen dat wijzigingen ten opzichte van basislijnen overeenkomen met de rapporten
- Valideren dat het project consistent en volledig is volgens de doelstellingen van het project.
In tegenstelling tot traditionele bestandssystemen kan gespecialiseerde databasebeheersoftware geavanceerde functies bieden, zoals gegevensintegriteit en beveiliging, die cruciaal zijn voor effectief softwareconfiguratiebeheer.
Wie is betrokken bij het softwareconfiguratieproces?
Het SCM-proces is multidisciplinair en omvat vrijwel elk lid van het softwareontwikkelingsteam.
Configuratiemanager
De configuratiemanager bepaalt wie gedurende het ontwikkelingsproces waarvoor verantwoordelijk is. Deze zorgt ervoor dat iedereen het SCM-proces binnen het project volgt en heeft het laatste woord over alle wijzigingsverzoeken.
Projectmanager
De rol van de projectmanager is essentieel voor het SCM-proces. Deze stelt de planning van het project vast om ervoor te zorgen dat deadlines voor voltooiing worden gehaald en maakt ook rapporten over de voortgang van het team. Een andere belangrijke rol van de projectmanager is ervoor te zorgen dat elk teamlid de vooraf bepaalde richtlijnen volgt voor het maken van de software, het aanbrengen van wijzigingen en het testen ervan.
Softwareontwikkelaars
Ontwikkelaars zijn verantwoordelijk voor het schrijven van code tijdens de ontwikkeling en voor het verwerken van goedgekeurde wijzigingsverzoeken.
Auditor
Deze rol is verantwoordelijk voor alle audits en beoordelingen en moet ervoor zorgen dat de uiteindelijke release volledig en consistent is.
Wat zijn de voordelen van het gebruik van configuratiebeheertools?
Er zijn verschillende tools beschikbaar om het softwareconfiguratiebeheerproces te ondersteunen. Het doel van deze tools is het automatiseren van traditioneel handmatige taken, waardoor een grotere nauwkeurigheid, snelheid en controle mogelijk wordt. Meer specifiek kunnen ze helpen bij:
- Waarschuwingen en rapporten: Een goede SCM-tool geeft waarschuwingen en rapporten als er afwijkingen zijn van de overeengekomen basislijn. Deze gegevens worden vrijwel in realtime doorgestuurd, zodat managers snel kunnen handelen als iets van het juiste spoor raakt.
- Wijzigingen bijhouden: SCM-tools houden automatisch wijzigingen aan servers of applicaties bij en bieden ook de mogelijkheid om dergelijke gegevens handmatig in te voeren. Wijzigingscontroles kunnen ook worden uitgevoerd via de uitvoer van bewakingsscripts.
- Configuraties vergelijken: De beste tools voor softwareconfiguratiebeheer bieden een manier om verschillen tussen configuraties vast te stellen.
- Sneller problemen oplossen: Fouten, vergissingen en problemen worden snel geïdentificeerd, zodat ontwikkelaars actie kunnen ondernemen voordat het probleem groter wordt.
- Inventaris bijhouden: De meeste SCM-tools bieden een manier om hardware- en software-assets bij te houden, zodat je geen handmatige lijst hoeft bij te houden.
- Patchbeheer: SCM-tools kunnen je helpen alle details rond patchbeheer bij te houden terwijl je bijgewerkte software distribueert.
Zijn er nadelen aan het gebruik van een tool voor softwareconfiguratiebeheer?
Er zijn enkele zaken waarmee je rekening moet houden voordat je een SCM-tool gaat gebruiken, waaronder:
- Belasting van middelen: Je moet over de middelen beschikken om het proces van begin tot eind te ondersteunen
- Beperkte kennis: Iedereen die erbij betrokken is, moet grondige kennis hebben van de gebruikte tools voor softwarebeheer
- Nadeel voor kleine en middelgrote bedrijven: De omvang van wat nodig is om deze tools effectief te gebruiken, kan moeilijk te ondersteunen zijn voor een klein bedrijf
- Hardwarespecificaties: Er is snelle hardware met uitgebreide configuratiemogelijkheden vereist om het proces soepel te laten verlopen.
Slotwoord over softwareconfiguratiebeheer
Hierboven heb ik in algemene lijnen uiteengezet wat je moet weten om een proces voor softwareconfiguratiebeheer op te zetten waarmee je je projecten kunt volgen, controleren en beheren.
SCM-tools, zoals Ansible of TeamCity, helpen veel aspecten van het SCM-proces te automatiseren en kunnen een uitstekend rendement op de investering opleveren. Je vindt onze selectie hiervan in het artikel de 10 beste tools voor softwareconfiguratiebeheer.
De wereld van softwareconfiguratiebeheer en QA ontwikkelt zich snel. Schrijf je in voor de nieuwsbrief van The QA Lead voor meer handige tips, trucs en tools, rechtstreeks in je inbox.
Of blijf leren door naar deze podcast te luisteren: DE GENERATIE VAN AUTONOME AUTOMATISERING EN HOE DIE ERUITZIET (MET BERTOLD KOLICS VAN MABL) of deze lijst te lezen: 10 NIEUWSTE TOOLS VOOR SOFTWARETESTING DIE QA-EXPERTS GEBRUIKEN
