Aktuelles

Konfigurationsmanagement - wassen das?

Michael Schmidtvon M. Schmidt

Sie kennen das: Ihr Projekt steht kurz vor dem Abschluss, es wurde alles umgesetzt und implementiert, was Sie für richtig hielten und da kommt doch tatsächlich der Kunde anmarschiert (hat der eigentlich immer noch nicht kapiert, dass er hier nicht das Maß aller Dinge ist?) und behauptet, dass ihm die vorvorletzte Version (Hä? Version?) sowohl vom Layout als auch funktionell - von der Performance ganz zu schweigen - wesentlich besser gefallen hat.

  • Natürlich verschweigen Sie, was Sie von den irrigen Ansichten des Kunden halten, jedoch Ihr Blick verrät Sie und weist Sie als einen absoluten Profi und Kenner der Materie aus der nur ein müdes, verständnisloses Lächeln für derlei Kundenwünsche übrig hat.
  • Natürlich wurde Ihnen das Argumentieren in die Wiege gelegt, mit vielen blumigen Worten, garniert mit Unmengen von Technokratensülze erklären Sie dem Kunden den technischen Aufwand seiner Wünsche und malen das große, schwarze Kostengespenst an die Moderatorentafel in der Meeting Lounge.
  • Natürlich empfinden Sie das Anliegen als persönliche Beleidigung, immerhin haben Sie und Ihr Team Wochen an harter Arbeit und Tonnen an Hirnschmalz investiert um mit nur 16 Tagen Verspätung da zu stehen wo Sie jetzt sind (ja es konnte doch keiner wissen, dass der Torben plötzlich krank wird und Susanne in den Skiurlaub...) - und jetzt sitzt da der Kunde und schreit nach der vorvorletzten Version.
Wie jetzt, war das jetzt die Sache mit der horizontalen Navigation und dem rötlichen Hintergrund im Header oder war das die Geschichte mit dem lustigen Aufklappmenü links (verdammich noch mal, es hat zwei Tage gedauert, das Skript von Dynamic Drive herunter zu laden und an die Sonderwünsche des Kunden anzupassen...) - oder nein, das war doch, nein auch nicht.
In Gedanken überschlagen Sie, welchen Aufwand Sie investieren müssen, denn der Kunde gibt Ihnen zu verstehen, dass er auf keinen Fall gewillt ist... und jetzt ist auch noch die Susi nicht da, das ist doch die Einzige die hier noch durchblickt und ein bisschen Ahnung hat von - wie hieß die Skriptsprache noch mal? Wenn wir Glück haben liegt irgendwo noch ein DAT herum mit dem Backup von vor drei Wochen, dann haben wir eine Chance - der Kunde unterbricht Ihre Gedanken, legt seinen schmutzigen Finger in die tiefste Wunde und mahnt auch noch die pünktliche Übergabe der vereinbarten Leistungen an.

Zugegeben, dieser Schwank aus dem Agenturalltag ist reichlich überspitzt, aber seien wir doch mal ehrlich: Die oben beschriebenen Zustände kommen in den besten Familien vor und irgend etwas davon haben wir doch alle schon erlebt, oder?

Spätestens in dieser Situation sollte sich nicht nur der verantwortliche Projektleiter fragen, mit welchen Verfahren und Werkzeugen die Funktions- und Leistungscharakteristiken seines Produkts - selbstverständlich inklusive aller der für die Herstellung notwendigen Informationen, Unterlagen und Dokumentationen - dauerhaft sichergestellt werden können. Und da sind wir schon mittendrin im Konfigurationsmanagement.

Die Norm ISO 10007 "Qualitätssicherung, Leitfaden für Konfigurationsmanagement" beschreibt Konfigurationsmanagement etwas umständlich als alle technischen und organisatorischen Maßnahmen zur Konfigurationsidentifizierung, Konfigurationsüberwachung, Konfigurationsbuchführung, Konfigurationsauditierung - und die gilt für alle Industriebereiche.

Wie bitte - geht das auch einfacher?

