Lohnt es sich, die im Code verwendeten Begriffe und Verben in der Muttersprache statt in Englisch zu formulieren? Diese Frage stellen sich Teams in unserer Firma immer wieder. Ich glaube, es lohnt sich! Man sollte so viel wie möglich in der Fachsprache formulieren, und die ist meist Deutsch. Und man sollte keinen Kompromiss machen, d.h. nicht nur eine Auswahl an Fachbegriffen erhalten und den Rest ins Englische übersetzen.
Code muss kommunizieren
Code muss kommunizieren, was er tut, denn Code wird nur einmal geschrieben, aber 1000fach gelesen. Je eindeutiger die verwendeten Begriffe und Verben der Domänensprache zugeordnet sind, desto besser lässt sich der Code lesen und verstehen.
Eines der Kernthemen von DomainDrivenDesign (DDD), die „ubiquitous language“, betont die Verwendung der gleichen Sprache im Code wie im Gespräch mit den FachexpertInnen. Eine universell verwendete Sprache verringert die Gefahren von semantischen Brüchen in der Kommunikation zwischen Code, EntwicklerIn und FachexpertIn. Diese Brüche kosten Zeit.
Von agilen Softwareteams wird ein gutes Verständnis der Fachlichkeit und eine Beteiligung an Innovation gefordert. Das verstärkt die Probleme der semantischen Brüche in der Kommunikation.
Ubiquitous language nicht in Englisch?
Die DDD-Bücher von Eric Evans und Vaughn Vernon betonen mit dem Konzept der „ubiquitous language“ die Bedeutung von Sprache in der Softwareentwicklung. Leider sagen die Autoren nichts zu den Auswirkungen, wenn Fachbegriffe in einer nicht-englischen Sprache formuliert und mit englischer Programmiersprache gemischt werden („getVorname“ oder "if (vorname.isEmpty())"). Das liegt sicher daran, dass beide Autoren englische Muttersprachler sind und Englisch sich als Geschäftssprache vieler international agierender Unternehmen durchgesetzt hat. Damit ist Englisch häufig auch die verwendete Sprache bei der Programmierung.
Kommunikationsverlust durch Übersetzung
Will man rein englischen Code erzeugen, muss man die Fachsprache der jeweiligen Domänen ins Englische übersetzen. Meine Erfahrung ist, dass eine Übersetzung der Fachbegriffe ins Englische Verluste in der Kommunikation mit sich bringt, die dauerhaft bestehen bleiben. Diese Verluste sind deutlich größer als die Reibung durch die Mischung der englischen Programmiersprache mit der muttersprachlichen Fachsprache („Denglisch“), die nach meiner Erfahrung lediglich ungewohnt ist, wenn man mit diesem Ansatz beginnt.
Der Kontextverlust durch übersetzte Fachsprache bedeutet einen kontinuierlichen Zeitverlust, da der Verlust der Präzision in der Kommunikation immer wieder anfällt. D.h. meiner Meinung nach lohnt es sich, in der Muttersprache fachlich zu coden, da das Resultat ein kontinuierlicher Qualitätsgewinn (=Zeitgewinn) in der Kommunikation ist. Auch wenn sich die Vermischung von zwei Sprachen („Denglisch“) ungewohnt anfühlt.
Internationale Entwickelnde
Ein Spannungsfeld entsteht dann, wenn man als deutschsprachiges Unternehmen international rekrutieren möchte. Internationale Entwickelnde erwarten meistens Englisch als Projektsprache. Es stellt sich die Frage, ob eine Übersetzung des Codes ins Englische und der damit verbundene Kommunikationsverlust sich auszahlt. Internationale Entwickelnde haben eine Hürde vor sich, wenn sie Deutsch lernen müssen, oder wenn sie deutschsprachigen Code lesen lernen müssen. Mit englischen Übersetzungen geschriebener Code würde solchen Entwickelnden den Einstieg in ein Projekt erleichtern. Aber wenn die Unternehmenssprache weiterhin Deutsch bliebe, stellt sich die Frage, wie solche Entwickelnde sinnvoll in einem agilen Team arbeiten können sollen.
Ein Team kann sich entscheiden, intern auf Englisch zu kommunizieren, aber wenn außerhalb des Teams Deutsch gesprochen wird, ist die Kommunikation zwischen dem Team und dem Rest des Unternehmens mit hohen Verlusten verbunden.
Wann stellt sich die Frage der Wahl der Sprache nicht?
Für englischsprachige Unternehmen stellt sich die Frage der Sprachwahl nicht.
Häufig kaufen Unternehmen proprietäre Softwareprodukte, die bereits eine eigene Fachsprache mitbringen. Dann stellt sich die Frage ebenfalls nicht.
Deutschsprachige Unternehmen sollten deutsch entwickeln (lassen)
Ich empfehle deutschsprachigen Unternehmen, im Code die im Unternehmen gesprochene Fachsprache zu verwenden und auch bei internationalem Rekrutieren darauf zu setzen, dass die Entwickelnden die gesprochene Fachsprache (und damit in großen Teilen Deutsch) in jedem Fall erlernen müssen, um in agilen crossfunctional Teams den Kommunikationsbedürfnissen gerecht werden zu können.