Software als Architektur

Einstürzende Neubauten: Was passieren würde, wenn Sie in Ihrem Code wohnen müssten

Moritz Hoffmann, Hartmut Schlosser

©Shutterstock/Anton Brand

In welchem Code würden Sie gerne wohnen? Die Frage mag zunächst etwas merkwürdig erscheinen. Geht man aber davon aus, dass jede Software über eine innere und äußere Struktur verfügt, die geplant, gebaut und instand gehalten werden will, liegt der Vergleich zur Architektur von Wohngebäuden nicht allzu fern. Welche Schlüsse können wir daraus ziehen?

Nun ist die Analogie zwischen Software- und Gebäude-Architektur natürlich schon alt – und an mindestens genauso vielen Stellen schief wie treffend. Dennoch hat sich Daniel Kaplan in seinem Blogbeitrag „Build your software like you’ll have to live in it“ dem Gedankenexperiment erneut gestellt und einige witzige Gedanken hervorgezaubert.

Software, in der Sie (nicht) leben wollen

Beginnen wir mit dem Investment. Niemand, der für ein 1-monatiges Praktikum in eine neue Stadt zieht, würde wohl viel Zeit und Geld in seine Kurzzeit-WG-Wohnung investieren. Genauso geht es in der Welt der Software-Entwicklung einem Prototypen, den man nur zu Demonstrationszwecken erstellt – man nutzt ihn temporär und verlässt ihn wieder, ohne sich lange mit UI-Design aufzuhalten.

Wenn man hingegen plant, sich mit seiner Familie für mehrere Jahre an einem Ort niederzulassen, wird man interessiert daran sein, dass seine Wohnung mehr ist als eine zweckdienliche Unterkunft. Mehr noch: Eingehend wird man sich auch die Nachbarschaft anschauen, in der sich das Haus befindet, die umgebende Infrastruktur, das Milieu mit seinem spezifischen kulturellen Hintergrund.

Und genauso macht es bei einem lang angelegten Software-Projekt Sinn, sich die Technologie-Landschaft um die gewählte Programmiersprache herum anzuschauen. Auch hier muss man sich wohl fühlen, auch hier sollte eine Infrastruktur an Tools, Frameworks und Bibliotheken zur Verfügung stehen, auch hier eine Community existieren, deren Kultur derjenigen des eigenen Entwicklerteams nahesteht.

Will man gar selbst ein Haus bauen, wird man sich zudem die Bodenbeschaffenheit des Baugrundstücks anschauen. Penibel wird man dafür Sorge tragen, dass für das Fundament des Hauses keine billigen Materialien verwendet werden. Und kaum wird man damit beginnen, sich den Swimming Pool in den Garten zu setzen, wenn noch nicht einmal der erste Stock fertig gemauert ist.

Einstürzende Neubauten

Alles banal? Nun, der Clou an der Sache ist nun, dass in allzu vielen Software-Projekten gerade diese Selbstverständlichkeiten auf das Sträflichste missachtet werden. Daniel Kaplan stellt fest: Oft hat man in der Software-Welt gerade einmal eine kleine Hütte errichtet, da wollen viele schon alle Annehmlichkeiten einer Luxus-Villa mit mehreren Geschossen, großzügiger Wohnküche und schickem Keller-Pool genießen.

Noch nicht trocken ist das Stroh auf dem Bretterdach der bescheidenen Baracke, da wird schon der Betonwagen für den 2. Stock angefahren. Und dann wundert man sich, dass die Hütte unter der Last zusammenbricht. Bäng!

Allerdings kann es vorkommen, dass Laien auf den ersten Blick gar nicht erkennen, dass ein Stück Software eigentlich nur noch ein Haufen Geröll ist. Und wenn dann der Manager kommt und seine neue tolle Klimaanlage mit eingebaut haben will, muss man ihm klar machen, dass das Haus leider nicht einmal mehr über ein Dach verfügt. „Baut die Klimaanlage trotzdem ein“, sagt dann der Manager. „Das Dach könnt ihr dann ja nachher flicken.“

Rebuild – aber wie?

Nun heißt „nachher flicken“ in der Software-Welt gemeinhin „Rebuild“ – und der Ehre des Neuerrichtens will sicherlich niemand an den Kragen, auch Kaplan nicht. Doch warum gelingt es so selten, gleich von vorneherein für ein solides Fundament zu sorgen?

Zum Glück gibt es aber einen wichtigen Unterschied zwischen Software- und Gebäudearchitektur: Verglichen mit der materiellen Welt ist es in der Software-Entwicklung nämlich recht einfach, das Fundament eines Projektes zu erneuern. Es ist sogar fast schon üblich, dass ein Projekt als fragile Hütte beginnt und nach und nach zu einer Luxus-Villa ausgebaut wird.

Kaplans Rat lautet hier: Stoppen Sie nicht monatelang das Software-Projekt, um ausschließlich das Fundament zu verbessern. Einen solchen Stillstand können sich die wenigsten leisten – und ob der komplette Rebuild gelingt, ist obendrein nicht sicher. Besser man baut bei der Renovierung auch neue Features mit ein und praktiziert dabei das Boy Scout Rule für Entwickler:

Always check a module in cleaner than when you checked it out.

Allmählich wird die Hütte dann zum Häuschen, dann zum 2-Stöcker, Mehrfamilienhaus, zur Villa….

Bleibt am Schluss die Frage:

Was würde sich noch ändern, wenn Sie in dem Code leben müssten, den Sie so tagtäglich fabrizieren?

Aufmacherbild: Cartoon of three pigs von Shutterstock / Urheberrecht: Anton Brand 

Geschrieben von
Moritz Hoffmann
Moritz Hoffmann
Moritz Hoffmann hat an der Goethe Universität Soziologie sowie Buch- und Medienpraxis studiert. Er lebt seit acht Jahren in Frankfurt am Main und arbeitet in der Redaktion von Software und Support Media.
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. #java #eclipse #devops #machinelearning #seo. Zum Lächeln bringen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: