Verteilte Softwareentwicklung erfordert Tools für die Zusammenarbeit

21.06.2006 von Gerhard Versteegen, Susanne Mühlbauer und Andreas Kress
Besonders die zunehmende Zahl an Outsourcing- und Offshoring-Projekten stellt Entwicklerteams vor die Aufgabe, großräumig verteilte Programmierer zu koordinieren. Eine Reihe von Tools verfolgt dabei unterschiedliche Ansätze.

Das Thema Collaboration wird immer dann interessant, wenn mehrere Personen an einem Projekt arbeiten und Arbeitsergebnisse und Aufgaben untereinander abstimmen, verteilen und verfolgen müssen. Dabei ist es unerheblich, ob sich die Personen am selben Standort befinden oder räumlich getrennt voneinander sind. Sicherlich wird der Bedarf für den Einsatz einer Collaboration-Software bei einer verteilten Entwicklungsmannschaft über verschiedene Kontinente hinweg besonders ersichtlich, aber bereits eine Distanz von einem Stockwerk kann schon zu Informationsverlusten führen, die durch eine entsprechende Software verringert werden können.

Architektur einer Collaboration-Lösung

Jedoch gilt es nicht nur, innerhalb der Entwicklung die Zusammenarbeit zu erleichtern. An Programmierer werden die unterschiedlichsten Anforderungen gestellt. Neue Funktionalitäten und Kundenwünsche müssen umgesetzt werden, Fehler müssen beseitigt werden, Änderungen müssen eingearbeitet werden. Auf der anderen Seite müssen Zeitpläne eingehalten werden und die Dokumentation muss sauber geführt werden. Letztlich muss nicht nur der Projektleiter sondern auch alle Projektbeteiligten zu jeder Zeit einen Überblick über den Stand und Status des Projektes bzw. den Stand und Status der eigenen Aufgaben haben.

Collaboration Software verspricht, diese Möglichkeiten zu bieten und darüber hinaus auch sicher zu stellen, dass alle Änderungen an einem Softwareprojekt und dessen Entstehungsprozess auch für Dritte nachvollziehbar bleiben.

Grundvoraussetzungen

Bei der Einführung einer Collaboration Software muss eine unternehmensweite - also auch standortübergreifende - Reorganisation der Software-Entwicklungs-Prozesse vorgenommen werden. Es wird schnell klar, dass alle Beteiligten offen für Veränderungen sein müssen. Auch muss die Wichtigkeit und die Vorteile einer solchen Einführung allen Mitarbeitern bewusst werden. Probleme treten vor allem dann auf, wenn die Betroffenen durch das Werkzeug zusätzliche Arbeit haben, wenn sie beispielsweise ihre Arbeitsergebnisse täglich manuell in das Collaboration-Tool überführen müssen.

Ein wichtiger Aspekt ist es also, Collaboration-Software möglichst gut in die bestehenden Software-Entwicklungsprozesse zu integrieren. Es existieren hierzu zwei Ansätze: Migration aller existierenden Tools in die neue Umgebung oder Anbindung der existierenden Komponenten über das Collaboration Werkzeug.

Unabhängig von dem gewählten Ansatz sollten die Werkzeuge einen zentralen Zugriff auf alle relevanten Informationen bieten, eine strukturierte Ablage der Daten gewährleisten und ein schnelles Auffinden der gesuchten Informationen ermöglichen. Diese Funktionalität wird in der Regel durch ein zentrales Repository gewährleistet, in dem die unterschiedlichen Objekte über deren URL oder eine eindeutige ID miteinander in Verbindung gesetzt werden. So lassen sich über einen Change Request die umzusetzenden Anforderungen, die dazu in einem Forum geführten Diskussionen, die daraus abgeleiteten Aufgaben und sogar die Änderungen im Source Code nachvollziehen - und umgekehrt.

Integration in bestehende Abläufe

Weiterhin ist es wichtig, dass das Collaboration-Werkzeug die unternehmensintern Entwicklungsprozesse abbilden kann. In den meisten Werkzeugen existieren hier Prozess-Templates, die kundenspezifisch oder auch projektspezifisch angepasst werden können. Zusätzlich sollten die Tools auch eine Unterstützung von Standards wie CMMI oder SPICE bieten.

