Das Software Change and Configuration Management (SCCM) ist eine Spezialisierung des Konfigurations-Managements auf alle Aktivitäten im Bereich der Software-Entwicklung (engl. software engineering).
SCCM integriert Kernprozesse und unterstützende Prozesse. Es verwaltet Änderungsanforderungen (Change Requests[4]) ausAnforderungen[1] und Programmfehlern[2,3]. Es führt Buch über alle Zustände (Status, Änderungen) an Source-Code und Dokumenten, die während der Software-Entwicklung geändert werden. SCCM entspricht einer «Buchhaltung für Software».
SCCM ist nicht nur eine lästige, jedoch unerlässliche (Neben-)Aufgabe der Entwickler, sondern SCCM-Prozesse begleiten alle am Lebenslauf der Software beteiligten Personen, das heisst: neben den Entwicklern auch Support-Leute, Projektleiter, Tester, Integratoren usw.
SCCM ist ein System von Regeln. Je besser diese Regeln in Form von Organisation, Technik, Administration, Werkzeugen und Automatismen implementiert sind, desto reibungsloser funktioniert diese Infrastruktur. Wir halten uns an das folgende Zitat:
«SCCM is first an attitude; second, a process; and only third, a set of tools.» [B. Weatherall, 1997]
SCCM ist eine Infrastruktur für die Software-Verwaltung. Je besser das SCCM-System alle Prozesse der Software-Entwicklung unterstützt, integriert und automatisiert, desto besser sind die Entwicklungsresultate.
SCCM erlaubt es, Änderungsanforderungen im Zeitverlauf und im Fertigungsgrad zu kontrollieren. Es liefert jederzeit aktuelle Reports und Kennzahlen über den aktuellen Projektstand und ermöglicht dadurch IT-, Entwicklungs- und Projektleitern sowie Anwendungsverantwortlichen wirkungsvolle Planung und Kontrolle.
SCCM garantiert durch Versionierung die Nachverfolgbarkeit aller Änderungen an Artefakten (Spezifikationen, Source-Code, Dokumentation) zu einem Änderungsauftrag. Jede Änderung an einem Auftrag wird protokolliert und historisiert.
SCCM erlaubt es, Konfigurationen (eine Menge von Änderungsanforderungen inkl. aller betroffenen Artefakte für einen neuen Release) und alle ihre Änderungen im Zeitverlauf zu kontrollieren. SCCM garantiert die Integrität und Nachverfolgbarkeit aller Konfigurationen und die Möglichkeit der Wiederherstellbarkeit einer älteren, lauffähigen Version.
SCCM hat mehrere Ziele