Der Algorithmus Grundgesetz

In der Hitze politischer Diskussionen bekommt man hin und wieder Antworten entgegen geworfen, die ganz neue und interessante Gedanken hervorbringen. Kürzlich durfte ich mir anhören, es wäre die autistische Ansicht eines Nerds, so wäre nicht das Leben.

Ich fragte mich also, was befähigt z.B. einen Journalisten besser dazu, über die Verfassung zu diskutieren, als einen Software Entwickler. Den autistischen Nerd hatte ich verworfen, ich wollte lieber die Lanze für Menschen meines Schlages brechen.

Journalisten, die nach längerer Ausbildung in der Lage sind, anhand einiger Regeln die suggestive und manipulative Kraft von Geschichten einzudämmen oder bisweilen gezielt einzusetzen, können Sachverhalte gut transportieren, aber vielleicht schlecht begreifen.

Was sieht denn nun ein Software Entwickler, ein Programmierer, der auf unser Grundgesetz blickt. Er sieht erst einmal einen gigantischen Algorithmus, eine Ansammlung vieler Regeln, die das Funktionieren unserer Staates sicherstellen. Unser Staat als große Maschine, die auf immer neuen Input mit verlässlichen Output reagieren muss.

Ein Entwickler ist erst einmal nicht überrascht, wenn hin und wieder das Programm unerwartete Ergebnisse liefert. Je größer und komplexer, desto wahrscheinlich ist es, dass unsere Geschöpfe ein scheinbares Eigenleben entwickeln. Aber bei genauer Betrachtung erkennt er dann schnell, dass es sich doch um korrekte Ergebnisse handelt, es wurden halt ein paar Details in den Rechenregeln übersehen. Je länger ein Programm läuft, je mehr Input es verarbeitet hat, um so sicherer können die Entwickler sein, dass kaum noch Fehler im Programm sind. Ein dunkler Punkt in unserer Profession ist es, immer auf den nächsten Fehler zu warten, ohne je den letzten Fehler zu kennen. Schon hier sieht man, wie tief ein Software Entwickler im Leben verwurzelt ist.

Die Autoren unserer Verfassung haben ein tollen Programm geschrieben, dass seit Jahrzehnten läuft und bei unterschiedlichsten Rahmenbedingungen wie Kalter Krieg, Öl-Schock, Friedensbewegung, Entspannungspolitik, Olympia-Terror, Flüchtlinge, Wiedervereinigung gezeigt hat, dass es funktioniert. Hin und wieder gibt es auch hier Menschen, die Fehler ausgemacht haben wollen. Dann gibt es hysterische Hinweise, das unter einer bestimmten Bedingung etwas passiert, das so doch gar nicht gewollt sein konnte.

Programmierer kennen solche Diskussionen, die fernab wirklicher Programmfehler geführt werden. Ein Programmfehler erzeugt eine falsche Berechnung, der Verlauf der Verarbeitung wird extrem, die Ergebnisse bizarr und manchmal verursacht er sogar einen Absturz. All das haben wir in unserem Land noch nicht erlebt, es gab keinen Staatsstreich, keine Revolution, stattdessen hitzige Debatten, unterschiedliche Ausrichtungen der Politik und hin und wieder neue Ansätze grundlegende Probleme zu bekämpfen.

Benutzer die unerwartete Ergebnisse bekommen, erklären bisweilen den Programmierern, wo und wie das Programm ihrer Meinung nach einen Fehler macht. Das sind sehr eigenartige Momente für einen Programmierer, steht er doch jemanden gegenüber, der ihm zum einen klar macht, keinerlei Ahnung von Computern zu haben und andererseits Mechanismen erklärt, die nicht existieren. Der Programmierer muss es wissen, er schrieb das Programm. Häufig reicht es für den Entwickler aus, dem Benutzer zu erklären, warum er dieses Ergebnis bekommt. Manchmal versteht der Benutzer den vollen Umfang der Software nicht und manchmal gibt er schlicht falsche Daten ein.

So ist es auch mit dem Programm für einen Staat, manche Regeln sind in ihrer Tragweite nicht sofort erkennbar, Szenarien die Politiker oder Bürger geklärt haben wollen führen für sie zu unerwarteten und unbefriedigenden Ergebnissen. Egal ob es sich um den Abschuss einer Linienmaschine, den Ruf eines Muezzins oder eines Kruzifix im Klassenzimmer handelt.

Dennoch beharren Benutzer und Bürger immer wieder darauf, dass in solchen Fällen Handlungsbedarf besteht und der Entwickler wird mit einem Bugfix betraut. Für den Benutzer sieht es in der Regel nach einer Kleinigkeit aus, die schnell gemacht ist und dann läuft wieder alles, so wie er es gerne hätte. Der Software Entwickler steht nun aber vor der Aufgabe in einer komplexen Maschinerie einige Teile so zu ändern, dass weiterhin die Maschine in allen Bereichen so weiterarbeitet wie bisher, dass alle Regeln weiterhin harmonisch miteinander funktionieren, ein Orchester das weiterhin wundervolle Musik spielt, obwohl man einige Instrumente ausgetauscht hat.

Während der Bürger sich also noch fragt, warum er nicht einfach die Burka verbieten kann, muss der Verfassungsrechtler alle Normen miteinander abwägen.

Der Software Entwickler muss alle Randbedingungen der Berechnung prüfen, mögliche Datenflußänderungen einkalkulieren und für die Änderungen die Best-Case aber insbesondere natürlich alle Worst-Case Szenarien überprüfen. Hunderte von Test müssen durchlaufen werden, um zu prüfen, ob das Programm weiterhin funktioniert. Der schlimmste Bugfix ist der, der neue Fehler erzeugt. Programmierer wirken manchmal wie Pessimisten, weil sie genau wissen, was alles schief gehen kann.

Wann werden die Tests für eine Verfassung durchlaufen? Jeden Tag finden die kleinen Tests stand, im alltäglichen Leben, in der Politik, in der Gesetzgebung und in der Justiz. Große Tests fanden auch statt, die führten dazu, dass wir mittlerweile diese Version einer Verfassung haben, die wir Grundgesetz nennen. Wir kennen jetzt eine Menge von Regeln, die Invarianten sind, die fester Bestandteil einer Verfassung sein müssen, egal zu welchen unerwarteten Ergebnissen sie führen. Es gibt aber auch Regeln von denen wir wissen, dass sie nie wieder in eine Verfassung aufgenommen werden dürfen. Sie führten in früheren Versionen zu Programmabstürzen.

Wir Softwareentwickler können es häufig den Benutzern nicht gut erklären, warum sein Programm so ist, wie es ist. Aber wir haben die Fähigkeit komplexe Systeme in ihrer Dynamik zu verstehen und zu pflegen.

Version: 1.0.0