Occam’s Razor (auf Deutsch: Ockhams Rasiermesser) ist eines der nützlichsten Denkmuster, die du dir als Entwickler in die Werkzeugkiste legen kannst – besonders im Zeitalter von KI-generiertem Code.
Das Prinzip geht auf den Franziskanermönch und Philosophen Wilhelm von Ockham (14. Jahrhundert) zurück. Seine Kernaussage im lateinischen Original lautet:
“Pluralitas non est ponenda sine necessitate.” (Vielfalt sollte nicht ohne Notwendigkeit angenommen werden.)
Auf modernes Software-Engineering heruntergebrochen bedeutet das: Von mehreren möglichen Erklärungen oder Lösungen für dasselbe Problem ist die einfachste oft die beste.
Warum heißt es “Rasiermesser”?
Der Begriff ist eine Metapher: Das Prinzip dient dazu, alle unnötigen Annahmen, Variablen, Abstraktionen und “Was-wäre-wenn”-Szenarien aus einer Lösung rasiermesserscharf wegzuschneiden, bis nur noch der essenzielle Kern übrig bleibt.
Occam’s Razor im klassischen Code vs. KI-Code
| Kontext | Menschliches Over-Engineering | KI-Over-Engineering |
|---|---|---|
| Die Ursache | Der Drang, für die Zukunft zu bauen. Man baut Interfaces, Vererbungshierarchien und Microservices, weil das System “irgendwann mal wachsen könnte” (YAGNI – You Aren’t Gonna Need It). | Angst vor Fehlern im Jetzt. Das Modell versteht den Kontext nicht wie ein Mensch und wählt die mathematisch “sicherste” Schablone, um Corner Cases abzufangen, die in deiner Realität gar nicht existieren. |
| Das Resultat | Riesige Klassen-Strukturen, die schwer zu refactoren sind. | Defensiver Code-Bloat (wie das useState-Beispiel) und redundante if-else-Prüfungen an jeder Ecke. |
Wie wendet man es in der Praxis an?
Wenn du Code reviewst – egal ob von einem Menschen oder einem LLM –, kannst du dir drei Fragen stellen, um das Rasiermesser anzusetzen:
- Löst die einfachere Variante das Problem vollständig? Wenn
setVisibleNodeId(nodeId)genau denselben Effekt erzielt wie die funktionale Prüfung, schneide die Funktion weg. - Fügt diese Abstraktion gerade echten Wert hinzu? Brauchst du dieses Interface oder diese Helper-Funktion jetzt im Moment für dieses Feature, oder ist es nur mentale Vorarbeit für ein “Vielleicht”?
- Nutze ich das Framework aus? Frameworks wie React oder Next.js nehmen uns verdammt viel Arbeit ab. Wer versucht, deren interne Logik (wie Performance-Optimierungen) im eigenen Code nachzubauen, verstößt direkt gegen Occam’s Razor.
Fazit
In einer Welt, in der KI uns in Sekundenschnelle hunderte Zeilen Code generieren kann, verschiebt sich die Rolle des Entwicklers. Wir sind immer weniger “Schreiber” und immer mehr Kurator und Zensor.
Occam’s Razor ist das perfekte Werkzeug für diese neue Rolle. Es erinnert uns daran, dass exzellenter Code nicht dadurch entsteht, dass man nichts mehr hinzuzufügen hat, sondern wenn man nichts mehr weglassen kann.