Paper des Monats zum Thema „Globale Softwareentwicklung - Zum Umgang mit Risiken"
Bei unserem ersten Paper des Monats dreht sich alles um die weltweit verteilte Softwareentwicklung. Ein hochaktuelles Thema, mit dem sich drei Autoren aus Indien und Deutschland in verschiedenen Projekten und einer wissenschaftlichen Studie eingehend beschäftigt haben. Sie beschreiben in ihrem Beitrag nicht nur, welche möglichen Risiken bestehen, sondern erläutern im Anschluss auch, was IT-Manager tun können, um diese möglichst zu minimieren. Diese Studie stellen wir hier vor. Unser Paper des Monats heißt „Managing Risks in Global Software Engineering: Principles and Practices".
Software made im Ausland
Der in den vergangenen Jahren viel diskutierte Trend zur Globalisierung hat besonders vor der Softwareentwicklung nicht Halt gemacht. Teile der Softwareentwicklung werden - vornehmlich von europäischen und nordamerikanischen Unternehmen - aus Kostengründen an Standorte mit niedrigen Lohnkosten ausgelagert, häufig in osteuropäische oder asiatische Länder („Near- und Offshoring").
In vielen Fällen lagern Unternehmen Tätigkeiten komplett aus (z.B. Programmierung, Test), gelegentlich bilden sie aber auch international verteilte Teams. Erfahrungen mit globaler Softwareentwicklung machen natürlich auch bereits international verteilte Konzerne. Solche Unternehmen sind mit ihren Software entwickelnden Einheiten oft über Kontinente verteilt, auch wenn theoretisch alles unter einem Dach angesiedelt ist. Darüber hinaus verändern sich diese Organisationen häufig durch Zu- und Verkäufe, Verschmelzungen und Abspaltungen.
Forscher untersuchen erstmals Risiken
Unter solchen Voraussetzungen gute Ergebnisse zu erzielen, ist eine besondere Herausforderung. Neben all den typischen Schwierigkeiten eines nicht-verteilten Softwareprozesses muss man eine zusätzliche Problemdimension in den Griff bekommen, die durch massiv veränderte Rahmbedingungen räumlicher, zeitlicher und kultureller Art entstehen. Diese Erfahrung haben in den vergangen Jahren viele Unternehmen machen müssen, die eine globale Verteilung ihrer Softwareentwicklung in Angriff genommen haben. Oft sind die erwarteten Kosteneinsparungen nicht im vorausgesagten Maß eingetreten, viele Projekte sind vollständig gescheitert. Dieser Zustand ist weitgehend bekannt, jedoch wurden bisher die bestehenden Probleme eher anekdotisch diskutiert und nicht systematisch untersucht.
Christof Ebert, Krishna Murthy und Namo Narayan Jha haben jedoch genau das getan und eine wissenschaftliche Studie dazu verfasst. Sie heißt: „Managing Risks in Global Software Engineering: Principles and Practices“ (IEEE International Conference on Global Software Engineering, 2008). Wir möchten Ihnen dieses Papier vorstellen, weil es ein sehr aktuelles Thema behandelt. Weiterhin werden, im Gegensatz zu zahlreichen anderen Publikationen, die Risiken der global verteilten Softwareentwicklung präzise benannt und Hinweise dazu gegeben, wie IT-Verantwortliche diese minimieren können. Wer also nach konkreter Hilfestellung sucht, kann die in diesem Papier gegebenen Empfehlungen direkt umsetzen. Der wichtigste Grund aber ist, dass die getroffenen Aussagen nicht nur auf den Erfahrungen der drei Autoren bei verschiedenen Projekten beruhen, sondern zusätzlich auf einer quantitativen Analyse von rund 100 Softwareprojekten in den vergangenen zehn Jahren.
Motivation für eine weltweite Softwareentwicklung
In einem ersten Schritt identifizieren die Autoren des Papiers die vier wesentlichen Gründe, die ein Unternehmen dazu veranlassen, Software global verteilt zu entwickeln. Dazu gehören die Steigerung der Effizienz, um im Wettbewerb bestehen zu können, die Präsenz in regionalen Märkten und das Eingehen auf deren Besonderheiten, der Zugriff auf qualifiziertes Personal sowie eine größere Flexibilität bei der Bereitstellung des für das Projekt benötigten Personals. Diese Gründe führen jedoch den Autoren zufolge zu einer Reihe von zusätzlichen Risiken für Softwareprojekte. Die Experten erläutern, worin diese bestehen, und zeigen außerdem Möglichkeiten auf, um die Risiken zu verringern.
Die Risiken und das jeweilige Vorgehen in der Übersicht:
Verfehlung der Projektziele hinsichtlich Termin, Kosten und Qualität
Das Management von Teams über geografische, zeitliche und kulturelle Grenzen hinweg ist äußert schwierig und führt sehr schnell zu Problemen im Hinblick auf die Einhaltung von Terminen, Budgets und Qualitätsvorgaben. Mögliche Lösungen sind unter anderem ein spezielles Training der Projektleiter, eine unternehmensweite Risikodatenbank mit Lösungsmustern, die Analyse und Verwendung von Projekterfahrungen aus der Vergangenheit, die Einführung von „Quality Gates“ sowie die Messung von „Early Defects“.Vermehrte Anforderungsänderungen und daraus resultierende Instabilität des Projektergebnisses
Ein Produkt soll weltweit eingesetzt werden, es sind jedoch Anpassungen an lokale Bedürfnisse erforderlich. Dies führt oft zu späten „Change Requests“ oder vollständig neu formulierten Anforderungen. Um das zu verhindern, sind ein rigides „Feature Roadmapping“ sowie eine möglichst zeitige Releaseplanung notwendig. Weiterhin sollte von Beginn an ein Konfigurationsmanagement eingesetzt werden.Mangelhaftes Patentmanagement
Zur Erhaltung einer dauerhaften Wettbewerbsfähigkeit ist ein ordentliches Patentmanagement nötig, insbesondere bei der Zusammenarbeit mit externen Partnern. Im Bereich der Softwareentwicklung wird dies aber oft gar nicht oder nur ansatzweise berücksichtigt. Eine mögliche Strategie ist, exklusives Wissen und Know-how auf mehrere Partner zu verteilen und es auch nur in Einzelteilen an sie weiterzugeben. Schutzrechte sollten aktiv verwaltet werden.Personalabwanderung zum Wettbewerber
Dieses Risiko tritt besonders in asiatischen Ländern auf, in denen die Identifikation der Mitarbeiter mit dem Unternehmen oft weniger stark ausgeprägt ist und nur wenige Karriereperspektiven eröffnet werden. Es sollten passende Anreizsysteme geschaffen und die Mitarbeiter regelmäßig zur Zufriedenheit befragt werden.Mangelnde Kompetenzen bei den Projektmitarbeitern
Dieses Risiko ist in jedem Entwicklungsprojekt vorhanden, ist aber bei global verteilter Entwicklung von besonderer Bedeutung. Ein globales Management der Kompetenzen und Fähigkeiten der Mitarbeiter im Abgleich mit den zuvor genannten „Roadmaps“ ist nötig. Diese Aufgabe sollte nicht bei der Personalabteilung, sondern beim IT-Management angesiedelt sein.Starke Inflation bei Löhnen und Sachkosten
Auf Grund des globalen Wettbewerbs um die gut ausgebildeten IT-Mitarbeiter steigen deren Löhne stark. Man sollte deshalb die Region, in der man sich engagieren will, genau aussuchen und dabei auch die zu erwartende Gehaltsentwicklung im Auge behalten. Bei der Einbindung externer Dienstleister sollten IT-Manager unter anderem auf deren Kostenentwicklung in den vergangenen Jahren achten.Schlechte Ergebnisqualität beim Zulieferer
Dies ist ein besonders typisches Problem bei global verteilter Softwareentwicklung. Die Vereinbarung von „Service-Level-Agreements" (SLA) hilft nur bedingt, da es ja von vornherein das Ziel ist, eine ordentliche Ergebnisqualität sicherzustellen. Sind die SLAs erst einmal nicht erfüllt, kann man zwar eingreifen, aber das Projektergebnis leidet bereits. Stattdessen sollte der Zulieferer genau untersucht werden, bevor er engagiert wird. Dazu gehören zum Beispiel dessen Geschäftsprozesse, die sich nach Reifegradmodellen (z.B. CMMI-Maßstäben) bewerten lassen.Starke Abhängigkeit von externen Partnern
Externe Partner bieten ihre Leistungen teilweise zu niedrigen Preisen an, um diese dann plötzlich zu erhöhen, wenn ein Austausch des Lieferanten im Prinzip nicht mehr möglich ist. Um diesem Verhalten entgegenzuwirken, sollten immer mehrere Partner engagiert und das nötige Wissen auf diese verteilt werden. Weiterhin sollten alle beteiligten Partner dieselben Methoden, Werkzeuge und Prozesse einsetzen.Kommunikationsprobleme durch räumliche Distanz und Kulturunterschiede
Dies ist ein spezifisches Problem global verteilter Softwareentwicklung. Dazu gehören zum Beispiel Sprachprobleme, Angst vor Verlust des Arbeitsplatzes oder des Status. Um solche Probleme zu vermeiden, muss bereits vor Projektstart mit allen Beteiligten intensiv über deren Sorgen und Ängste gesprochen werden. Es sollte ein geeignetes Warnsystem installiert werden, um frühzeitig Kommunikationsprobleme aufspüren zu können.Das Paper des Monats
„Managing Risks in Global Software Engineering: Principles and Practices", Ebert, C.; Murthy, B.K.; Jha, N.N.; IEEE International Conference on Global Software Engineering, 2008. On page(s): 131-140, ISBN: 978-0-7695-3280-6, Digital Object Identifier: 10.1109/ICGSE.2008.12, 29 $.
Es ist zu beziehen über die IEEE CS Digital Library unter: http://www2.computer.org/portal/web/csdl/doi/10.1109/ICGSE.2008.12
Wir wünschen Ihnen eine interessante Lektüre!
Ihr LPZ-Radar-Team








[...] something about it-radar[...]
Tracked: Oct 30, 02:18