Was macht ein Software Configuration Manager?
Die Hauptaufgabe eines Software Configuration Managers (SCM) besteht darin, die Prozesse bereitzustellen und zu verwalten, mit denen Änderungen während des gesamten Lebenszyklus eines Softwareprodukts verwaltet und gesteuert werden. Insbesondere stellt der SCM sicher, dass die Software während des gesamten Entwicklungsprozesses zuverlässig und reproduzierbar bleibt, falls Änderungen oder Überarbeitungen vorgenommen werden. In Zusammenarbeit mit mehreren Entwicklungsteams stellt ein Softwarekonfigurationsmanager sicher, dass alle Teams innerhalb bestimmter Entwicklungsrichtlinien arbeiten. Um die Integrität eines Softwareprodukts zu gewährleisten, erstellen die Manager ein "Software-Build", das in den frühen Phasen des Projekts initiiert und während des gesamten Entwicklungsprozesses viele Male wiederholt wird. Ein Software-Konfigurationsmanager steuert die Entwicklung eines sehr komplexen Prozesses.
Wenn ein Programmierer ein Programm erstellt, wird ein erster Basiscode geschrieben, der alle Befehle enthält, die erforderlich sind, damit ein Programm funktioniert. Während der Entwicklung des Programms werden bestimmte Änderungen oder Überarbeitungen im Quellcode vorgenommen, um die Funktionen der Software zu verbessern oder zu erweitern. Wenn ein anderer Programmierer ebenfalls Änderungen vornimmt oder Daten aus irgendeinem Grund beschädigt werden, kann der ursprüngliche Quellcode geändert werden oder sogar verloren gehen, wenn er nicht gespeichert wird. Ein Software-Konfigurationsmanager stellt sicher, dass alle Änderungen, die an der Entwicklung eines Softwareprodukts vorgenommen wurden, in allen Entwicklungsphasen nach bestimmten Standards verwaltet, getestet, dokumentiert und gespeichert werden. Manager benötigen in der Regel einen Bachelor-Abschluss in Informatik oder einem verwandten Bereich und verfügen über langjährige Erfahrung in der Erstellung von Software-Builds und der Verwaltung von Basisstandards für Software.
Da es für Softwarehersteller wichtig ist, neue Software auf den Markt zu bringen, wurden bestimmte Prozesse und Tools entwickelt, um den Softwareentwicklungsprozess zu beschleunigen. In der Regel arbeiten mehrere Entwicklerteams gleichzeitig an verschiedenen Teilen eines Softwareprodukts. Jedes Entwicklungsteam baut auf dem ursprünglichen Quellcode auf und ändert ihn, um verschiedene Softwarefunktionen zu erstellen. Wenn diese Teams mit allen verschiedenen Quellcodes zusammenkommen, dauert es einige Zeit, den Code jedes Teams in den Code aller anderen Teams zu integrieren, damit die Software ordnungsgemäß funktioniert. Um dies zu erreichen, muss ein Softwarekonfigurationsmanager möglicherweise bestimmte Entwicklungsstandards erstellen und vereinfachen, um sicherzustellen, dass diese Standards vom frühesten Entwicklungsstadium an erfüllt werden.
Ein Software-Konfigurationsmanager muss sicherstellen, dass alle diese verschiedenen Quellcodes tatsächlich zusammen funktionieren, damit die Software so funktioniert, wie sie entworfen wurde. Zu diesem Zweck erstellt der Manager einen vollautomatischen täglichen Software-Build. Dieser Prozess kombiniert alle verschiedenen Schritte, die zum Kompilieren des Quellcodes in Artefakte oder Dateien erforderlich sind. Diese Dateien müssen in der Lage sein, mehrere Tests zu bestehen, um sicherzustellen, dass sie ordnungsgemäß in alle anderen Komponenten der Software integriert sind. Dieser Erstellungsprozess stellt sicher, dass die Software ordnungsgemäß funktioniert, wenn alle Komponenten kombiniert werden, um die endgültige Version zu erstellen.