Auf's falsche Pferd gesetzt
14.06.2008 Permalink Um es im ersten Satz zu sagen: ich bin fest davon überzeugt, dass die übliche Form der Offshore-Entwicklung IT-Dienstleister strategisch in die falsche Richtung führt. Die folgenden Ausführungen begründen meine Meinung.
Was kostet bei der Software-Entwicklung eigentlich Geld?
Ein interessantes Modell von den Kosten einer Neuentwicklung kann man aus dem
Artikel
Truth and Confidence: Some of the Realities of Software Project
Estimation ableiten, über den ich vor kurzem auf STSC CrossTalk gestolpert bin.
Der Punkt, der mir hier wichtig ist, steckt in folgendem Satz:
"In an attempt to estimate projects, we are trying to figure out how much knowledge we do not have and how much time and effort it will take to get it, plus a small amount of time and effort to translate it into the executable form once we have obtained it."
Bildlich stelle ich mir das so vor:
Die Kosten, die die Entwicklung eines neuen Systems verursacht, teilen sich also irgendwie auf in Wissen zusammentragen (man könnte das auch "Lernen" nennen) und das Wissen in ein lauffähiges, qualitativ brauchbares System zu bringen, also Transformation+Verifikation.
Das Bild gibt nur ein Gefühl für die Verteilung der Kosten, und soll nichts darüber sagen, wann oder in welcher Reihenfolge diese Kosten entstehen.
Wie ändern sich die Kosten bei Offshore-Entwicklung?
In den vergangenen zehn Jahren habe ich persönlich mehrere Versuche gesehen, den
Teil Transformation+Verifikation durch ein bestimmtes Modell der
Software-Entwicklung bzgl. Kosten zu drücken. Das Modell sieht vor, mit dem
Kunden on-site eine Systemspezifikation zu erarbeiten, die an ein off-shore
Team, dessen Mitarbeiter deutlich weniger pro Stunde kosten, übergeben wird.
Durch die Notwendigkeit, das komplexe Wissen zu dem neuen System trotz
sprachlicher und kultureller Barrieren, räumlicher Verteilung und
unterschiedlicher Zeitzonen in andere Köpfe zu übertragen, entsteht ein
spürbarer Kosten-Overhead, den es nicht gibt, wenn das Team, das das Wissen
zusammenträgt, auch die Implementierung durchführt.
Ich stelle mir die Kostendarstellung bei Offshore-Entwicklung also so vor:
Die Arbeit des Wissenstransfers wird sowohl von den Niedriglohn-Mitarbeitern als auch von den Hochlohn-Mitarbeitern erledigt. Der Overhead wird geringer, wenn die Mitarbeiter auf beiden Seiten den Prozess mehrfach geübt haben.
Die Schraube, die ingesamt die Kosten senken soll, sitzt bei der Höhe der Kosten pro Personentag. Ich unterstelle hier also, dass die PT-Anzahl die gleiche bleibt, dass also die Produktivität der Niedriglohn-Mitarbeiter der der Hochlohn-Mitarbeiter entspricht.
Ist das eine nachhaltige Kostenreduktion?
Die Preisunterschiede beim Lohn sind nicht zementiert. Wir befinden uns in einem
globalen Markt, und die wachsende Nachfrage führt zu steigenden Preisen auch in
Niedriglohnländern. Das ist schön, weil das den Wohlstand in diesen Ländern
hebt. Doch diese Länder gelten irgendwann nicht mehr als günstig genug, um dort
Software "produzieren" zu lassen, denn der Overhead muss durch den Kostenvorteil
mehr als ausgeglichen werden.
Auftraggeber wenden sich also neuen, billigeren Ländern zu, und dort beginnt das
Lernen in ähnlicher Weise erneut.
Die Energie, die man in die effiziente Umsetzung des Offshore-Modells steckt, verpufft mit der Zeit teilweise. Das kann man nicht als nachhaltig bezeichnen.
Und was ist dann nachhaltig?
Was wäre, wenn man diese Energie einsetzte, um die Software-Entwicklung
insgesamt effizienter zu machen? Es gibt viele Beweise, dass sich das lohnt:
- Moderne Programmiersprachen erhöhen die Ausdruckstärke und Abstraktionsfähigkeit im Vergleich zu maschinennahen Sprachen: mit weniger Zeilen wird der Maschine mehr mitgeteilt.
- Mit Werkzeugen wie Continuous Integration und automatisierten Tests lassen sich mühselige Prozesse der Qualitätssicherung viel kostenkünstiger zum Leben zu erwecken.
- Modellgetriebene Ansätze der Software-Entwicklung erzeugen aus dem in Modellen hinterlegten Wissen der Fachleute direkt ein ausführbares System.
- Eine Veränderung der Teamkultur, Technologien und Software-Prozesse, so dass die Feedbackzyklen kürzer werden und weniger Arbeit in die falsche Richtung geht, findet unter dem Schlagwort "agile Softwareentwicklung" statt.
All das gibt es schon heute, und es könnte durch verstärktes Nachdenken in der Zukunft noch weit besser werden. Doch große IT-Dienstleister investieren viel Geld und Aufmerksamkeit in Offshore-Entwicklung. Was wäre, wenn diese Ressourcen in eine andere Richtung gelenkt würden?
Irren sich denn die IT-Dienstleister alle miteinander?
Es kommt auf den Zeithorizont an, mit dem man sich die Geschichte ansieht.
Obwohl ich selbst bisher nicht das Glück hatte, eine effiziente
Offshore-Entwicklung mit guten Ergebnissen zu sehen, kann ich mir trotzdem
vorstellen, dass das mit Übung -- also anfänglicher Investition in dieses Modell
-- gelingen kann. Mittelfristig ergibt sich so vielleicht ein Kostenvorteil,
kurzfristig nicht.
Damit sich das langfristig lohnt, müsste der Preisunterschied dauerhaft etwa gleich hoch bleiben. Das widerspricht aber allen Gesetzen der freien Marktwirtschaft. Auf Dauer wird der Kostenvorteil dahinschmelzen und damit auch der Gewinn.
Ich kann mir also erklären, dass IT-Dienstleister auf dieses Pferd setzen, um mittelfristig Kostenvorteile zu erhalten und Gewinne zu erhöhen. Um langfristig effizienter Software zu entwickeln als die Konkurrenz, ist es aber eine Investition in die falsche Idee.