Neben der Abbildung der Entwicklungsprozesse an sich, muss das Thema Projektmanagement und Projektcontrolling einen hohen Stellenwert innerhalb eines Collaboration Werkzeug einnehmen. Hierzu gibt es so genannte Projekt-Tracker, welche die Fortschritte bei der Abarbeitung von Aufgaben überwachen. Ein weiteres wichtiges Kriterium ist, dass das Werkzeug über eine Zeit- beziehungsweise Aufwandserfassung verfügen sollte.

Ausgefeiltes Rechtekonzept erforderlich

Nachdem aber nicht jede Information für alle Projektmitarbeiter relevant ist und manche Daten auch nur für einige ausgewählte Mitarbeiter sichtbar sein dürfen, ist ein fein granulares Rollen- und Rechtekonzept ein absolutes Muss - ebenso wie ein hohes Maß an Sicherheitsmechanismen, die unbefugte Zugriffe verhindern. Dies ist besonders dann von Bedeutung, wenn das Produkt nicht nur hinter, sondern auch vor einer Firewall zum Einsatz kommen soll, wie es bei firmenübergreifenden Projekten der Fall ist.

Für die Akzeptanz einer Collaboration-Lösung ist weiterhin die Performanz ein wichtiges Kriterium ebenso wie die Skalierbarkeit: Projekte mit mehreren hundert Beteiligten sind keine Seltenheit mehr. Auch sollte ein sukzessives Ausrollen der Software von wenigen Usern bis hin zu einem unternehmensweiten Einsatz leicht zu bewerkstelligen sein.

Mieten oder selbst installieren?

Hier stellt sich dann auch spätestens die Frage nach den Kosten. Von Herstellerseite werden hier zwei verschiedene Vertriebsmodelle angeboten: Installation der Software hinter der Firewall auf der unternehmenseigenen Hardware oder Bereitstellung als Software As A Service (SAAS), wobei das Hosting und die Wartung vom Hersteller übernommen werden. Die Abrechnung erfolgt hier pro User und pro Monat. Bei der Hosting Variante entfallen die Kosten für die Administration der Infrastruktur, da für die Aktualisierung, Skalierung und Verfügbarkeit der Anwendung der Anbieter zu-ständig ist. Dieses Modell wird derzeit noch zögerlich angenommen, da viele Unter-nehmen den Schritt scheuen, ihre Daten auf einem unternehmensfremden Server abzulegen.

Anbieter und Produkte

Zurzeit haben sich vier Anbieter von Collaboration Produkten im Bereich Software Entwicklung auf dem Markt herauskristallisiert:

Wie bereits dargestellt, gehen die Hersteller unterschiedliche Wege bei der Implementierung der Software beim Kunden: Integration der bestehenden Infrastruktur oder Migration der vorhandenen Werkzeuge. Ziel ist es jedoch immer, eine einheitliche Zugriffsoberfläche für alle Projektbeteiligten zu schaffen. Den integrativen Ansatz verfolgen sowohl Intland mit Codebeamer als auch VA Software mit der SourceForge Enterprise Edition.

Die SourceForge Enterprise Edition von VA Software ermöglicht das "Knowledge Threading" zwischen bestehenden Tools, indem diese über eine SOAP-API angebunden werden. Codebeamer von Intland bietet eine Anbindung für alle gängigen Change- und Konfigurationsmanagementsysteme und ist durch seine offene API bezüglich der Integration anderer im Unternehmen genutzter Anwendungen erweiterbar.

Polarion for Subversion und Polarion for NetWeaver sowie die CollabNet Enterprise Edition gehen den anderen Weg und migrieren die im Unternehmen vorhandenen Werkzeuge in die jeweilige Lösung. Polarion verwendet hierbei Subversion beziehungsweise NetWeaver als alleiniges Repository, in dem alle Daten zentral abgelegt und verwaltet werden.

CollabNet Enterprise Edition bietet neben der Migration von Anwendungen wie Subversion oder CVS zusätzlich die Möglichkeit, Anwendungen über Connectoren anzubinden.

Anbieter und Produkte im Vergleich

Kriterium

CollabNet Team Edition

CodeBeamer

Polarion for Subversion

Sourceforge Enterprise Edition

Integration/ Schnittstellen

Subversion, CVS, IBM Rational Clearcase, IDE Integrationen, Mercury TestDirector, Cruise Control

Eclipse, WSAD, Lotus Notes, Subversion, CVS; CM Synergy, PVCS, VSS, WebDAV, MS Office, Star Office, Wiki, FreeMind

Subversion-basiert, RIF, offene API, ,XML, MS Word, MS Excel, MS Project, CSV, MID Innovator

Microsoft Project, Microsoft Office, CVS, Subversion, Perforce, BM WSAD IDE und weitere, SOAP Web Services

Zentrales Repository

Virtuelles zebntrales Repository

Virtuelles zentrales Repository

Subversion als zentrales Repository

Zentrales Repository

Assoziationen/ Verlinkung

Über alle Objekte

Über alle Objekte

Über alle Objekte, Visibility über Traceability Matrix

Über alle Objekte

Project Management Tools (Tracker)

Konfigurierbare Tracker, z.B. Defects, Requirements, Tasks

Konfigurierbare Tracker, z.B. Projects, Tasks, Change Requests, trackerbasierter konfigurierbarer Workflow

Konfigurierbare Tracker für Work Items, z.B. Change Requests, Tasks, Requirements

Konfigurierbare Issue und Change Tracker integriert mit SCM Tools; Tracker Workflow

Wiki

Geplant

Vorhanden

Geplant

Vorhanden

Prozess-Modell

  • Kundenspezifischer Workflow

  • Agile Iterative/Spiral

  • Waterfall

  • RUP

  • CMMI

  • Kundenspezifischer Workflow (Trackerbasiert)

  • CMMI Reports

  • Kundenspezifischer Workflow

  • CMMI

  • SPICE

  • ISO

  • Konfigurierbare Workflows

  • SourceForge Collaborative Development Process

Skalierbarkeit

6-stellige Userzahlen

> 3500

Mehrere Hundert abhängig von der Serverleistung

5-stellige Userzahlen

Security und Access Control

Fein-granulares konfigurierbares rollenbasiertes Rechtekonzept, keine LDAP-Anbindung

Rechte und Rollenbasiert, fein-granular auf Artefakt-Ebene LDAP, Siteminder (SSO)

Globales und projektspezifisches Rollen- und Rechtekonzept, LDAP, Active Directory Anbindung, SSO

Globale und projekt-spezifische Rollen und Rechtevergabe, LDAP, SSO

Vertriebsmodell in Deutschland

Homeoffice

Vertriebsniederlassung

Vertriebsniederlassung

Vertriebspartner

Preismodell

Service

Lizenzvertrieb

Lizenzvertrieb

Miete oder Lizenzvertrieb

Prognose

Collaboration in der Softwareentwicklung steckt noch in den Kinderschuhen. In den meisten Unternehmen muss hier von den Tools-Anbietern noch viel Überzeugungsarbeit geleistet werden, der amerikanische und asiatische Markt ist in dieser Hinsicht hingegen bereits weiter.

Durch die Tendenz zu Offshore- und Outsourcing-Projekten wird der Bedarf an professioneller Collaboration-Unterstützung jedoch immer größer. Zusätzlich müssen die Unternehmen ihren Time-to-Market verkürzen und gleichzeitig die Qualität der Software erhöhen.

Collaboration Software kann hier durch die Verfügbarkeit der Informationen die Wiederverwendbarkeit von Lösungen erhöhen und damit eine Produktivitäts- und Qualitätssteigerung unterstützen. Ein nicht zu vernachlässigender Aspekt ist auch, dass neue Mitarbeiter schneller eingearbeitet sind und Projekte generell schneller aufgesetzt werden können, indem einheitliche und standardisierte Projekt-Templates und Prozessmodelle über den gesamten Entwicklungsprozess verwendet werden können.

Wenn sich diese Sicht in den Unternehmensführungen etablieren kann, dann hat der Collaboration Markt eine große Zukunft - insbesondere da, wo Informationen einerseits sehr verteilt vorliegen und andererseits ein hoher Kommunikationsbedarf vorliegt.