Unser Unternehmen ist seit 2000 im Nearshore-Geschäft tätig. Da haben wir einiges an Erfahrungen gesammelt und Interessantem erlebt. Und weil wir auch heute noch bei vielen Unternehmen auf Skepsis und Fragen zu diesem Thema stoßen, möchte ich ein wenig aus unserer Praxis plaudern und verschiedene Aspekte näher beleuchten.
Fangen wir heute mal mit der Frage an, unter welchen Voraussetzungen Nearshore (oder Offshore) Sinn macht und in welchen Fällen man besser die Finger davon läßt.
Eine wesentliche Funktion für “Nearshore-Fähigkeit” ist die Spezifizierbarkeit der zu entwickelnden Komponenten. Hier reicht die Bandbreite von Extrem zu Extrem. Auf der einen Seite haben wir Projekte erlebt, bei denen irgendwelche Anforderer (also die späteren Anwender der Software) aus irgendwelchen Fachabteilungen ihre konkreten Wünsche und Anforderungen an die Funktionalitäten der Software nur sehr zögerlich, inkonsistent und lückenhaft an Mitarbeiter der IT-Abteilung unseres Kunden übermittelt haben. Diese mußten dann auf Basis dieses Inputs irgendeine Spezifikation zaubern, die für uns als Auftragnehmer sehr schwer zu überprüfen war, v.a. weil wir selbst keinen direkten Kontakt zu den eigentlichen Anforderern herstellen konnten. Eine solche Ausgangsbasis ist natürlich eher problematisch. Auf der anderen Seite des Spektrums gibt es Kunden, die sehr präzise Informationen in einen Spezifikationsprozeß liefern können, so daß wir gemeinsam mit dem Kunden eine solide Ausgangsbasis schaffen, i.d.R. in Form von Anwendungsfällen (neudeutsch Use Cases) und nicht-funktionalen Anforderungen, gelegentlich auch konkreten UI-Spezifikationen. Da wir nicht selten zur Abgabe eines Festpreis-Angebotes “ermutigt” werden, verwenden wir nach Möglichkeit unsere eigenen Dokumentations-Standards für die Anforderungs-Spezifikation. Wenn diese Anforderungs-Spezifikation noch vom “Anforderer” abgenommen wird, ist das die wirklich ideale Ausgangsbasis. Und vorher sollte keine weitere Arbeit im Projekt investiert werden, d.h. vor Klarstellung einer Anforderungs-Spezifikation macht keine Aufwandschätzung, keine Architektur, kein weiteres Design, keine Datenmodellierung, geschweige denn Programmierung Sinn.
Eine andere zentrale Komponente der Nearshore-Fähikeit ist der Organisationsgrad des Kunden. Damit meine ich im Wesentlichen die Prozesse und Standards in der Software-Entwicklung und im Projektmanagement, die angewendet werden - oder eben auch nicht. Um Nearshore erfolgreich zu betreiben, müssen zunächst die Zuständigkeiten klar defniert sein, also wer ist wofür der Ansprechpartner, wer kann was an wen delegieren und wer ist die abschließende Instanz für die Klärung bestimmter Fragen. Binsenweisheit? Hatten wir auch schon häufig gedacht. Aber es ist erstaunlich, wie oft in der Praxis diese einfachen Dinge aufgrund von Kompetenz-Gerangel und der in großen Organisationen permanent stattfindenden Neuorgansiation nicht funktionieren.
Neben den Zuständigkeiten sollte es einen klar beschriebenen Entwicklungs-Prozeß geben. Es ist nachrangig, ob und wie sehr dieser einer der gängigen Theorien à la RUP, V-Modell, Wasserfall, etc. entspricht oder hausgemacht ist. Jeder mag hier seiner Religion frönen, was zählt ist, daß der Prozeß einigermaßen klar, verständlich, der Aufgabenstellung angemessen ist und auch tatsächlich stattfindet, d.h. nicht nur auf Papier und in tollen Powerpoint-Präsentationen lebt.
Was ich deutlich kritischer sehe sind agile Modelle wie Scrum oder Prototyping, letzteres häufig eine pseudo-wissenschaftliche Ausrede in Fällen, in denen angeblich die Anforderungen nicht modelliert oder spezfiziert werden können (”Der Kunde weiß nicht genau, was er will”). Das kann schon auch mit Nearshore funktionieren, aber der Organisations- und Abstimmungsgrad auf beiden Seiten (Kunde und Nearshore-Partner) muß deutlich höher sein und alle Aktivitäten müssen viel stärker synchron getaktet werden - und zwar von allen Beteiligten. Das übersteigt in der Praxis meistens die Fähigkeiten an Koordination und Kommunikation. Also im Zweifelsfall lieber die Finger davon lassen.
Neben dem Entwicklungsprozeß sollte aber auch das Projektmanagement des Kunden zumindest in zentralen Punkten einheitlich funktionieren. Dazu gehören z.B. frühzeitige Projektbeschreibungen, einheitliche Projektpläne, Risikobetrachtungen, ein Kommunikationsplan und Qualitätsrichtlinien. Auch das muß nicht unbedingt streng katholisch nach PMI oder Prince2 gehandhabt werden und kann bei kleineren Projekten auch überschaubar und einfach gestaltet werden (die Devise heißt nicht, in Schönheit zu sterben). Aber wenn man schon zu Beginn des Projektes nicht genau definieren kann, was im Scope des Projektes liegt und was nicht, sind die Voraussetzungen denkbar schlecht. Das ist natürlich kein Punkt, der nur speziell für Nearshore gilt, sondern der (wie alle anderen Punkte auch) für alle Projekte relevant ist, im Fall von Nearshore aber eine besonders zentrale Bedeutung hat.
Und da aller guten Dinge drei sind, hier noch ein dritter Baustein für erfolgreiches Nearshore-Geschäft: Kommunikation. Das gehört natürlich streng genommen in das allgemeine Projektmanagement hinein. Aber da für Nearshore die Kommunikation wirklich einer der absolut zentralen und wichtigsten Aspekte ist, sei ihm ein Logenplatz gegönnt. Und damit diese funktioniert, sollten ein paar Spielregeln gleich zu Beginn des Projektes festgelegt werden: welche Inhalte / Dokumente werden z.B. in einem Projekt-Portal abgelegt; welche Themen sollten per Mail behandelt werden; wann und wofür werden Chat und Telefon eingesetzt; gibt es einen Jour Fix z.B. für wöchentliche Statusbesprechungen; wie häufig und in welcher Form erfolgt die Rückmeldung über den Projektverlauf, reicht ein wöchentlicher Bericht, welche Themen müssen ad hoc kommuniziert werden; wann wird was wohin eskaliert?
Bei all diesen Fragestellungen müssen sich beide Partner darüber im Klaren sein, daß vereinzelt Sprachbarrieren bestehen können und kulturelle Unterschiede zu unterschiedlichen Interpretationen von Sachverhalten führen können. Hier bietet sich das oft zitierte (und von mir persönlich erlebte) Beispiel an, daß ein Inder eine Frage, auf die er eigentlich mit Nein antworten müßte, aus Gründen des Gesichtsverlustes häufig doch mit Ja beantwortet oder hartnäckig ignoriert. Mit unseren rumänischen Kollegen sind die kulturellen Unterschiede natürlich weit kleiner als im beschriebenen Fall. Aber es ist z.B. so, daß ein Rumäne bei Fragen oder Problemen viel schneller ein persönliches Gespräch sucht und gemeinsam mit anderen Beteiligten mögliche Lösungen bespricht, als sich stundenlang in Einsamkeit zu quälen oder über unpersönliche Kanäle wie Email zu kommunizieren. Und noch ein kleiner Beitrag zum Thema Vorurteil: Neulich sagte ein Kunde zu mir nach einem ersten Telefonat mit einem unserer deutsch-sprachigen rumänischen Projektleiter: “Das ist unglaublich, der Mensch ist wirklich super fit. Man glaubt gar nicht, daß das ein Rumäne ist”. Klar, die leben sonst alle in Erdlöchern und fressen kleine Kinder…