Softwareentwicklung als IT-Service

Tipps für erfolgreiches Offshoring

15.05.2013 von Bernhard Steppan  
In der Softwareentwicklung gilt Offshoring als kosteneffizient und flexibel. Lesen Sie, wann sich Offshoring lohnt und was es bei dieser Form des Outsourcing zu beachten gibt.
Foto: violetkaipa, Shutterstock.com

Ein Outsourcing der Softwareentwicklung kann für mehr Kostentransparenz und Flexibilität sorgen. Im Offshoring, einem Spezialfall des Outsourcing, versprechen sich Unternehmen neben diesen Vorteilen zusätzlich auch starke Kosteneinsparungen. Betriebe, die also überlegen, ihre Softwareentwicklung ins Ausland zu verlagern, sollten zunächst den Hauptvorteil des Offshoring im Vergleich zum Outsourcing verifizieren: die Kosteneinsparungen.

Grobkalkulation der Kosten vornehmen

Über Kosteneinsparungen lässt sich nur diskutieren, wenn man weiß, von welchem Volumen bei der Softwareentwicklung auszugehen ist. Dazu sind zunächst folgende Fragen zu beantworten:

Welche Teile der Softwareentwicklung können überhaupt ausgelagert werden?

Welche Teile der Softwareentwicklung behält ein Unternehmen aus strategischen und sicherheitsbedingten Überlegungen im Haus?

Erst wenn diese Fragen geklärt sind, kann im Dialog mit einem Offshoring-Experten sondiert werden, ob sich Offshoring lohnt. Dabei ist unbedingt darauf zu achten, dass auch versteckte Kosten berücksichtigt werden. Solche Kosten sind zum Beispiel die Abfindung interner Mitarbeiter, Offshore-Beratungsleistung, Reisen zum Entwicklungsteam, Wartungskosten, Entwicklertests und nicht zuletzt die Programmdokumentation (Konzept und Sourcecode). Gerade die Beurteilung und Preisfindung für eine gute Dokumentation ist alles andere als trivial. Was hilft eine kostengünstige Entwicklung, wenn die Wartungskosten nach kurzer Zeit explodieren, weil niemand mehr den Programmaufbau nachvollziehen kann?

Bei der Kostenkalkulation ist ferner zu beachten, dass der deutsche Markt auf den Preisdruck durch Offshoring reagiert hat. So arbeiten einige hiesige Software- und Beratungshäuser zum Beispiel mit einer "verlängerten Werkbank" im näheren Ausland. Sie lagern also selbst Teile der Entwicklung aus, bieten Kunden damit günstigere Preise und nehmen ihren Kunden den kritischen Prozess der Auslagerung ab. Andere Softwarehäuser haben sich wiederum darauf spezialisiert, einfache, wiederkehrende Probleme kostengünstiger mit der Hilfe von Softwaregeneratoren zu lösen. Alles in allem bedeutet das, dass viele Programmierarbeiten auch hierzulande nicht unbedingt extrem teuer sein müssen. Zu bedenken ist außerdem, dass der Kommunikation eine Schlüsselrolle zufällt. Hier haben deutsche Anbieter, die mit Offshore-Partnern arbeiten, einen Vorteil, weil die so kritische Kommunikation vorwiegend in deutscher Sprache abläuft.

Risiken im Offshoring

Risiken im Offshoring
Über die Risiken des Offshoring in der Softwareentwicklung wurde viel geschrieben. Manches ist überzeichnet, vieles hingegen Realität. Stephan Koch, Senior Project Manager Offshore bei der Deutschen Leasing AG, hat folgende sieben Problemfelder identifiziert.
1. Projekt-Management
2. Unterschied in Kultur und Mentalität
3. Kommunikation
4. Politische Stabilität und geografischer Rahmen
5. Rechtlicher Rahmen
6. Zeitunterschied
7. IT-Infrastruktur und IT-Sicherheit
8. Versteckte Kosten
Risiken bergen aber auch folgende Aspekte:
der Auslagerungsprozess
Risiken bergen aber auch folgende Aspekte:
die Zusammenstellung eines internen Teams
Risiken bergen aber auch folgende Aspekte:
die Auswahl des Offshoring-Anbieters

Ist die Entscheidung für das Offshoring der Softwareentwicklung gefallen, stellt sich unmittelbar die Frage nach dem Auslagerungsprozess sowie dessen Steuerung. Zu bedenken ist, dass Offshoring natürlich sozialen Sprengstoff birgt, weil es zum Abbau von Arbeitsplätzen führt. Deshalb ist unbedingt die Beratung eines Rechtsspezialisten erforderlich, der klären muss, ob und inwieweit betriebsbedingte Kündigungen überhaupt zulässig sind. Ist ein Betriebsrat vorhanden, muss dieser selbstverständlich informiert werden.

