Softwareentwicklung und zerbrochene Fensterscheiben
Irgendwann vor ein paar Tagen hat jemand zwei Straßenecken weiter einen Einkaufskorb mit Kabelbinder an einem Schild befestigt. Mittlerweile wird der Korb als Müllbehälter benutzt, und kaputte Stühle wurden auch daneben abgestellt ("für Bastler"), die wieder weg sind. Das ganze ist eine wunderbar anschauliche Variante der Broken-Windows-Theorie.
Diese Theorie besagt, dass z. B. eine zerbrochene Fensterscheibe ausreicht, um weitere Zerstörung und Verwahrlosung zu fördern und beschleunigen. Das kaputte Fenster sollte schleunigst repariert werden, um Schlimmeres zu verhindern.
Umgeben von Hässlichem
Das Phänomen ist auch bei der Softwareentwicklung zu beobachten. Aufgabe jedes Entwicklers muss sein, lesbaren und wartbaren Programmcode zu hinterlassen. Code kann aber mit der Zeit verwahrlosen -- vor allem, wenn er immer wieder unregelmäßig, unter hohem Zeitdruck und ohne die nötige Sorgfalt geändert wird (womöglich noch von unterschiedlichen Personen). Dazu genügt es, kleine Stellen im Programm unsauber zu hinterlassen.
Der entsprechende Artikel im C2-Wiki fasst das so zusammen:
When you're surrounded by ugly things, your attitude and outlook change. You become pessimistic, and your expectations are lowered. Soon you start accepting that "that's just how things are." You start producing ugly things yourself.
Verhindern kann das, wer Software sorgfältig entwickelt, und dabei problematische Stellen gleich verbessert oder wenigstens als solche markiert.
Menschen respektieren gut gepflegte Dinge
Häufig hilft es dabei, das zu lösende Problem nicht isoliert zu sehen, sondern im Kontext: Passt die jetzige Lösung in die Umgebung oder muss ich noch mehr anpassen? Macht meine Lösung etwas anderes überflüssig? Kann jemand, der von dem Problem noch nichts weiß, ohne Erklärung erkennen, was mein Code tut? (Strukturelle Verbesserungen von Programmcode werden im Artikel zu Refactoring behandelt.)
Wenn beim Blick auf den Programmcode grobe Schnitzer auffallen, gebe ich mir weniger Mühe. Wenn der Programmcode dagegen einen gut durchdachten und sorgfältig gepflegten Eindruck macht, werde ich das bei meinen Änderungen berücksichtigen und mir mehr Mühe geben.
Das ist insbesondere dann wichtig, wenn man als Entwickler auf Unterstützung aus ist.
Also: Repariere zerbrochene Fenster schnell.