Der in den USA gültige Industriestandard EIA-649 definiert Konfigurationsmanagement als das Verfahren zur Herbeiführung und ständiger Sicherstellung der Übereinstimmung der Leistungs-, Funktions- und physischen Charakteristiken eines Produkts mit den zugehörigen Anforderungen, den Ausführungen, den Ausführungsunterlagen und den für den Betrieb erforderlichen Informationen während des gesamten Lebenszyklus des Produkts.

Yeehaah, jetzt wissen wir doch worum es geht.

Der für uns an dieser Stelle wichtigste Punkt des Konfigurationsmanagements umfasst vor allem die Einrichtung einer Versions- und Release-Verwaltung. Nur mit der durch ein entsprechendes Tool gestützten Versions- und Release-Verwaltung ist an ein vernünftiges Arbeiten an etwas größeren Projekten mit mehreren Entwicklern überhaupt noch denkbar. Sollen Dateien (Artefakte) aller am Projekt Beteiligten (Stakeholder) in die Versionsverwaltung einfließen, wird man die Unterstützung eines professionellen Tools schnell zu schätzen wissen.

Versionsverwaltung bedeutet zunächst einmal, dass alle relevanten Bestandteile der Software (ja, auch eine Website ist Software!) sowie die dazugehörigen Dokumente und Unterlagen mit ihrem jeweiligen Änderungsstand archiviert und dokumentiert werden. Das heißt, dass die verantwortlichen Personen jederzeit einen Überblick über die aktuellen Versionen aller Dateien haben und diese bei Bedarf mit älteren Versionen verglichen werden können - dies ist beispielsweise für die Fehleranalyse essentiell und unabdingbar.

Darüber hinaus besteht die Möglichkeit, über so genannte Branches zwischen Versionen einzelner Dateien zu unterscheiden, die sich in unterschiedlichen Phasen der Entwicklung befinden, so kann die Version 15 einer einzelnen Datei bereits released sein, an Version 14 welche für ein Release-Gesamtpaket vorgesehen ist, wird jedoch noch immer gearbeitet. Natürlich können verschiedene Entwicklungsphasen (Branches) problemlos zu neuen Versionen zusammengeführt werden.
Eine einfache, toolgestützte Versionsverwaltung funktioniert im Wesentlichen folgendermaßen:
  • Alle Originaldateien (Artefakte) werden in einem Repository des Tools abgelegt. Das Repository befindet sich physisch üblicherweise auf einem entsprechend konfigurierten und gesicherten Server.
  • Um ein Artefakt bearbeiten zu können, muss es ausgecheckt werden und erhält dadurch im Repository den Status "gesperrt". Aufgrund dieses Status kann ein weiterer Entwickler zwar auf dasselbe Artefakt lesend zugreifen, dieses jedoch nicht nochmals auschecken. Abhängig vom eingesetzten KM-Tool kann ein Branch eröffnet werden, um eine neue Unterversion des Artefakts zu produzieren.
  • Nach entsprechenden Änderungen wird das Artefakt wieder eingecheckt, dabei wird vom KM-Tool automatisch eine neue Version generiert. Wird das Artefakt unverändert eingecheckt, wird dies erkannt und die aktuelle Version der Datei bleibt erhalten. Nach dem Check-In wird die Sperrung im Repository aufgehoben.
  • Auf alle Artefakte des durch ein KM-Tool verwalteten Projekts haben die verantwortlichen Personen Zugriff, auch wenn aufgrund bestehender Berechtigungen und Verantwortlichkeiten Änderungen ausschließlich über das KM-Tool vorgenommen werden können. Zugriff besteht in der Regel immer auf die aktuellen, eingecheckten Versionen aller Artefakte.
Von Release-Verwaltung sprechen wir, wenn einzelne Releases der Software mit einem entsprechenden Werkzeug dokumentiert und verwaltet werden. Bei Bedarf kann so ein älterer Release-Stand wiederhergestellt werden - z.B. wenn wie eingangs erwähnt, der Kunde herumzickt ;-). Releases werden u.U. entsprechend gekennzeichnet (gelabelt), ein Verfahren, welches nicht nur die Übersichtlichkeit signifikant verbessert. Mit einem Label werden die Versionsnummern aller Dateien dokumentiert, welche z.B. für die Auslieferungsversion einer Software nötig sind.

