15. April 2026

Orthogonal arbeiten: Wer alles anfasst, macht alles kaputt

In der Theorie klingt OrthogonalitĂ€t simpel: Zwei Dinge sind orthogonal, wenn Änderungen am einen das andere nicht beeinflussen. In der Praxis der Softwareentwicklung ist das oft das erste Prinzip, das fĂŒr "schnelle Ergebnisse" geopfert wird. Das Ergebnis ist dann kein Werkzeug, sondern ein KnĂ€uel aus AbhĂ€ngigkeiten.

Die Illusion der AbkĂŒrzung

HĂ€ufig wird Code so geschrieben, dass er "praktisch" ist – ein globaler Zustand hier, eine kleine Querbeziehung da. Man spart sich im Moment drei Zeilen Code oder eine saubere Schnittstelle. Aber sobald man an Komponente A schraubt, fliegt einem Komponente B um die Ohren, die eigentlich gar nichts damit zu tun haben sollte. Das ist das Gegenteil von orthogonalem Arbeiten.

Wer orthogonal arbeitet, akzeptiert den initialen Mehraufwand fĂŒr klare Trennungen. Das Ziel ist, dass ein Feature oder ein Bugfix eine lokale Angelegenheit bleibt.

Beispiele aus der Praxis

Ein gutes System zeigt diese Trennung in seiner Architektur:

  1. Rendering vs. Picking: Wie in meiner aktuellen Engine umgesetzt, sollte das Sichtbare vom Auswertbaren getrennt sein. Ein eigener Picking-Pass sorgt dafĂŒr, dass die grafische Finesse keine Auswirkung auf die Treffsicherheit der Maus hat.
  2. Shader-Logik: Statt fĂŒr jedes Backend manuell zu frickeln, nutzt man einen zentralen Pfad und moderne Shader-Compiler. Die Host-Seite bleibt von der GPU-Logik (GLSL) komplett getrennt.
  3. Zustand und UI: Hintergrundarbeit gehört in eigene Threads, damit die UI nicht stottert. Sobald sich die Berechnung in den UI-Takt frisst, ist die OrthogonalitÀt verloren.

Warum das wichtig ist

Wenn man nicht orthogonal arbeitet, steigt die kognitive Last exponentiell an. Man kann sich nicht mehr auf eine Sache konzentrieren, sondern muss das gesamte System im Kopf behalten, um keine Lawine an Fehlern auszulösen.

OrthogonalitĂ€t bedeutet Respekt vor der eigenen Zeit und der Zeit derer, die den Code spĂ€ter lesen mĂŒssen. Es geht darum, Verantwortung fĂŒr die Folgen einer Änderung zu ĂŒbernehmen. Wer behauptet, "schnell fertig" zu sein, indem er alles mit allem verheiratet, lĂŒgt sich selbst in die Tasche. Echte Effizienz entsteht durch UnabhĂ€ngigkeit.