Die Sprache des Programmierers

Wirklich sehr vielen Leuten fällt es schwer, mit Programmierern zu sprechen. Glauben Sie mir, damit stehen Sie nicht alleine da! Missverständnisse sorgen oft für Frust und gegenseitige Beschuldigungen. Dadurch laufen Projekte schlecht und die Stimmung im Team ist vergiftet. Es scheint fast so, als würde man in unterschiedlichen Welten leben und unterschiedliche Realitäten wahrnehmen. Aber woher kommt das? Sprechen wir nicht alle Deutsch (bzw. Englisch)? Und wer missversteht eigentlich wen?

Sprache ist ein Werkzeug

Fakt ist, Software-Entwickler und Manager sprechen nicht die gleiche Sprache. Genau genommen sprechen wir alle kein normales Deutsch. Jeder Beruf bringt es mit sich, dass sich auch eine fachspezifische Ausdrucksweise entwickelt. Vertrieb und Marketing beispielsweise besitzen ihre Buzzwords und versuchen, selbstbewusst Wertigkeit und Emotionen zu erzeugen. Sie müssen ein Produkt verkaufen und brauchen dazu dehnbare Formulierungen, die oftmals Auslegungssache sind. Sprachlich sind sie sehr durchsetzungsfähig. Das alles ist nicht als Vorwurf gemeint, es gehört einfach zum Beruf dazu. Projektleiter hingegen brauchen Einfühlungsvermögen, denn sie müssen es allen Recht machen. Ihre Aufgabe ist es, die Wahrheit sachlich, aber so gut es geht zu verpacken – gegenüber Entwicklern, Testern, Vertrieb, Kunden und der Firmenleitung. Wichtig hierbei ist es, Perspektiven aufzuzeigen und das Team zu motivieren. Trotzdem müssen auch sie sich durchsetzen können und den Eindruck erzeugen, zu wissen wohin die Reise geht.

Der Programmierer spricht nicht, er sagt ein Skript auf

Auch der Informatiker hat so seine eigene Sprache. Der wichtige Unterschied ist aber, dass er mit Maschinen reden muss, nicht mit Leuten. Während zwischenmenschliche Kommunikation heutzutage wie selbstverständlich zur Ausbildung von Projekt-Managern, Verkäufern, Marketing, Supportlern und Personalern gehört, ist das beim Programmierer ganz und gar nicht der Fall. Sein Beruf ist offiziell darauf beschränkt, seine Gedanken nur Computern klar zu machen. Natürlich witzelt man, dass der Informatiker selber wie eine Maschine redet und keine Emotionen kennt, allerdings steckt nun einmal ein Körnchen Wahrheit darin. Man sollte es dem Programmierer jedoch auch nicht zum Vorwurf machen, denn er steckt einfach zu sehr drin – und das ist auch gut so! Programmierer bzw. Informatiker wird man nicht von Heute auf Morgen. Man muss sich jahrelang mit der Materie auseinander setzen. Viele fangen sogar schon in ihrer Kindheit an, zu coden. Dadurch verinnerlicht man Formulierungen der Programmiersprache. Es ist eben auch wichtig, dass man diese Form des Ausdrucks sauber und strikt beherrscht, denn eine Maschine versteht nun einmal keine Ironie, keinen Sarkasmus und keine freie Auslegung. Der Computer sagt nicht „Hm, das meint er sicher nicht ganz so wie er es schreibt. Ich mache das mal anders.“. Gerade beim Programmieren ist es entscheidend, dass der Rechner eins-zu-eins das macht, was man ihm hinwirft. Der Codierer braucht die volle Kontrolle und der Computer muss verlässlich sein. Mit der Zeit lernt der Software-Entwickler als Mensch die Vorteile des Codes als Alltagssprache kennen: Sie ist eindeutig und gerade deswegen eigentlich resistent gegen Missverständnisse. Außerdem kann man sich sehr kurz fassen und trotzdem viel sagen – das spart Zeit und Atem!

Wie ist denn jetzt die Sprache der Programmierer?

Die Informatik ist ein Teilbereich der Mathematik. Moment, bitte nicht abschalten, es wird nicht so trocken, versprochen! Der Kern besteht also nicht aus der Technik wie Prozessoren, Festplatten und Strom und so weiter, sondern aus der Daten- und Informationsverarbeitung. Für viele scheint sehr gewöhnungsbedürftig zu sein, dass der Informatiker theoretisch auch mit Stift und Papier arbeiten könnte. Darum ist er auch nicht der „Computer-Fritze“, sondern der „Daten-Fritze“. Der Rechner (Ha, da ist wieder so ein mathematisches Wort!) ist einfach nur ein Mittel zum Zweck – ein Werkzeug. Dieses Werkzeug rechnet die Aufgaben des Informatikers einfach nur sehr viel schneller als er es selber könnte. Die Datenverarbeitung geschieht dabei selten mit der Mathematik, die wir aus der Schule kennen (Stichwort „4x – 2y = 14“), sondern eher mit Hilfe der Logik, einem anderen Teilbereich der Mathematik. Jetzt werden Sie vielleicht denken, dass Logik nichts exotisches ist und sie eigentlich jeder beherrscht. Lassen Sie sich gesagt sein, dass Logik eine eigene Vorlesung im Informatik-Studium ist und genug Unterrichtsstoff mit sich bringt. So einfach ist das alles nämlich nicht und wer denkt, etwas über Logik zu wissen, wird gleich eines Besseren belehrt!

Beispiele aus der Logik

Es gibt natürlich auch in der Logik sehr viele Unterteilungen, aber ich will Sie lieber damit verschonen. Belassen wir es bei einfachen, jedoch nicht minder beeindruckenden Beispielen.

Was ist das Gegenteil von „groß“?

„Klein“ wäre hier die falsche Antwort. Der Logiker würde selbstverständlich antworten „Nicht groß“. Immer, wenn man das Gegenteil von etwas möchte, macht man ein „nicht“ davor. Und wenn man etwas darüber nachdenkt, dann ist es… logisch. Denn ein Mensch kann zum Beispiel weder groß noch klein sein, sondern so mittel. Wenn er also „nicht groß“ ist, bedeutet es nicht gleich, dass er „klein“ ist.

Welche gegenteilige Aussage kann man aus „Es hat geregnet, also ist die Straße nass.“ ableiten?

Jetzt wird es schon etwas knackiger: Implikationen. Gerade beim Programmieren haben wir oft Wann-Dann-Formulierungen. „Wenn eine Datei im Ordner ist, dann soll sie geöffnet werden.“ Schauen wir uns mal obige Implikation an. Die gegenteilige Aussage lautet jedoch nicht „Es hat nicht geregnet, also ist die Straße ist nicht nass.“ Na klar, denn wenn ich mit dem Gartenschlauch hantiere, wird die Straße trotzdem nass – logisch. Man muss die Satzteile noch zusätzlich umstellen und verneinen: „Wenn die Straße nicht nass ist, dann hat es also nicht geregnet.“ Jetzt wird ein Schuh draus!

Wenn der Kunde anruft, dann hilf ihm bitte!

Ihr Programmierer wird dem Kunden nicht mehr als einmal helfen. Warum? Nun, er hat Ihren Wunsch erfüllt. Versuchen wir es noch einmal:

Immer wenn der Kunde anruft, dann hilfst du ihm!

Jetzt lässt sich der Programmierer ewig Zeit. Solange er irgendwann hilft, erfüllt er immer noch Ihren Wunsch. Der Befehl muss noch genauer werden:

Immer wenn der Kunde bei dir anruft, dann hilfst du ihm sofort bei seinem Problem!

Ok, wir haben dazugelernt. Wir haben gleich eine viel präzisere Formulierung verwendet. Aber was müssen wir da mit ansehen? Unser Programmierer ruft auch unaufgefordert beim Kunden an, auch wenn dieser keine Probleme hat. Warum? Das haben wir ihm doch gar nicht so gesagt! Tja, genau da liegt der Hase mit dem roten Punkt im Pfeffer oder so. Sie haben eine Option völlig frei gelassen und dem Programmierer damit unerwünschten Spielraum gegeben. Wo andere Menschen zwischen den Zeilen lesen, bleibt der Codierer stets auf dieser. Es gibt aber eine Lösung dafür:

Genau dann, wenn der Kunde bei dir anruft, hilfst du ihm sofort bei seinem Problem.

Ich hoffe, dass dadurch deutlich wird, wie ungenau unsere Alltagssprache eigentlich ist. Es ist – aus der Sicht des Informatikers – ein Wunder, dass wir mit der normalen Sprache überhaupt so gut kommunizieren können. Ein weiteres gutes Beispiel ist das kleine Wort „oder“.

Möchtest du Schoko- oder Vanille-Eis?

Ein Programmierer, der es darauf anlegt, wird Ihnen mit „Ja!“ antworten. In der Logik bedeutet „oder“ stets „und/oder“ (auf Englisch „or“). Wenn er also Schokoeis, Vanilleeis oder sogar beides möchte, dann ist die Aussage erfüllt, der Programmierer kann mit „ja“ bzw. „wahr“ (auf Englisch „true“) antworten. Möchten Sie ihn vor die Wahl stellen, dann brauchen Sie ein „entweder/oder“ (auf Englisch „exclusive or“, kurz „xor“). Sie müssen also fragen:

Möchtest du entweder Schoko- oder Vanille-Eis?

Und wenn der Programmierer mit „Ja!“ antwortet muss eine zweite Frage hinterher:

Möchtest du Schoko-Eis?

Wenn jetzt ein „Ja!“ kommt, dann ist die Sache klar. Falls ein „Nein!“ kommt, dann muss er ein Vanilleeis haben wollen, weil er ja genau eine der beiden Sorten möchte und wenn es nicht Schokolade ist…

Was kann ich jetzt machen, damit der Programmierer mich besser versteht?

Bestimmt werden Sie nicht auf die Schnelle lernen, so richtig logisch zu sprechen. Das bedarf leider viel Übung und Erfahrung. Versuchen Sie für den Anfang genau zu spezifizieren, was sie wollen. Sie können auch mit – aus Ihren Augen – übertrieben genauen Formulierungen arbeiten, das ist besser als nichts. Wichtig ist, dass sie auch ganz genau erklären, was Sie nicht möchten. Keine auch nur so kleine Möglichkeit soll unberücksichtigt bleiben und kein Bereich des Themas darf verborgen oder undefiniert sein. Erinnern Sie sich daran wie kleine Kinder sprachliche Spitzfindigkeiten für sich nutzen, um Erwachsene zu ärgern. Bei Codierern ist das hingegen nicht als Provokation gemeint, sondern schlichtweg Hilflosigkeit, weil Ihr Wille unklar ist. Der Programmierer interpretiert nämlich nicht, sondern sieht einfach nur die Fülle an Möglichkeiten und ist überfordert, weil er nicht weiß, welchen Weg er gehen soll. Mit der Zeit werden Sie sich bestimmt an das Formulieren sauberer Sätze gewöhnen – na logisch!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.