Wie bereits erwähnt, gehören zu den durch Versions- und Release-Verwaltung betroffenen Artefakten jedoch nicht nur die einzelnen Komponenten der Software als solche, sondern ebenfalls Unterlagen und Dokumentationen zu den konfigurationsspezifischen Festlegungen des Projektes. Diese umfassen u.A:
  • Die Beschreibung von Verfahren, Vorgehensweisen und technischer Umgebung beim Entwickeln der Software (Software Development Plan) - dies beinhaltet z.B. auch eine Namenskonventionen für Objekte, Variablen und Dateien
  • Die Beschreibung von Verfahren, Vorgehensweisen und technischer Umgebung zur Qualitätssicherung bzw. zum Testen der Software (Software Test Plan, Checklisten etc.)
  • Sämtliche Dokumente die im Verlauf des Entwicklungsprozesses für den Kunden hergestellt werden, wie z.B. Manuale, Handbücher, StyleGuides etc.
Wenn diese Vorgehensweise noch in einem eigenen Dokument, nämlich einem so genannten Konfigurationsmanagementplan fixiert ist, dann ist das Wichtigste geregelt und Sie gehören keinesfalls zur oben erwähnten Chaos-Agentur, herzlichen Glückwunsch!

KM-Tools:

PVCS von MERANT, CVS oder Microsoft Visual SourceSafe sind für überschaubare Entwicklungsprojekte durchaus geeignete Werkzeuge - bei den vielen bei großen Webprojekten zu verwaltenden Artefakten in Wechselwirkung mit einer großen Anzahl an Entwicklern welche ggf. zeitlich und räumlich weit voneinander entfernt arbeiten, werden diese Tools jedoch schnell unübersichtlich und stoßen an ihre technischen Grenzen - wobei die Usability einiger Tools mehr als eine Frage der Gewöhnung ist und oftmals Kopfschütteln hervorruft.
Oben genannte Werkzeuge sind im unteren Preissegment angesiedelt oder wie im Falle von CVS Open Source. Wer keine Lust hat, auf der UNIX-Kommandozeile herumzuhämmern, findet inzwischen ein ebenfalls als Open Source deklariertes Windows GUI für CVS, welches sinnigerweise WinCVS getauft wurde. Subversion mit der Erweiterung TortoiseSVN ist ebenso ein Open Source SCM und verdient sicher mehr als eine Erwähnung.

Als Alternative bietet sich der Bolide des Konfigurationsmanagements an: IBM Rational ClearCase. ClearCase sollten Sie nur in Augenschein nehmen, wenn Sie zu den Dieter Bohlens des Web-Business zählen: Hardwareausstattung und Userlizenzen verschlingen schnell das Jahresbudget einer mittleren Agentur. Aufgrund des Umfangs und des Preises wird das Tool dementsprechend auch hauptsächlich bei Großprojekten eingesetzt. Aber man bekommt auch was für's Geld: Neben Versionskontrolle für Dateien und Verzeichnisse unterstützt ClearCase optionales Locking (reserved/unreserved checkout) sowie zwei verschiedenen Prozess-Modelle für Branching und Integration. Selbstverständlich gibt es Tree-Views inklusive eines integrierten Diff-Views für die bisherigen Dateiversionen und -branches. Sehr viele Funktionen sind über den normalen Datei-Explorer (Windows) verfügbar. Dateirechte zum Einchecken und Auschecken sind durch ausgefuchste Administrationsfunktionen vielfältig einstellbar. ClearCase kann mit Hilfe von Perl-Skripten an eigene Bedürfnisse angepasst werden, findige Entwickler schreiben sich einfach eigene Funktionen für das Tool.
Darüber hinaus kann ClearCase durch ClearQuest um eine Mängel- und Aufgabenverfolgung mit Rechteverwaltung und konfigurierbaren Statusübergängen erweitert werden. Auf Windows-Clients implementiert ClearCase die Microsoft-API für Versions-Kontroll-Werkzeuge und arbeitet dadurch mit SoftwareTools anderer Hersteller zusammen. Es ist nur natürlich, dass aufgrund des Funktionsumfangs von ClearCase dieses auf schwachbrüstigen Client-Umgebungen sehr behäbig läuft - beim Ein- oder Auschecken von ein paar Hundert Dateien können Sie getrost die Kantine aufsuchen und ausgiebig tafeln. Eine entsprechend performante Client/Server-Umgebung ist also Grundvoraussetzung für einen vernünftigen Betrieb.
Die Entscheidung liegt bei Ihnen, ob Sie sich ein Häuschen im Grünen gönnen oder einen entsprechenden Betrag in die IBM Rational Tool Chain investieren...