Im Zuge des Auslagerungsprozesses muss auch unter Berücksichtigung der Aspekte Betriebsteilstilllegung, Kündigungsschutz und Sozialauswahl entschieden werden, welche Mitarbeiter das Unternehmen verlassen sollen und wer im Betreib verbleibt, um das Offshoring zu steuern. Es ist aber davon auszugehen, dass verbliebene Mitarbeiten nicht besonders motiviert sind, die Maßnahmen pro Offshoring mitzutragen. Aber gerade nach dieser Entscheidung werden verlässliche Spezialisten benötigt, die die Schnittstelle zum Offshoring-Dienstleister bilden. Alle Personalentscheidungen haben deshalb einen starken Einfluss auf die Rentabilität des Offshorings.

Internes Entwicklungsteam aufbauen

Parallel zu den genannten Personalfragen sind folgende zwei Stränge zu verfolgen:

Das Entwicklerteam muss über ausreichend Know-how in der Softwareentwicklung, besonders über Vorgehensmodelle und über die Analyse sowie Aufbereitung von Anforderungen verfügen. Zudem sind sehr gute Sprachkenntnisse sowohl in Deutsch (Kommunikation mit der Fachabteilung) als auch in Englisch (Kommunikation mit dem Offshore-Partner) unabdingbar. Wünschenswert ist zudem Praxiserfahrung in interkultureller Zusammenarbeit und eine Bereitschaft zu regelmäßigen Reisen zum Standort des Offshoring-Anbieters.

Praxiserfahrung in interkultureller Zusammenarbeit ist ein im Offshoring häufig unterschätzter, aber wesentlicher Punkt. Fehler, die hier gemacht werden, sind nur schwer zu revidieren und haben nachhaltig negativen Einfluss auf die Arbeitsatmosphäre. Ein Entwicklungsteam in Indien reagiert vollkommen anders als eines in der Slowakei. Ein Beispiel: In traditionell geprägten asiatischen Kulturen ist es nicht üblich, über Hierarchiestufen hinweg Entwicklungsfehler zu diskutieren. In allen Fällen gilt: Es ist wichtig, das Entwicklungsteam persönlich kennenzulernen und über die Sitten und Gebräuche der anderen Kultur Bescheid zu wissen. Diese Faktoren wirken sich positiv auf die Zusammenarbeit und Ergebnisse aus. Die Kooperation ausschließlich auf Dokumente zur Anforderungsspezifikation sowie Telefonkonferenzen mit schwer verständlichem Englisch zu reduzieren, ist riskant und eher nachteilig.

Auswahl des Offshore-Unternehmens

Der nächste Schritt vor der eigentlichen Auslagerung ist die Auswahl eines geeigneten Offshore-Unternehmens. Geeignet heißt, ob der Offshoring-Partner zu den Vorstellungen über die Unternehmenskultur, über die Softwarearchitektur und über den Entwicklungsprozess passt. Folgende Fragen muss das Auswahlverfahren lösen:

Nicht zuletzt ist unter den bisher genannten Kriterien für die Qualifikation des Offshore-Unternehmens auch das Preis-Leistungs-Verhältnis im Vergleich zu Konkurrenten unter die Lupe zu nehmen. Auf werbewirksame Zertifizierungen wie CMMI allein sollte man sich nicht verlassen. Das direkte Gespräch mit dem Anbieter, aber auch der Kontakt zu jemandem, der Erfahrung mit dem Provider hat und ungeschminkt über seine Projekterfahrungen berichten kann, ist weit wertvoller.

Ist die Auswahl getroffen, gilt es, einen Rahmenvertrag zu formulieren und zu schließen. Er muss die allgemeingültigen Vertragsbestandteile enthalten, die allen Entwicklungsprojekten gemeinsam sind. Der Vorteil: Diese Vertragsbestandteile müssen dann nicht in jedem Projektvertrag eigens wieder aufgenommen werden, sondern lassen sich einfach referenzieren. Zu den Vertragsklauseln sollte zum Beispiel folgendes gehören:

Zu beachten ist weiterhin, dass der Vertrag auch internationalisiert werden muss. Das bedeutet nicht nur eine Übersetzung in die jeweilige Landessprache, sondern auch, dass das Offshoring-Unternehmen akzeptieren muss, wenn der Vertrag nach deutschem Recht abgefasst ist. Alternativ kann man auch unterschiedliche Verträge aufsetzen, die dem jeweiligen Landesrecht unterworfen sind.

