Blog

Die Komplexitätskurve: Wir alle machen sie durch

Serge Beaumont

Aktualisiert Oktober 23, 2025
3 Minuten
Im Laufe der Jahre habe ich einen Zusammenhang zwischen Erfahrung und der Komplexität der von uns produzierten Software festgestellt. Es gibt drei Phasen. Am Anfang wissen Sie nicht viel, also erstellen Sie einfache Dinge: Sie wissen einfach nicht , wie man komplexe Dinge macht. In der zweiten Phase lernen Sie Techniken, mit denen Sie komplexe Probleme angehen können (Muster, Muster überall!). In der zweiten Phase wenden Sie jeden Trick an, den Sie kennen, weil Sie es können. Die letzte Phase besteht darin, dass Sie wissen, wann Sie fortgeschrittene und komplexe Techniken nicht anwenden sollten, weil die Heilung schlimmer wäre als das Problem. Komplexität_vs_Erfahrung.gifDas Ergebnis ist eine Kurve wie die rechts abgebildete: Die Komplexität von Software steigt mit der Erfahrung und sinkt dann wieder. Eine weitere Veranschaulichung dieser Idee finden Sie hier: Hello World Joke. Obwohl es sich hierbei nicht gerade um Raketenwissenschaft handelt, ist es ein nettes kleines Modell, das erklärt, was es bedeutet, pragmatisch zu sein. Der Unterschied zwischen der zweiten und dritten Phase ist die Fähigkeit, Wissen in einem bestimmten Kontext anzuwenden. Ein Beispiel: In der zweiten Phase haben Sie das Muster der abstrakten Fabrik kennengelernt und wenden es ständig an, weil es gut ist, das Wissen über die schöpferische Logik zu verstecken. In der dritten Phase erkennen Sie die Fälle, in denen eine ausgewachsene abstrakte Fabrik zu viel des Guten ist und eine einfache Fabrikmethode mit einer if..else if... Anweisung vollkommen akzeptabel ist, oder in denen Sie eine Instanz einfach direkt mit einem konkreten Konstruktor erstellen können. Ich habe festgestellt, dass in einigen Unternehmenskulturen Komplexität verehrt wird. Ich habe einmal in einem Unternehmen gearbeitet, das sich auf UML-Modellierung für das Bankwesen spezialisiert hatte und in dem die Komplexität der Modelle, die sie erstellen konnten, den Rang unter den Designern einnahm. Die Folge war, dass sie übermäßig komplexe Modelle erstellten, die sie selbst kaum verstehen konnten. Ihre Unternehmenskultur hielt alle in der zweiten Phase, dicht an der Spitze der Komplexitätskurve. Es gibt ein sehr interessantes Modell namens Dreyfus-Modell, das Parallelen zu dieser Idee aufweist. Es befasst sich mit den Unterschieden zwischen fünf Lernstufen, vom Anfänger bis zum Experten. Die Pragmatic Programmers haben darüber einen Vortrag (und einen Blogbeitrag) auf No Fluff Just Stuff gehalten, und Dave wurde in einem Agile Toolkit Podcast dazu interviewt. Es gibt eine PDF-Zusammenfassung des Modells. Ein Experte zu sein bedeutet nicht nur, zu wissen , wie es geht, sondern auch, zu wissen, wann es nicht geht.

Verfasst von

Serge Beaumont

Contact

Let’s discuss how we can support your journey.