Das KM-Tool Perforce ist mein Favorit bei den kommerziellen Werkzeugen. Die Installation ist ein Kinderspiel, darüber hinaus ist Perforce auch für KM-Anfänger sehr einfach und intuitiv zu bedienen und im Vergleich zu anderen Systemen rasend schnell. Ausserdem bietet Perforce sogar die Möglichkeit mehrere Fremd-Systeme einzubinden. Die Preise für das System sind anwenderfreundlich und absolut korrekt, für zwei Clients ist die ganze Geschichte sogar kostenlos. Natürlich verfügt Perforce über alle bei professionellen KM-Tools selbstverständlichen Features wie reserved/unreserved Checkout, Branching und Integration, Diff-View - sogar eine Job-Verwaltung ist integriert und erledigt tadellos die wichtigsten Aufgaben.
Gerade im Web-Umfeld, wenn auch mal ein paar mehr Leute an einem Projekt arbeiten bzw. viele Dateien und Versionen verwaltet werden müssen, führt an Perforce kein Weg vorbei.

Natürlich wurden hier nicht alle Werkzeuge aufgezählt, es fehlen z.B. Telelogic Continuus, CCC/Harvest von Platinum (inzwischen Computer Associates), BitKeeper und noch ein paar andere. Das liegt zum Einen schlichtweg daran, dass einige Systeme für die gebotenen Features und Leistungen insbesondere für kleinere Agenturen preislich jenseits von Gut und Böse liegen, zum Anderen kenne ich diese Tools nicht alle und möchte mich hier keinesfalls erdreisten, ein Urteil abzugeben - man möge es mir verzeihen. Auch bin ich auf diverse Features nicht eingegangen - selbstverständlich verfügen einige Systeme über ein Web-Interface, so dass über einen speziellen HTTP-Port auf relevante Daten zugegriffen werden kann.
Viele der KM-Tools sind nicht zuletzt aufgrund ihrer Vergangenheit plattform-unabhängig und können auch unter UNIX/Linux betrieben werden bzw. waren ursprünglich für die Verwendung unter einem UNIX System vorgesehen (mit Ausnahme vom Microsoft Visual SourceSafe vielleicht...)

Machen wir einen großen Schritt zurück zum Anfang der Geschichte: Ihr Kunde belagert noch immer Ihre Meeting Lounge und hat immer noch seinen schmutzigen Finger in der schmerzenden Wunde die da heißt: Termin! Erklären Sie dem guten Mann die Vorgänge, welche notwendig sind und begeistern Sie Ihren Kunden mit dem Aufwand, der für die Änderungen anfallen wird. Initiieren Sie ein Re-Engineering bis zur vom Kunden verlangten Version X, welche natürlich korrekt als solche gekennzeichnet ist und starten Sie pünktlich die Auslieferung Ihrer Applikation. Wenn Konfigurationsmanagement weitsichtig und konsequent angewendet wird, ist der Zeitaufwand und damit Ihre Kosten für derlei Aktionen im Vergleich zum eingangs beschriebenen chaotischen Modell marginal.

Natürlich werden die vom Kunden initiierten Änderungswünsche bereits in Ihrem Änderungs- und Fehlermanagement-Tool verwaltet, die Vorgehensweise dazu wird in einem entsprechenden Dokument beschrieben - aber das ist schon wieder eine ganz andere Geschichte...

06.08.2006

RSS Newsfeed
Alle News vom TAGWORX.NET Neue Medien können Sie auch als RSS Newsfeed abonnieren, klicken Sie einfach auf das XML-Symbol und tragen Sie die Adresse in Ihren Newsreader ein!