Vorgehensmodell festlegen

Traditionell wird offshore eher konservativ, dokumentengetrieben auf Basis von Lasten- und Pflichtenheften gearbeitet. In diesem Fall ist die Preisfindung für ein Projekt mit einem Festpreisangebot vergleichsweise leicht. Komplizierter wird es, wenn agil entwickelt werden soll. Es besteht kein Zweifel, dass dies möglich ist. Allerdings stellt sich die Frage, wer den Preis für Missverständnisse zahlen soll. Daher möchten Offshore-Dienstleister das geschäftliche Risiko bei dieser Entwicklungsmethode in der Regel durch einen Projektvertrag auf Basis von Time & Material (T&M) absichern. In diesem Fall ist ein erfahrenes, internes Projekt-Management gefragt, das sowohl die Kosten und die Qualität als auch den Zeitplan im Griff hat und rechtzeitig gegensteuert, wenn das Projekt mit dem T&A-Verfahren aus dem Ruder läuft.

Geistiges Eigentum schützen

Die Diskussion über Vertragsklauseln zum Schutz des geistigen Eigentums im Offshoring wirkt akademisch. Sie sollten auf jeden Fall von einem IT-Juristen mit Kenntnissen im internationalen Recht verfasst werden, sind aber keine Gewähr. Geistiges Eigentum lässt sich in der Softwareentwicklung durch Vertragsklauseln nicht ohne Weiteres wirksam schützen. Jedes kompetente Entwicklungsteam ist mit der Software in kürzester Zeit so gut vertraut, dass es in der Lage ist, sie in einer anderen Softwarelösung zu adaptieren. Der Ursprung der Software kann dann nicht mehr eindeutig nachgewiesen werden. Der Schutz ist selbst dann nicht zuverlässig gewährleistet, wenn dem Offshore-Unternehmen Teile der Anwendung nur als Binärcode zur Verfügung gestellt werden. Beispielsweise kann bei Programmiersprachen wie Java normalerweise der Binärcode leicht wieder entschlüsselt werden, so dass ein Sourcecode vorliegt. Auch die Einführung von Werkzeugen zur Verschlüsselung des Codes - sogenannte Obfuscators - ist nicht der Weisheit letzter Schluss, weil sie unter Umständen die Entwicklung behindern.

Anwendungsarchitektur definieren

Die bessere Strategie zum Schutz geistigen Eigentums ist es, die Kernkompetenzen des eigenen Unternehmens bei der Entwicklung nicht offenzulegen, sondern im Offshore möglichst nur die Teile zu entwickeln, die technischer Natur sind. Im Prinzip reden wir wieder über die gute Praxis, Geschäftslogik und technische Implementierung nach einem Designmuster zu trennen. Je sauberer die Anwendungsarchitektur nach diesem Muster aufgebaut ist, desto leichter ist eine Trennung von unternehmenskritischen und unkritischen Teilen möglich. Wird zudem nach einem Komponentenmodell wie zum Beispiel OSGi oder auf Basis von Standard-Frameworks wie JavaServer Faces gearbeitet, lassen sich Komponenten vergleichsweise leicht integrieren und testen. Im Prinzip ist das Verfahren ein alter Hut und auch in anderen Industriezweigen erprobt, beispielsweise der Automobilindustrie. Dort müssen Zulieferer schon lange nach einer bestimmten Spezifikation arbeiten und fertige Komponenten auf der Basis einer Schnittstelle mit bestimmten Qualitätsanforderungen liefern.

Qualitätssicherung in Eigenregie

Qualitätssicherung ist ein weiterer wichtiger Baustein für erfolgreiches Offshoring. Wer sich verleiten lässt, mit der Entwicklung auch die Qualitätssicherung außer Haus zu geben, wird Schiffbruch erleiden. Die Qualitätssicherung sollte unbedingt autark von der Entwicklung betrieben werden, da ansonsten eine unabhängige Instanz zur Beurteilung der gelieferten Qualität fehlt. Wichtig ist, die Bedingungen schon im Rahmenvertrag festzulegen, damit nicht bei jedem Projekt erneut über Entwicklungstest, statische Codeanalyse, Lasttest und Testabdeckung diskutiert werden muss. Empfehlenswert ist, dem Dienstleister grundsätzlich Entwicklertests vorzuschreiben, die von der internen Qualitätssicherung reproduziert werden können. (pg)