Engineering Story · Architecture

Software wird nie fertig

Das am längsten laufende Projekt lehrte das Schlichteste und Unbequemste zugleich: Anforderungen hören nie auf, sich zu ändern. Software wird nie fertig. Die einzige Antwort ist, Veränderung billig zu halten. Kein Heldenstück.

Was ist das? · Engineering Story

Eine gelernte Lektion — ein Fehler, warum er passierte und was er uns lehrte. Anonym, ohne Kunde, ohne Drama. Der Fehler ist der Lehrer, nicht der Held. Zur Übersicht

Autor
Batunet Engineering
Lesezeit
4 Min.
Niveau
Fortgeschritten
Status
Freigegeben
Auf dieser Seite

Es gibt Lektionen, die man nur über Jahre lernt, weil sie sich nur über Jahre zeigen. Diese ist eine davon. Sie ist bewusst allgemein gehalten — ohne Kunden, ohne Projekt, ohne Zeitpunkt.

Situation

In dem am längsten laufenden Kundenprojekt begleitete ein System seine Aufgabe über einen langen Zeitraum. Nichts an dieser Geschichte ist dramatisch: Das System lief, wurde gebraucht, wurde weiterentwickelt. Genau in dieser Unspektakularität liegt die Lektion — nicht in einem Ereignis, sondern in dem, was die Dauer sichtbar machte.

Ausgangsannahmen

Am Anfang steht, ausgesprochen oder nicht, die Vorstellung eines Endzustands: Irgendwann ist das System fertig, die Anforderungen erfüllt, die Arbeit getan. Diese Vorstellung prägt, wie man baut — man richtet das System auf den bekannten Bedarf aus, so genau wie möglich. Fertig zu werden erscheint als Ziel.

Problem

Über die Jahre erwies sich der Endzustand als Fiktion. Die Anforderungen hörten nicht auf, sich zu ändern — nicht, weil etwas falsch geplant war, sondern weil sich die Welt ändert, in der das System steht: neue Bedürfnisse, neue Gegebenheiten, neue Fragen, die beim Bau niemand kannte. Ein System, das für einen festen Endzustand gebaut ist, wird gegen diese fortlaufende Veränderung mit jedem Jahr spröder. Was einmal genau passte, sitzt später zu eng.

Ursache

Die Ursache war die Annahme des Endzustands selbst. Wer glaubt, ein System werde fertig, optimiert es auf den heute bekannten Bedarf und macht es damit gegen den unbekannten von morgen unbeweglich. Der Fehler liegt nicht im Ändern der Anforderungen — das ist der Normalfall —, sondern in einer Architektur, die so tut, als käme dieser Normalfall nicht. Je genauer man auf das Heute baut, desto teurer wird das Morgen.

Entscheidung

Die Lehre war, den Endzustand als Ziel aufzugeben und ein anderes an seine Stelle zu setzen: nicht ein fertiges System, sondern ein änderbares. Die entscheidende Frage ist nicht mehr „ist es fertig?", sondern „wie teuer ist die nächste Änderung?" — und die Architektur wird daran gemessen, nicht an der Passgenauigkeit auf den heutigen Stand.

Umsetzung

Praktisch heißt das, das System so zu bauen, dass Veränderung billig bleibt: klare Grenzen, damit eine Änderung lokal bleibt; wenig Kopplung, damit ein Eingriff nicht überallhin ausstrahlt; die Fachlichkeit so ausgedrückt, dass sie sich anpassen lässt, ohne alles zu berühren. Nicht die perfekte Passung auf heute, sondern die günstige Anpassbarkeit auf morgen ist das Maß. Über die lange Laufzeit hat sich das immer wieder bezahlt gemacht — jede Anforderung, die kam, kostete weniger, als sie in einem starr optimierten System gekostet hätte.

Trade-offs

Für Änderbarkeit zu bauen bedeutet, auf einen Teil der maximalen Passung auf den heutigen Bedarf zu verzichten. Ein System, das jede künftige Änderung günstig hält, ist im Moment selten das eleganteste für den einen aktuellen Fall. Das ist der bewusste Preis. Anders würden wir nur bei einem absehbar kurzlebigen System entscheiden — dort ist die Investition in Änderbarkeit verschwendet, weil das Morgen, für das man vorsorgt, nicht kommt.

Was wir gelernt haben

Software wird nie fertig, weil die Welt nicht fertig wird. Anforderungen ändern sich fortlaufend, und das ist kein Mangel, sondern die Bedingung, unter der Software lebt. Die einzige belastbare Antwort darauf ist eine Architektur, die Veränderung billig macht — nicht eine, die auf einen Endzustand hin optimiert, den es nie gibt. Der Wert eines langlebigen Systems bemisst sich nicht daran, wie gut es heute passt, sondern daran, wie wenig die nächste Änderung kostet.

Wie das Batunet verändert hat

Seither versprechen wir kein fertiges System, sondern ein änderbares — und messen unsere Arbeit daran, wie günstig die nächste Anforderung zu erfüllen ist. Wir behandeln fortlaufende Veränderung als den Normalfall, für den man baut, nicht als Störung eines Plans. Das nimmt dem „nie fertig" das Bedrohliche: Es ist keine Schwäche des Projekts, sondern die Natur der Sache — und man kann für sie entwerfen.

Weiterführend

Grundlage ist die Batunet Engineering Method: für Veränderung bauen, nicht für einen Endzustand — und Änderbarkeit zum Maßstab machen.


„Fertig" ist kein Zustand, den Software erreicht, sondern eine Vorstellung, die man loslassen muss. Was bleibt, ist die Frage, wie viel die nächste Änderung kostet.

Referenzierte Entitäten

Wissensgraph

Setzen Sie Ihren Engineering-Weg fort.

Verwandte Konzepte, Entscheidungen, Playbooks und Standpunkte — als zusammenhängender Pfad, nicht als Linkliste.

Ein konkretes Vorhaben in diesem Feld?

Reference Guides zeigen, wie wir denken. Für Ihr System sprechen Sie mit der Geschäftsführung — technisch, ohne Vertrieb.