Was hat Softwareentwicklung mit Wohnungseinrichtung zu tun?

Vielleicht geht's dir wie mir, und in deiner Wohnung verändert sich ständig etwas.

Neue Bilder werden an die Wand gehängt, der Kalender ist dieses Jahr mal im Querformat, neue Bücher brauchen Platz, und alter Kram fliegt raus.

[caption id="attachment_4496" align="aligncenter" width="420" caption="Foto: Leipzig, Messe, Musterwohnzimmer 1950 von Herbert Blunck, Bundesarchiv (Lizenz: CC-BY-SA)"]Foto: Musterwohnzimmer, Leipziger Frühjahrsmesse 1950[/caption]

Wohnungen verändern sich also ständig. Und jedesmal, wenn eine Neuanschaffung (egal welcher Größe) ansteht, müssen immer die gleichen Fragen geklärt werden:

  • Wohin damit?
  • Reicht der Platz aus oder müssen wir Dinge umräumen oder entsorgen?
  • Brauchen wir das wirklich noch?

Überraschung! Das gilt auch für Software

Beim Entwickeln von Software ist das nicht anders, weil sich auch Software ständig ändert. Nur wird es da unter dem Begriff Refactoring zusammengefasst: Das Umstrukturieren von Programmcode, um ihn an neue Gegebenheiten anzupassen.

Das können neue Features (oder auch das Abrüsten alter), die Umstellung der Architektur oder die Einführung einer neuen Technologie sein.

Für die Methodik ist das unerheblich. Die Fragen bleiben dabei dieselben:

  • Wohin damit?
  • Reicht der Platz aus? Müssen dafür Dinge umgeräumt oder entsorgt werden?
  • Brauchen wir diesen Teil wirklich noch?

Mangelndes Refactoring rächt sich früher oder später

Im Artikel über die Broken-Windows-Theorie hatte ich schon geschrieben, dass Software gut gepflegt sein will.

Warum? Um dem Verfall vorzubeugen. Um den Bestand zu sichern. Um die Weiterentwicklung zu ermöglichen.

Sonst gerät Software in eine Sackgasse: Sie kann nicht mehr aktuell gehalten werden, weil sie von uralter Technologie abhängt. Oder einfach unübersichtlich wird. Die Lernkurve für Weiterentwicklung ist dann so steil, dass der Aufwand zur Einarbeitung wirtschaftlich einer Neuentwicklung gleichkäme. Weil der einzige, der sich noch damit auskennen würde, vor Monaten das Unternehmen verlassen hat.

Keine einmalige Sache

Das Wichtigste am Refactoring ist die Einsicht, dass es nicht einmal oder regelmäßig gemacht wird, sondern ständig.

Refactoring ist ein kontinuierlicher Prozess und umso wichtiger, je größer und komplexer das Projekt wird.

"Hier müsste mal wieder aufgeräumt werden" ist also der falsche Ansatz. Der große Fernseher wird schließlich auch nicht erst ausgepackt und hingestellt, und dann der Platz für ihn geschafft.

Endstation Chaos

Wie würde es wohl in deiner Wohnung aussehen, wenn du neue Dinge kaufst, keine alten wegschmeißt und dir auch um den Platz keine Gedanken machen würdest?

Wahrscheinlich hingen Bilder dicht gedrängt an der Wand (auch die deiner Ex), die Kommode ragt schräg in den Raum hinein, weil die neue Couch ein wenig breiter ist und überall in den Schränken stehen Dinge, die niemand mehr braucht.

Wäre das ein Ort, an dem man sich gern aufhält? Wohl kaum.

Genauso verhält es sich mit Software.

Aktualisiert: