Das 1x1 von SCM:

Das Konfigurationsmanagement
auf dem heutigen Markt verstehen

[ English | Français ]

Was kann einen mehr in Rage bringen, als wenn man erfolgreich Fehler eines Code-Blockes behebt und anschließend herausfindet, dass gestern jemand anderes diese Schritte schon einmal ausgeführt hat? Gibt es einen größeren Adrenalinschub, wie dann, wenn ein großes Softwareprojekt abgeschlossen wird - und zwar erst nach dem Stichtag für die Fertigstellung? Was ist nervenaufreibender, als die neueste Überarbeitung eines Softwaremoduls suchen zu müssen, die vor drei Wochen von einem Team fertig gestellt wurde, das nun an einem anderen Projekt arbeitet?

All diese Probleme könnten mithilfe von Softwarekonfigurationsmanagement-Werkzeugen (SCM) vermieden werden. Mit den SCM-Werkzeugen kann die Entwicklung eines Softwareprodukts verfolgt und verwaltet werden. Häufig ruft SCM nur wenig Begeisterung hervor. Aber andererseits kann mit SCM auch viel Aufregung vermieden werden.

Große Softwareunternehmen, vor allem solche, die gleichzeitig an mehreren Entwicklungsprojekten arbeiten, die alle von unterschiedlichen Teams ausgeführt werden, stimmen uns absolut zu. Diese Firmen haben bereits viele Hürden überwinden müssen und wissen daher, wie kritisch es ist, den Vorgang der Softwareentwicklung effizient zu verwalten. Sie sind auch die ersten, die merken, wie schwierig es ist, ein wirklich effektives SCM-System eigenständig zu implementieren.

Die Entstehung von SCM

Bevor SCM als eigenständige Aufgabe betrachtet wurde, haben sich Unternehmen, die Software entwickeln, darauf verlassen, dass die Aktivitäten der Programmierer auf logische Weise durch die Softwareentwicklung eigenständig verwaltet werden würden - also dass die Entwicklerteams die Softwareentwicklung selbst verfolgen würden. Nachdem sich herausstellte, dass das im besten Falle nicht einfach und im schlimmsten Falle nicht möglich war, haben manche Softwareunternehmen ihre eigenen SCM-Werkzeuge entwickelt. Bei manchen dieser selbst entwickelten Werkzeuge handelt es sind nun um Projekte mit offenem Quellcode. Andere Firmen hingegen verwenden Systeme zur Dokumentenverwaltung für ihre SCM-Aufgaben.

Doch in den letzten paar Jahren, in denen viele Softwareprojekte mit Millionen von Quellcodezeilen erstellt wurden, bei denen verschiedene Teams an einzelnen Modulen eines Programms arbeiten und die Teams auch häufig an unterschiedlichen Standorten tätig sind, wurde SCM zu einer so wichtigen Aufgabe, dass sie wirklich nur von dedizierten, professionellen und kommerziellen Werkzeugen ausgeführt werden kann. Jetzt lohnt es sich nicht mehr, selbst Werkzeuge zu entwickeln; Software mit offenem Quellcode ist in der Funktionalität zu beschränkt und Systeme zur Dokumentenverwaltung waren schon immer für diese Aufgabe ungeeignet. Daraufhin hat sich Anfang der 90er Jahre ein kommerzieller Markt für SCM-Werkzeuge entwickelt.

Die Vorzüge professioneller SCM-Werkzeuge

Zu den direkteren Vorzügen von SCM-Werkzeugen gehören:
  • die Möglichkeit, einen vorhersehbareren Softwareentwicklungs- und Release-Zyklus zu erstellen
  • die Möglichkeit, sich wiederholende Aufgaben zu automatisieren
  • die Möglichkeit, zeitgleiche Entwicklungen verschiedener Entwicklungspfade zu verwalten, was zudem die Produktivität steigert
  • die Möglichkeit, ein fehlerfreies Produkt zu erstellen
  • die Möglichkeit, Entwicklungsteams unabhängig von deren geographischem Standort zusammenzustellen

SCM ist zwar möglicherweise so spannend wie Finanzbuchhaltung, doch die Folgen eines nachlässigen Umgangs mit SCM können genauso gravierend sein wie die Folgen einer schlampigen Buchführung. Deshalb werden SCM-Systeme vor allem von Software-Entwicklungsunternehmen, die am wettbewerbsfähigsten und innovativsten sind, begeistert angewandt und eingesetzt.

Der Markt

Zu den Unternehmen, die mit SCM arbeiten, gehören Silicon Graphics, IBM, PowerSoft und der deutsche Software-Titan SAP AG. Sollten Sie noch Zweifel in Bezug auf SCM haben, werden Sie sicher diese Zahlen überzeugen. Laut Ovum Associates ist der Umsatz mit SCM-Werkzeugen seit 1995 um durchschnittlich 50 Prozent pro Jahr gestiegen. Im Jahr 1999 konnte der globale Markt für Konfigurations-Management bzw. für "CM"-Werkzeuge und -Services einen Zuwachs von ca. $1,5 Mrd. verbuchen.

"Die Tatsache, dass Benutzer diese Werkzeuge bereits bei ersten Tests erfolgreich anwenden, führt zu nachhaltigem Wachstum, da diese Benutzer die CM-Werkzeuge später unternehmensweit bei anderen Projekten einsetzen. Hat das Unternehmen erst einmal von den Vorteilen von CM profitiert, wird es diese Werkzeuge auch weiterhin anwenden", ist in der jüngsten Marktstudie von Ovum zu lesen.

SCM-Werkzeuge

Meistens werden Softwareprodukte und so auch SCM-Produkte in einer auf- bzw. absteigenden Produkt-Skala miteinander verglichen.

Am unteren Ende der Skala finden sich kostengünstige SCM-Werkzeuge mit offenem Quellcode. Für manche Zwecke sind diese sicherlich - trotz der beschränkten Funktionsweise - geeignet. Doch ohne entsprechende Anpassungen erfüllen sie allerdings nur selten die Ansprüche eines vollständigen Softwareentwicklungszyklus. Doch um diese Werkzeuge abzuändern, muss qualifiziertes Personal dauerhaft in Ihrem Unternehmen beschäftigt sein. Nur wenige Firmen im Bereich Softwareentwicklung sind jedoch bereit, diese hohen Kosten zu tragen. Am unteren Ende des kommerziellen Marktes finden sich zahlreiche Werkzeuge, bei denen es sich zum Großteil um ganz einfache Programme zur Software-Versionskontrolle handelt. Normalerweise verfügt ein solches Werkzeug mit offenem Quellcode über eine Benutzeroberfläche (GUI).

Komplexere SCM-Werkzeuge bieten verschiedene Funktionen und so auch mehr Optionen zum Verfolgen, Erstellen von Berichten und analytischen Daten. Diese sind häufig gut konfigurierbar. Wenn Sie die Produktbeschreibung ansehen, gibt es oftmals große Unterschiede bei den SCM-Werkzeugen - sowohl beim Preis als auch beim Funktionsumfang (der häufig jeglicher Logik entbehrt).

Echte Unterscheidungsmerkmale von SCM-Werkzeugen

Der Vergleich von Produktdatenblättern kann irreführend sein. Eine bessere, jedoch auch schwierigere Möglichkeit, den Nutzen einzelner SCM-Werkzeuge miteinander zu vergleichen, ist der direkte Leistungsvergleich. So können SCM-Werkzeuge miteinander verglichen werden, ohne dass dabei ihre Positionierung auf der Produktskala oder der Preis stark ins Gewicht fällt.

Einer der üblichen Nachteile von Produkten, die am unteren Ende der Produktskala zu finden sind, ist es, dass sie große, komplexe Software-Entwicklungsprojekte nicht bewältigen können. Doch es kann auch Probleme mit SCM-Werkzeugen geben, die ganz oben in der Produktskala einzuordnen sind. Normalerweise bedeutet ein großer Funktionsumfang und eine gute Konfigurierbarkeit für Entwickler, dass sie viele spezifische Anpassungen vornehmen müssen, bis das ausgereifte SCM-Werkzeug funktionsfähig ist. Es ist häufig sehr schwierig, Werkzeuge in dieser Kategorie zu warten. Oft ist dies auch mit versteckten Kosten verbunden. Zwei der wichtigsten, versteckten Kostenpunkte sind die Notwendigkeit, spezialisierte Administratoren einzustellen sowie Investitionen in zusätzliche Computerressourcen zu tätigen.

