Software-Entwicklungstrends/Jetzt sollen auch noch die Anwender mitmischen

Verteilte Entwicklung beendet die Zusammenarbeit per Zuruf

17.07.1998

Die Zeiten der Einzelkämpfer in der DV sind lange vorbei. Man hatte eingesehen, daß es effektiver ist, sich zu Teams zusammenzuschließen. Für Entwicklungsaufgaben heutiger Größenordnung ist es wiederum sinnvoll, in verteilten Gruppen zu arbeiten. Eine virtuelle Entwicklergruppe kann sich rund um die Uhr mit einem Projekt beschäftigen. Hat der Programmierer in Deutschland sein Tagewerk beendet, übernimmt sein Kollege an der amerikanischen Westküste die Aufgabe und tritt sie am Abend an eine asiatische Fachkraft ab. Die Produktionszeiten werden so enorm verkürzt.

Hinzu kommt, daß immer mehr Unternehmen ihren bisherigen Standort verlassen, um von billigen Lohntarifen in Übersee zu profitieren. Für spezielle Leistungen werden auch Fremd- oder Partnerfirmen gesucht, wo immer diese sich befinden.

Bei großen Entwicklungsprojekten kann schon die Software-Erstellung an einem Ort unüberschaubar und fehleranfällig sein. Änderungen und Weiterentwicklungen lassen sich nicht mehr oder nur mit hohem Aufwand nachvollziehen. Das trifft auf die verteilte Entwicklung in noch viel stärkerem Maße zu. Hier ist ein Werkzeug für Softwarekonfigurations-Management (SKM) vonnöten.

Ein SKM-Tool macht es zunächst einmal möglich, verschiedene Versionen eines Produkts zu halten und ältere wiederherzustellen. Im Idealfall geschieht diese Wiederherstellung über verschiedene Rechnerplattformen und Standorte hinweg. Darüber hinaus lassen sich mit SKM die Änderungsanforderungen verwalten, was die Softwarepflege und Weiterentwicklung vereinfacht.

Softwarekonfigurations-Ma- nagement besteht aus mehreren Teilen. Mit dem Revisions-Management läßt sich zu jedem beliebigen Zeitpunkt jeder beliebige Stand einer Datei wiederherstellen. Die Speicherungen der Revisionen erfolgen in Archiven oder speziellen Repositories.

Den Zugriff von verschiedenen Personen auf die Dateien synchronisiert ein Lock-Mechanismus. Wenn mehrere Benutzer an der gleichen Revision Änderungen durchführen dürfen, spricht man von mehrfachem Locking. In diesem Fall muß eine Variationsentwicklung (Branching) möglich sein. Diese Variationen sollten sich auch wieder zusammenführen lassen (Merging).

Das Versions-Management arbeitet dateiübergreifend auf der Anwendungsebene. Mehrere Dateien unterschiedlicher Revisionen werden zu einer Version zusammengefaßt und unter einem gemeinsamen (Versions-)Namen zur Bildung eines Unter- oder Gesamtsystems gespeichert.

Veränderungen können nur durch eine Entnahme (Checkout) der Dateien aus dem zentralen Datenspeicher erfolgen. Nach der Bearbeitung müssen die Dateien wieder dorthin zurückgelegt werden (Checkin).

Build-Management bezeichnet die Überführung der Quellen in ausführbare Programme. Es kann den Generierungsprozeß automatisieren, wiederherstellen und dokumentieren.

Für verteilte Software-Entwicklung eignet sich am besten ein SKM-Werkzeug mit einer echten Client-Server-Architektur, damit auch Programmierer, die nicht das Hauptsystem nutzen, einfach und schnell den zentralen Datenspeicher nutzen können. Einige SKM-Werkzeuge erlauben dem Anwender den Zugriff auf die Projekte, das Eingeben von Änderungsanforderungen sowie das Aus- und Einchecken von Dateien über einen Browser. Selbst die Teilnahme an einem integrierten Diskussionsforum ist über diesen Weg möglich.

Der Zugang über einen Browser sollte ohne zusätzliche Plug-ins oder Applets möglich sein, damit das System auch für alle Anwender verfügbar ist, diese bei Bedarf von einem anderen Rechner aus weiterverarbeiten und neue Teammitglieder dem Projekt kurzfristig beitreten können.

Um dem Anwender eine möglichst unabhängige Kommunikation zu ermöglichen, sollte das SKM-Werkzeug alle gängigen Protokolle unterstützen. Ein sicheres und effizientes Arbeiten ist aber nur möglich, wenn jede Kommunikation über das Netz verschlüsselt und komprimiert läuft. Gleichzeitig muß ein Zugriff auf den zentralen Datenspeicher für Unbefugte ausgeschlossen sein.

Um verteilte Anwendungen schneller und komplexer entwickeln zu können, stellen Firmen die Software-Entwicklung zunehmend in den größeren Zusammenhang genereller DV-Ziele. Diese beziehen auch das Wissen von Angestellten aus mehreren Funktionsbereichen mit ein, die in den Informationsfluß eingebunden werden müssen.

Gemäß dem Grundsatz der marktorientierten Unternehmensführung gehören neben den eigentlichen Produzenten der Software - den Entwicklern - auch Mitarbeiter aus Projektplanung, Marketing, Vertrieb und Geschäftsführung, Partnerfirmen und konsequenterweise auch Kunden, also die Anwender oder Benutzer der Software, zur Entwicklergruppe. Geht es um die Entwicklung einer Internet-Anwendung, ist dieser Kreis um Web-Designer zu erweitern.

Die Heterogenität wird durch eine Aufteilung der Entwickler in Entwicklungs-, Qualitätssicherungs-, Prüfungs- und technische Unterstützungsgruppen noch gesteigert. Diese Personen wachsen zu einer virtuellen Gruppe zusammen. Ihre Zusammenarbeit bezieht sich dabei auf alle Phasen der Entwicklung, von der Definitions- und Entwicklungsphase bis hin zum Test und der Wartung des fertigen Produkts.

Die Bildung eines optimalen Teams stößt schnell an technische Grenzen. Sind die eigentlichen Entwickler meist noch an einem Standort zu finden, arbeiten Personen aus angrenzenden Abteilungen in der Regel voneinander getrennt. Der Nutzen von Konfigurations-Management darf sich an den räumlichen Grenzen des Unternehmens nicht erschöpfen.

Die Lösung bietet die Internet-Technologie. Sie macht den Standort der Person oder des Unternehmens zur Nebensache. Eine gemeinsame Datenbasis und leistungsfähige Kommunikationsmittel gestatten die Mitarbeit beliebiger Personen in beliebigen Entwicklergruppen. Spezialisten aus allen Teilen der Welt können hinzustoßen.

Die Einbindung aller am Projekt beteiligten Personen ist ein kritischer Erfolgsfaktor. Besondere Bedeutung gewinnt dabei die Beteiligung von Anwendern. Die Software-Entwicklung ist ein Problemlösungsprozeß, der nur durch einen engen Kontakt zwischen Entwickler und Anwender zu hoher Qualität führen kann.

Software-Entwicklungsprojekte mit Benutzerbeteiligung weisen weniger Mängel auf als andere Projekte vergleichbarer Größenordnung. Damit sind auch die Kosten in der Wartungsphase geringer. Die Beteiligung der Anwender erhöht zudem die Akzeptanz der neuen Software.

Die Abstimmung zwischen Entwicklern und Benutzern wäre dann optimal, wenn es eine räumlich enge Zusammenarbeit gäbe. Im Idealfall wären die Büros auf demselben Flur. Das ist normalerweise nicht möglich. Die Kommunikation per E-Mail kann dieses Manko zwar deutlich verringern, aber nicht vollständig beseitigen. Alle an Software-Entwicklung beteiligten Personen müssen weitergehende Informationsmöglichkeiten haben, damit ein reibungsloser Projektablauf gewährleistet ist.

Vor allem externe Mitarbeiter müssen jederzeit den Überblick über die anstehenden Aufgaben und getroffenen Entscheidungen haben. Verknüpfungen zwischen allen relevanten Dateien, Objekten und Dokumenten machen das möglich. Bei einigen SKM-Werkzeugen lassen sich beispielswei- se Änderungsanforderungen, E-Mails oder andere Dokumente an eine Datei anhängen.

Um jederzeit die Kontrolle über das Projekt zu bieten, muß die gesamte Dateigeschichte von dem SKM-Werkzeug abgebildet werden. Die Entscheider benötigen Zugriff auf beliebig viele Ansichten des Projekts und auf alle Revisionen einer Datei und Änderungsanforderungen. Eine Prüfungskontrolle muß automatisch das Wer, Wann und Was einer jeden Änderung erfassen.

Angeklickt

Software-Entwicklung ist nicht mehr ausschließlich die Aufgabe einer vor Ort gemeinsam tätigen Gruppe von DV-Spezialisten. In jedem größeren Projekt ist die Kooperation von Spezialisten erforderlich, die räumlich voneinander getrennt arbeiten. Außerdem werden Tochter- und Partnerfirmen, Kunden und beauftragte DV-Unternehmen zugeschaltet. Grenzen spielen dabei kaum mehr eine Rolle, das Internet macht die Globalisierung der Projektarbeit relativ einfach. Darüber hinaus geht es darum, auch die Endanwender einzubinden. Es ergeben sich neue Aufgabenverteilungen. Diese Ausweitungen bereiten den Boden für ein solides Konfigurations-Management.

Jürgen Giesel ist Marketing-Manger der ESM Software GmbH in Nürtingen.