Teilvorhaben III: Techniken für die global verteilte Softwareentwicklung
Ausgangssituation
Um die Wettbewerbsfähigkeit von kleinen und mittleren Unternehmen (KMU) zu verbessern und auf Dauer zu sichern, müssen die Kosten der Softwareentwicklung gesenkt werden. Auf dem heutigen Markt setzt sich immer mehr der Trend durch, die Entwicklungskosten durch die Auslagerung bestimmter Entwicklungsaufgaben in andere Länder mit niedrigeren Ressourcen-Kosten - häufig in die osteuropäischen Länder („Nearshoring") oder auch in die asiatischen Länder („Offshoring") - zu reduzieren. Kritisch anzusehen ist bei dieser Vorgehensweise, dass den KMU dadurch auch Teile der Softwareentwicklung mit höherer Wertschöpfung entgehen könnten. Deswegen muss bereits in der Entwicklungsphase bestimmt werden, welche Komponenten einen hohen Wertschöpfungsanteil aufweisen und deshalb hierzulande zu entwickeln sind und welche ausgelagert werden können. Derzeit gibt es jedoch keine vollständigen, allgemein zugänglichen und gleichzeitig leichtgewichtigen Werkzeuge und Methoden, die in der Lage sind, die KMU bei diesem Entscheidungsprozess in vollem Masse zu unterstützen. Sie müssen zudem die Qualität der gesamten Unternehmenssoftware garantieren, insbesondere wenn global verteilt entstandene Komponenten zu einem Gesamtsystem zusammengeführt werden. Hier kommt es insbesondere auf die Anforderungserhebung und -analyse sowie die Realisierung einer durchgängigen Dokumentation und Änderungsverfolgung an. Darüber hinaus soll eine prozessintegrierte Steuerung die Auslagerung von Entwicklungsaufgaben sicherstellen und unterstützen.
Ziele
Kernthema dieses Teilprojekts ist die Verbesserung der Effizienz und Effektivität kleiner und mittelständischer Hersteller von Unternehmenssoftware durch leichtgewichtige Methoden und Werkzeuge für die global verteilte Softwareentwicklung. Die Anforderungen an derartige Techniken sollen dabei zunächst in Form von „Best Practices" mit Hilfe ausgewählter Fallstudien kleiner und mittelständischer Hersteller von Unternehmenssoftware in Baden-Württemberg erarbeitet werden. Zudem sollen so Kriterien zur Auswahl von Bausteinen, die für das Offshoring geeignet sind, analysiert werden.
Basierend auf den im Rahmen der Fallstudien erhobenen Anforderungen und Praktiken sollen Methoden und Werkzeuge für kleine und mittelständische Unternehmen entwickelt werden, die in der global verteilten Realisierungsphase zur Verbesserung der Entscheidungsunterstützung zum Einsatz kommen. Die Entscheidung über die auszulagernden bzw. beizubehaltenden Komponenten stellt einen komplexen Vorgang dar, der von mehreren Faktoren (z.B. dem Komplexitätsgrad, Anteil am Know-how der Softwarekomponeten etc.) beeinflusst wird. Um die wesentlichen Einflussfaktoren zu berücksichtigen und somit eine qualitative Hilfe beim Entscheidungsprozess zur Verfügung zu stellen, werden daher Methoden für die Wertschöpfungsanalyse, Vertraulichkeitsanalyse, Komplexitätsanalyse usw. entwickelt. Dafür werden u.a. Ansätze aus der künstlichen Intelligenz verwendet.
Fortschrittsanalyse und Nachvollziehbarkeit stellen insbesondere bei der global verteilten Softwareentwicklung ein Problem dar. Unternehmen, die Teile ihrer Entwicklung auslagern, müssen in die Lage versetzt werden, stets über den Fortschritt ihrer Projekte informiert zu sein und Entscheidungen, die im Verlauf des Entwicklungsprojekts getroffen werden, nachvollziehen zu können. Zudem ist es notwendig, ein Entwicklungsprojekt von Beginn bis zum Ende ("end-to-end") nachvollziehen zu können, beispielsweise um Testfälle auf Anforderungen zurückführen zu können. Somit können Vertragspartner einfacher nachweisen, dass sie die spezifizierten Anforderungen realisiert haben.
Zur Unterstützung dieser Aufgaben sollen Werkzeuge zur automatisierten Fortschrittsanalyse und Nachvollziehbarkeit, beispielsweise in Form eines "management cockpits", entwickelt werden. Daneben soll eine Methode zur Unterstützung der Einführung entsprechender Werkzeuge und Verfahrensweisen konzipiert werden.
Schließlich soll das Wissensmanagement in verteilten Entwicklungsprojekten durch prozessübergreifende, innovative Methoden und Werkzeuge verbessert werden. Damit soll die kontinuierliche Erfassung und die Erschließung des vorhandenen spezifischen Fach-, System- und Prozesswissens innerhalb kleiner und mittelständischer Hersteller von Unternehmenssoftware erleichtert werden.
Arbeitspakete
| 3.1 | Fallstudien zur Identifikation von Kriterien für near-/offshoring-geeignete Bausteine bei der Entwicklung von Unternehmenssoftware durch KMUs |
| 3.2 | Entwicklung von Methoden und Werkzeugen zur Entscheidungsunterstützung bei der Identifikation von near-/offshoring-geeigneten Bausteinen |
| 3.3 | Entwicklung leichtgewichtiger Methoden und Werkzeugen für die Fortschrittsanalyse und Nachvollziehbarkeit bei verteilter SW-Entwicklung |
| 3.4 | Entwicklung einer wissensbasierten Dokumentation, die alle Entscheidungen nachvollziehbar macht |
| 3.5 | Analyse des Einflusses der in 3.1 entwickelten Kriterien auf die Phasen Anforderungsanalyse, Architekturentwurf und Realisierung für die global verteilte Softwareentwicklung |
Vorarbeiten
Entscheidungsunterstützung
DisIRE/ibere
DisIRE ist eine Methode zur global verteilten Kosten/Nutzen-Bewertung von Anforderungen. Ibere ist ein Werkzeug, das die DisIRE-Methode unterstützt. Nach der DisIRE-Methode werden zunächst die Anforderungen auf einem sehr groben Level aufgenommen und in "Anforderungssets" klassifiziert. Anschließend werden die Kosten der Implementierung der Anforderungen von den Analysten geschätzt. Entsprechend evaluieren die Stakeholder den Nutzen jeder Anforderung. Hierfür stellt ibere drei verschiedene Methoden zur Verfügung (Likertskala, Konstantsummenmethode, Analytic Hierarchy Process (AHP)). Die folgende Abbildung zeigt beispielhaft die Bewertung mit Hilfe der AHP-Methode.
Nach der Kosten/Nutzen-Bewertung werden die Anforderungen in einem Graphen visualisiert:
Anforderungen, die oberhalb der oberen Gerade eingeordnet sind, liefern einen relativ hohen Nutzen und geringe Kosten, so dass diese in jedem Fall implementiert werden sollten. Anforderungen, die unterhalb der unteren Gerade eingeordnet werden sollten hingegen nicht implementiert werden, da Sie ein schlechtes Kosten/Nutzen-Verhältnis liefern. Anforderungen, die sich zwischen den beiden Geraden einordnen, sollten nochmals gesondert hinterfragt werden.
Nach Abschluß der Bewertung werden die Anforderungen automatisch in den Requirements-Tracker einer Kollaborationsplattform exportiert, um so im weiteren Softwareentwicklungsprozess weiterverfolgt werden zu können. Mit der DisIRE-Methode steht somit bereits ein Ansatz zur Entscheidungsunterstützung zur Verfügung.
OUTSHORE Maturity Model (OMM)
Das OMM liefert einem Unternehmen Entscheidungsunterstützung bei der Frage ob und was ausgelagert werden soll. Zugleich hilft OMM dem Unternehmen bei der Identifizierung der eigenen Schwachstellen, der Bewertung der Eignung des Lieferanten die erforderte Leistung zu liefern und mit dem Auftraggeber zusammenzuarbeiten sowie bei der Bewertung der Eignung des Projektes ausgelagert zu werden. Somit umfasst die Entscheidungsunterstützung mittels OMM drei Dimensionen: den Auftraggeber, den Auftragnehmer und das Projekt. Jede Dimension beinhaltet mehrere Faktoren, die bei der Kalkulation berücksichtigt werden.
OUTSHORE Entscheidungsbaum
Mit Hilfe dieses Modells wird beurteilt, inwiefern es als sinnvoll erachtet wird, ein Projekt auszulagern. Das vorliegende Modell eines Entscheidungsbaumes basiert im Prinzip auf der Ermittlung von Erwartungswerten für das Offshoring eines Projektes. Der Erwartungswert ist dabei der Wert eines Projektes, der unter Berücksichtigung einiger Faktoren prognostiziert werden kann.
COCOMO II Anpassung
Die Anpassung von COCOMO II dient der Aufwandsabschätzung bei verteilter Entwicklung. Es bedient sich des traditionellen COCOMO II-Modells zur Aufwandsschätzung und erweitert dieses um Aufwandsfaktoren der verteilten Entwicklung. Es ist eine Weiterentwicklung von COCOMO II und übernimmt dessen Konzept der Aufwandsmultiplikatoren, da keine Skaleneffekte nachgewiesen werden konnten.
Globale Steuerung und Überwachung
V-TRaM / TraVis
Zur Unterstützung der globalen Steuerung und Überwachung steht mit der V-TRaM-Methode bzw. dem Werkzeug TraVis ein weiteres Verfahren zur Verfügung.
Alle Artefakte, die in einer Kollaborationsplattform gespeichert und miteinander verknüpft sind können mit Hilfe von TraVis extrahiert und graphisch aufbereitet werden. Dabei werden sowohl Tracability- als auch Rationale-Management unterstützt, d.h. alle Informationen die über ein Artefakt verfügbar sind werden in TraVis visualisiert.
TraVis liefert neben verschiedenen Algorithmen zur Anordnung der Artefakte ebenfalls Algorithmen zur wertbasierten Darstellung der Knotengröße. So werden beispielsweise Anforderungen, die einen hohen Nutzen liefern, größer dargestellt als solche mit einem geringen Nutzen (diese Daten wurden mit ibere erhoben). Zudem werden Artefakte, die mit wichtigen anderen Artefakten verknüpft sind ebenfalls größer dargestellt. Dieses Verfahren lehnt sich an den PageRank-Algorithmus an, der auch in der Suchmaschine Google zum Einsatz kommt. Daneben unterstützt TraVis zahlreiche Filter- und Suchfunktionen und liefert die Möglichkeit, den Graphen schrittweise aufzubauen.
Neben den dargestellten Funktionen liefert TraVis zudem eine Visualisierung des sozialen Netzwerks eines Projekts, das über die Kollaborationsplattform verwaltet wird. Die Beziehungen, die einzelne Projektmitarbeiter über verschiedene Artefakte miteinander haben, können so gezielt dargestellt werden.
Wissensmanagement - Semantische Wikis
Vgl. Teilvorhaben 2.
