Wie du zweifellos weißt, bezeichnet Softwarekonfigurationsmanagement (SCM) in der Softwareentwicklung einen Prozess zur Aufrechterhaltung von Computersystemen, Servern und Software in einem gewünschten, konsistenten Zustand.
Manchmal auch als Softwareänderungsmanagement oder IT-Automatisierung bezeichnet, besteht die Idee darin, ein System zu etablieren, mit dem Änderungen an einem System während des gesamten Prozesses der Softwareentwicklung nachverfolgt und verglichen werden können und außerdem festgestellt werden kann, wer diese Überarbeitungen vorgenommen hat.
Der Zweck besteht darin, das Projektmanagement zu erleichtern, Fehler zu minimieren, die Nachverfolgbarkeit zu erhöhen und die allgemeine Softwarequalität zu verbessern.
Die Vorteile eines SCM-Prozesses sind:
- Aktualisierungen durch mehrere Benutzer: Häufig arbeiten viele Personen an der Softwareentwicklung, was zu ständigen Aktualisierungen und Änderungen führt. Mit SCM kannst du den gesamten in die Produktion eingebrachten Code und alle Konfigurationen nachverfolgen (auch als Konfigurationsaudit bezeichnet) und außerdem die Nachverfolgbarkeit sicherstellen, indem ermittelt wird, welcher Mitwirkende die jeweilige Änderung vorgenommen hat.
- Produktivität: SCM steigert die Produktivität der Software, da es Fehler minimiert. Du kannst beispielsweise jederzeit sicherstellen, dass deine Test- und Produktionsumgebungen übereinstimmen.
- Kommunikation und Zusammenarbeit: Mit SCM ist die Kommunikation zwischen Teammitgliedern unkompliziert, sodass die am Projekt beteiligten Beteiligten problemlos zusammenarbeiten und die Qualität des Produkts verbessern können.
- Plattform- und Betriebssystemtests: Stelle sicher, dass die Software auf mehreren Plattformen und Betriebssystemen effektiv ausgeführt wird.
- Berücksichtigung von Änderungen: SCM erleichtert die Anpassung an Änderungen bei Zeitplan, Richtlinien und Benutzern.
- Kostenkontrolle: Durch die Nachverfolgung der Teammitglieder und des Projektablaufs trägt SCM dazu bei, Kosten zu kontrollieren und die Effizienz zu steigern.
In diesem Artikel führe ich dich durch die verschiedenen Schritte eines SCM-Prozesses, erläutere, wer beteiligt sein muss, und zeige, welche Werkzeuge zur Unterstützung verfügbar sind.
Die 5 Schritte eines SCM-Plans
Der Prozess des Softwarekonfigurationsmanagements besteht aus einer Reihe von Schritten, die darauf ausgelegt sind, alle Fehler, Ressourcen, Codes, Dokumente, Hardware und Budgets während eines Projekts nachzuverfolgen und zu verwalten.
SCM ist ein interdisziplinärer Prozess, an dem Personen auf jeder Ebene beteiligt sind, darunter DevOps, Entwickler, Projektmanager bzw. Projektverantwortliche, Systemadministratoren und Tester.
1. Planung und Identifizierung
Der erste Schritt des Prozesses ist die Planung und Identifizierung. In diesem Schritt besteht das Ziel darin, die Entwicklung des Softwareprojekts zu planen und die Elemente innerhalb des Umfangs zu identifizieren. Dies wird durch Besprechungen und Ideensitzungen mit deinem Team erreicht, um die grundlegenden Kriterien für den weiteren Verlauf des Projekts festzulegen.
Zu diesem Prozess gehört auch, festzulegen, wie das Projekt voranschreiten wird, und die Abschlusskriterien zu bestimmen. Auf diese Weise weiß dein Team, woran es erkennt, dass alle Ziele des Projekts erreicht wurden.
Zu den spezifischen Aktivitäten während dieses Schritts gehören:
- Identifizierung von Elementen wie Testfällen, Spezifikationsanforderungen und Code-Modulen
- Identifizierung jedes Softwarekonfigurationselements im Prozess
- Zusammenfassung der grundlegenden Details dazu, warum, wann und welche Änderungen vorgenommen werden und wer für deren Umsetzung verantwortlich ist
- Erstellung einer Liste der erforderlichen Ressourcen wie Werkzeuge, Dateien, Dokumente usw.
2. Versionskontrolle und Baseline
Der Schritt der Versionskontrolle und Baseline gewährleistet die kontinuierliche Integrität des Produkts, indem eine akzeptierte Version der Software identifiziert wird. Diese Baseline wird zu einem bestimmten Zeitpunkt im SCM-Prozess festgelegt und kann nur durch ein formelles Verfahren geändert werden.
In diesem Schritt geht es darum, die am Produkt vorgenommenen Änderungen zu kontrollieren. Mit der Weiterentwicklung des Projekts werden neue Baselines eingerichtet, wodurch mehrere Versionen der Software entstehen.
Dieser Schritt umfasst die folgenden Aktivitäten:
- Identifizierung und Klassifizierung der vom Projekt abgedeckten Komponenten
- Entwicklung einer Möglichkeit zur Nachverfolgung der Hierarchie verschiedener Softwareversionen
- Identifizierung der wesentlichen Beziehungen zwischen verschiedenen Komponenten
- Festlegung verschiedener Baselines für das Produkt, einschließlich Entwicklungs-, Funktions- und Produkt-Baselines
- Entwicklung eines standardisierten Bezeichnungsschemas für alle Produkte, Überarbeitungen und Dateien, damit alle auf demselben Stand sind.
Die Festlegung eines Projektattributs als Baseline erzwingt die Anwendung formeller Prozesse zur Kontrolle von Konfigurationsänderungen, falls diese Attribute geändert werden.
3. Änderungskontrolle
Änderungssteuerung ist die Methode, mit der sichergestellt wird, dass alle vorgenommenen Änderungen mit dem restlichen Projekt konsistent sind. Das Vorhandensein dieser Kontrollen unterstützt die Qualitätssicherung sowie die Genehmigung und Veröffentlichung neuer Ausgangsbasis(en). Die Änderungssteuerung ist für den erfolgreichen Abschluss des Projekts unerlässlich.
In diesem Schritt werden Anträge zur Änderung von Konfigurationen beim Team eingereicht und vom Softwarekonfigurationsmanager genehmigt oder abgelehnt. Die häufigsten Arten von Anträgen beziehen sich auf das Hinzufügen oder Bearbeiten verschiedener Konfigurationselemente oder auf die Änderung von Benutzerberechtigungen.
Dieses Verfahren umfasst:
- Steuerung von vom Kunden angeforderten Ad-hoc-Änderungen
- Prüfung der Berechtigung des Änderungsantrags durch Untersuchung der Gesamtauswirkungen auf das Projekt
- Umsetzung genehmigter Änderungen oder Erläuterung, warum Änderungsanträge abgelehnt wurden.
4. Erfassung des Konfigurationsstatus
Im nächsten Schritt wird durch Tests und Überprüfungen anhand der vorab festgelegten Ausgangsbasen sichergestellt, dass sich das Projekt gemäß dem Plan entwickelt. Dazu werden Versionshinweise und zugehörige Dokumente geprüft, um sicherzustellen, dass die Software alle funktionalen Anforderungen erfüllt.
Die Erfassung des Konfigurationsstatus verfolgt jede während des Prozesses veröffentlichte Version und bewertet, was in jeder Version neu ist und warum die Änderungen erforderlich waren. Zu den Aktivitäten in diesem Schritt gehören:
- Aufzeichnung und Bewertung der Änderungen von einer Ausgangsbasis zur nächsten
- Überwachung des Status und der Lösung aller Änderungsanträge
- Pflege einer Dokumentation jeder aufgrund von Änderungsanträgen und zum Erreichen einer weiteren Ausgangsbasis vorgenommenen Änderung
- Prüfung früherer Versionen zur Analyse und für Tests.
5. Audits und Überprüfungen
Der letzte Schritt ist eine technische Überprüfung jeder Phase des Softwareentwicklungslebenszyklus. Audits und Überprüfungen betrachten den Prozess, die Konfigurationen, den Arbeitsablauf, die Änderungsanträge und alles, was während der Projektentwicklung in die Erstellung jeder Ausgangsbasis eingeflossen ist.
Das Team führt mehrere Überprüfungen der Anwendung durch, um ihre Integrität zu verifizieren, und erstellt außerdem wichtige begleitende Dokumente wie Versionshinweise, Benutzerhandbücher und Installationsanleitungen.
Zu den Aktivitäten in diesem Schritt gehören:
- Sicherstellen, dass die in der Planungs- und Identifikationsphase festgelegten Ziele erreicht werden
- Sicherstellen, dass die Software den festgelegten Standards für die Konfigurationssteuerung entspricht
- Sicherstellen, dass Änderungen gegenüber den Ausgangsbasen mit den Berichten übereinstimmen
- Validieren, dass das Projekt gemäß den Projektzielen konsistent und vollständig ist.
Im Gegensatz zu herkömmlichen Dateisystemen kann eine spezialisierte Datenbankverwaltungssoftware fortschrittliche Funktionen wie Datenintegrität und Sicherheit bieten, die für eine effektive Softwarekonfigurationsverwaltung entscheidend sind.
Wer ist am Softwarekonfigurationsprozess beteiligt?
Der SCM-Prozess ist multidisziplinär und bezieht nahezu jedes Mitglied des Softwareentwicklungsteams ein.
Konfigurationsmanager
Der Konfigurationsmanager ist dafür verantwortlich, festzulegen, wer während des Entwicklungsprozesses wofür zuständig ist. Er stellt sicher, dass alle Beteiligten den SCM-Prozess im gesamten Projekt befolgen, und hat das letzte Wort bei allen Änderungsanträgen.
Projektmanager
Die Rolle des Projektmanagers ist für den SCM-Prozess von entscheidender Bedeutung. Er legt den Zeitrahmen des Projekts fest, um sicherzustellen, dass die Fertigstellungstermine eingehalten werden, und erstellt außerdem Berichte über den Fortschritt des Teams. Eine weitere wichtige Aufgabe des Projektmanagers besteht darin, sicherzustellen, dass jedes Teammitglied die vorab festgelegten Richtlinien für die Erstellung, Änderung und Prüfung der Software befolgt.
Softwareentwickler
Entwickler sind während der Entwicklung für das Schreiben von Code sowie für die Umsetzung genehmigter Änderungsanträge verantwortlich.
Auditor
Diese Rolle ist für alle Audits und Überprüfungen zuständig und muss sicherstellen, dass die endgültige Version vollständig und konsistent ist.
Welche Vorteile bietet der Einsatz von Konfigurationsverwaltungswerkzeugen?
Es stehen zahlreiche Tools zur Verfügung, die den Prozess des Softwarekonfigurationsmanagements unterstützen. Diese Tools dienen der Automatisierung traditionell manueller Aufgaben und ermöglichen dadurch eine höhere Genauigkeit, Geschwindigkeit und Kontrolle. Konkret können sie Folgendes unterstützen:
- Warnmeldungen und Berichte: Ein gutes SCM-Tool stellt Warnmeldungen und Berichte bereit, wenn Abweichungen von der vereinbarten Baseline auftreten. Diese Daten werden nahezu in Echtzeit weitergeleitet, sodass Manager schnell handeln können, wenn etwas vom Kurs abweicht.
- Änderungen verfolgen: SCM-Tools verfolgen automatisch Änderungen an Servern oder Anwendungen und ermöglichen auch die manuelle Eingabe solcher Daten. Die Änderungsprüfung kann außerdem durch die Überwachung von Ausgaben aus Skripten erfolgen.
- Konfigurationsvergleiche: Die besten Tools für das Softwarekonfigurationsmanagement bieten eine Möglichkeit, Unterschiede zwischen Konfigurationen zu erkennen.
- Schnellere Fehlerbehebung: Fehler, Fehltritte und Probleme werden schnell erkannt, sodass Entwickler Maßnahmen ergreifen können, bevor das Problem größer wird.
- Bestandsverfolgung: Die meisten SCM-Tools bieten eine Möglichkeit, Hardware- und Softwarebestände zu verfolgen, sodass Sie keine manuelle Liste führen müssen.
- Patch-Management: SCM-Tools können Sie dabei unterstützen, alle Details rund um das Patch-Management zu verfolgen, während Sie aktualisierte Software verteilen.
Gibt es Nachteile bei der Verwendung eines Tools für das Softwarekonfigurationsmanagement?
Bevor Sie ein SCM-Tool einsetzen, sollten Sie einige Dinge berücksichtigen, darunter:
- Ressourcenaufwand: Sie müssen über die Ressourcen verfügen, um den Prozess von Anfang bis Ende zu unterstützen
- Wissensbeschränkungen: Alle Beteiligten müssen über umfassende Kenntnisse der verwendeten Softwaremanagement-Tools verfügen
- Nachteil für KMU: Der Umfang dessen, was für eine effektive Nutzung dieser Tools erforderlich ist, kann für ein kleines Unternehmen schwer zu bewältigen sein
- Hardwarespezifikationen: Für einen reibungslosen Ablauf des Prozesses ist schnell und leistungsstark konfigurierte Hardware erforderlich.
Abschließende Worte zum Softwarekonfigurationsmanagement
Oben habe ich einen allgemeinen Überblick darüber gegeben, was Sie wissen müssen, um einen Prozess für das Softwarekonfigurationsmanagement einzurichten, mit dem Sie Ihre Projekte verfolgen, kontrollieren und verwalten können.
SCM-Tools wie Ansible oder TeamCity helfen dabei, viele Aspekte des SCM-Prozesses zu automatisieren, und können eine hervorragende Rendite bieten. Unsere Auswahl finden Sie im Artikel Die 10 besten Tools für das Softwarekonfigurationsmanagement.
Die Welt des Softwarekonfigurationsmanagements und der Qualitätssicherung entwickelt sich rasant. Melden Sie sich für den Newsletter von The QA Lead an, um weitere praktische Tipps, Tricks und Tools direkt in Ihrem Posteingang zu erhalten.
Oder lernen Sie weiter, indem Sie diesen Podcast anhören: DIE ENTSTEHUNG DER AUTONOMEN AUTOMATISIERUNG UND WIE SIE AUSSIEHT (MIT BERTOLD KOLICS VON MABL) oder diese Liste lesen: 10 AKTUELLE SOFTWARETESTING-TOOLS, DIE VON QAS VERWENDET WERDEN