Die anfangs so praktisch erscheinenden Funktionen sind zwar wirklich sinnvoll - jedoch meist nur für Manager und Administratoren. Doch aufgrund der Tatsache, dass immer mehr Daten verfolgt, weitere Berichte und Daten erstellt werden müssen sowie zusätzliche Verwaltungs- und Managementaufgaben anfallen, werden solche Werkzeuge zu einer praktisch inakzeptablen Belastung für Programmierer bzw. Programmierteams. Das Negative an SCM-Werkzeugen ist, dass Softwareingenieure sich in vielen Fällen weigern, SCM-Werkzeuge zu verwenden, da diese extrem kompliziert sind. Diese Werkzeuge sind somit (fast) nutzlos.

Wenn sich manche Entwickler nicht weigern würden, diese komplizierten SCM-Werkzeuge zu verwenden, würden noch mehr SCM-Werkzeuge zum Einsatz kommen. Ein Marktvolumen von $1,5 Mrd. zeigt, wie sehr sich Software-Entwicklungsunternehmen leistungsfähige Werkzeuge wünschen und von deren Nutzen überzeugt sind.

Die Frage, die die meisten (jedoch nicht alle) Anbieter von SCM-Werkzeugen allerdings nicht stellen, ist, was wirklich wichtiger ist - die Bewältigung des Verwaltungsaufwands oder das Produkt? In anderen Worten ausgedrückt, worauf konzentrieren sich Anbieter von SCM-Werkzeugen - auf die Software-Konfiguration oder die Verwaltung? Diese Frage hat ihre Berechtigung - denn das ist der Kern der Sache. Wenn Ingenieure sich weigern, die Werkzeuge zu verwenden oder sie nicht richtig einsetzen, da die Verwaltungsfunktionen zu kompliziert sind, ist die Investition in SCM-Werkzeuge kontraproduktiv und nicht sinnvoll. Liegt der Schwerpunkt jedoch auf den Elementen für die Software-Konfiguration, liegt die Fokussierung bei der Produktivität der Entwickler - und diese sind gerne bereit, die Werkzeuge zu verwenden. Perforce nennt Werkzeuge, bei denen der Schwerpunkt beim Software-Konfigurationsmanagement bei der Verwaltung liegt, "ablauffokussiert" und Werkzeuge, bei denen der Schwerpunkt bei der Software-Konfiguration liegt, "entwicklerfokussiert".

Ablauffokussierte SCM-Werkzeuge erfüllen die Anforderungen von Managern und Projekt-Administratoren. Hier ist das erklärte Ziel die Organisation. Ablauffokussierte SCM-Lösungen sind für stark reglementierte Industriezweige, die sich an strenge Entwicklungsrichtlinien halten müssen und einer akribischen Managementüberwachung unterliegen, sehr geeignet. Das Haupt-Verkaufsargument für ablauffokussierte SCM-Werkzeuge ist häufig, dass es sich dabei um eine schlüsselfertige Software-Entwicklungslösung handelt. Bei solchen ablauffokussierten SCM-Werkzeugen erhalten sie jedoch häufig billige, unzuverlässige Werkzeuge oder solche, die extrem kompliziert und überteuert sind.

Entwicklerfokussierte SCM-Werkzeuge sprechen die Belange der Anwendungsentwickler an. Hier liegt der Schwerpunkt darauf, dass Programmierer (und Programmiererteams) einerseits produktiver arbeiten und andererseits die Anforderungen des Managements und des Unternehmens im Ganzen erfüllt werden. Bei entwicklerfokussierten Produkten handelt es sich um Werkzeuge, die schnell installiert werden können, für die nur wenig Personal und Kontrolle erforderlich ist, und mit denen der Durchschnitts-Programmierer bzw. das Softwareentwicklerteam gut umgehen können.

Perforce Software legt aus gutem Grund Wert auf Unterscheidung: Perforce ist einer der wenigen Anbieter von SCM-Werkzeugen, die entwicklerfokussiert sind. SCM-Werkzeuge von Perforce sind leistungsstark und können beliebig angepasst werden.

Perforce ist in der Produktskala schwer einzuordnen. Die SCM-Werkzeuge des Unternehmens sind kostengünstig und dennoch so leistungsstark, dass sie in der oberen Skala, also bei den teuren Produkten, angesiedelt sind. Es handelt sich um Werkzeuge, die sowohl die Anforderungen der Softwareentwickler als auch die der Manager vollends erfüllen. Zwar bieten SCM-Werkzeuge von Perforce nicht die volle Funktionspalette anderer, höher eingestufter SCM-Werkzeuge, doch dafür gibt es einen guten Grund. Das Unternehmen hat bewusst darauf verzichtet, Werkzeuge mit Funktionswirrwarr zu entwickeln. Werkzeuge von Perforce nehmen nur wenig Systemressourcen in Anspruch, für sie ist wenig Personal erforderlich, und sie führen die notwendigen Management- und Verfolgungsaufgaben aus, ohne dass möglicherweise sinnvolle aber letztendlich unnötige Optionen verwendet werden. Das Ergebnis? Eine optimierte Leistung!

Ist die Leistung der Maßstab für SCM-Werkzeuge, so sind die relevantesten Kriterien die Einsatzfähigkeit, Skalierbarkeit, Leistungsfähigkeit des Modells und die Zuverlässigkeit.

  • Einsatzfähigkeit - Ist das System auch schnell genug? Ist es in verschiedenen Netzwerken schnell genug? Wird eine heterogene Computerumgebung unterstützt? Ist es für die Entwickler schwierig, das System zu verwenden?
  • Skalierbarkeit - Was passiert, wenn Sie 20.000 Quelldateien (oder 400.000 Webseiten) in das SCM-System laden? Handelt es sich dann noch um ein einziges System? Oder musste dieses in 20 einzelne Systeme aufgeteilt werden?
  • Leistungsfähigkeit des Modells - Kann das SCM-System verschiedene, parallele Entwicklungen und Implementierungen unterschiedlicher Anwendungen und Programmversionen bewältigen? Kann damit verfolgt werden, wann und wo Fehler behoben wurden?
  • Zuverlässigkeit - Funktionieren die Werkzeuge auch wirklich so, wie sie es sollen und werden sie dann auch deshalb so eingesetzt? Wie sind die Werkzeuge in Bezug auf QoS (Quality of Service) einzustufen?

An diesen Standards gemessen, schneiden die SCM-Werkzeuge von Perforce wirklich hervorragend ab. Sie sind bestens einsatzfähig, gut skalierbar, äußerst zuverlässig, und das zugrunde liegende Modell ist robust.

Zusammenfassung

Natürlich gibt es Unterschiede bei SCM-Werkzeugen; sie erfüllen verschiedene Zwecke, wobei manche leistungsfähiger, sinnvoller und flexibler sind als andere. Manche SCM-Werkzeuge sind ausgereifter, da sie über eine ansprechende Benutzeroberfläche verfügen - doch häufig ist das schon der einzige Vorteil jener Werkzeuge. Manche SCM-Werkzeuge können in jeden beliebigen Ablauf integriert werden, andere wiederum müssen von Ingenieuren angepasst werden, damit sie verwendet werden können. Manche Werkzeuge sind leistungsstark, flexibel, können in fast jeden beliebigen Ablauf integriert werden und sind so benutzerfreundlich, dass manche Entwickler sie innerhalb von 20 Minuten installieren und verwenden können - so wie die Werkzeuge von Perforce. Manche SCM-Werkzeuge überzeugen also wirklich durch ihre Leistung.



Hinweise:

 1. Wenn Sie weitere Informationen hierüber erhalten möchten, lesen Sie sich den Artikel der Analystenfirma
    Quocirca durch: Through the fog... Software configuration management [PDF]

2. Umsatzprognose bei Anbietern von Konfigurationsmanagement-Werkzeugen (in Millionen Dollar)
     Quelle: Ovum Associates
2000 2001 2002 2003 2004 2005
   USA 1.200 1.575 2.050 2.700 3.300 4.000
   Europa 600 800 1.050 1.350 1.700 2.100
   Sonstige Regionen 150 225 325 450 600 800
   Insgesamt 1.950 2.600 3.425 4.500 5.600 6.900