Konfigurationsstyring

En væsentlig forudsætning for agil udvikling, produktudvikling og cybersikkerhed

Konfigurationsstyring

Share:

Konfigurationsstyring er af gode grunde et svært begreb for flere, men alligevel uundværligt i produktudvikling. Det handler om at styre og kontrollere versioner og ændringer af sammenhængende “stumper og stykker” – information såvel som fysiske produkter – undervejs i et tidsforløb, eks. produktudvikling.

cm-1-150x150.pngKonfigurationsstyring er en sammenblanding af tekniske discipliner og produktledelse, og måske meget af denne årsag skaber det i mange organisationer udfordringer ved implementering. Der kan dog ikke herske tvivl om nødvendigheden af konfigurationsstyring, specielt ved komplekse projekter med mange parallelle aktiviteter og ved agile projekter, der har hyppige leverancer. Meget dynamiske udviklingsforløb uden god konfigurationsstyring skaber uundgåeligt problemer med samarbejde, kvalitet og ikke mindst produktivitet i mange udviklingsorganisationer. En anden udfordring for mange er at forstå den faste terminologi og begrebsdannelse, der bruges til beskrivelse af konfigurationsstyringsdisciplinen. Der erher taget udgangspunkt i de mest udbredte termer indenfor konfigurationsstyring eks. i ISO 10007:2017 "Guidelines for Configuration Management" eller IEEE 828 (IEEE Standard for Configuration Management in Systems and Software Engineering).

Konfigurationsstyring er tæt relateret til emner som dokumentstyring, ændringsstyring, traceability, testmiljøstyring, fejlhåndtering, byggeværktøjer, byggemiljøer samt processer for frigivelse (eng. release), som eksempelvis kan have tætte bindinger til IT-driftsprocesser eller overgang til produktion.
Konfigurationstyring er desuden et grundlæggende krav i diverse cyber-security standarder (fx ISO27001).

Identifikation af konfigurationselementer og baselines

Dette mål kan forstås som at planlægge og etablere et eller flere systemer til konfigurationsstyring med rette konfigurationselementer og understøttelse af passende baselines. Eksempler på sådanne systemer er dokumentstyring, arkivering, source control og test management værktøjer; visse udviklingsværktøjer har indbygget konfigurationsstyring, der understøtter teams mv.

Det er forventningen, at det fastlægges hvilke arbejdsprodukter, der findes i de enkelte konfigurationselementer (se evt. eksempler på modstående side). Forventningen omkring baselines er, at disse identificeres og frigives til brug efter klare retningslinjer (eks. i status “klar til intern brug”, “klar til accept test” eller “frigivelse til produktion”).

Som et eksempel fra den tekniske verden kan nævnes en kravbaseline aftalt mellem kunde og leverandør; her skal alle godkendte krav være med, krav skal være med i de korrekte versioner, herunder ajourført i henhold til accepterede ændringsønsker, og det skal være sikret, at der ikke er opstillet modstri­dende krav. Sidst, men ikke mindst, skal baselinen være tilgængelig på det aftalte sted i systemet.

Styring af ændringer

Den første del af målet er, at ændringsforslag til base­linede konfigurationselementer (eks. en underskrevet kontrakt med diverse bilag) dokumenteres, hvorved ændringens konsekvens for projektet/produktet kan analyseres og tages stilling til. Analysen skal tilveje­bringe grundlaget for, at det kan besluttes om det økonomisk, teknisk og risikomæssigt er rigtigt at sætte ændringen i værk. Analysen ser på, hvordan ændrings­forslaget påvirker parametre såsom teknik, økonomi, tidplaner, kvalitet og danner derved grundlag for en ledelsesbeslutning om accept, afvisning eller udsættelse til senere implementering.

Den anden del af dette mål handler om at følge op på, at accepterede ændringer rent faktisk planlægges, udføres, dokumenteres og integreres i indholdet i konfigurationsstyringssystemet.

Kvalitetssikring af systemet og konfigurationsaudit

Kravet om integritet er rettet mod indholdet i systemet, specielt omkring indholdet og versionen af arbejdsprodukter i de enkelte baselines. Integritet kan således fortolkes som komplethed, korrekthed og konsistens, og formålet er ganske enkelt at skabe sikkerhed for, at en baseline indeholder præcis det, som var tiltænkt, hverken mere eller mindre.

Forventningen er, at informationer omkring indholdet af baselines (herunder ændringer til disse) er lettilgængelig for udviklerne og andre interessenter, samt at der sker en kvalitetssikring af indholdet i systemet, så det fremstår pålideligt.