Software ist erst dann etwas wert, wenn sie benutzt wird. Alles davor ist Vorbereitung.
Dieser Satz klingt banal. Aber er beschreibt ein Problem, das in erstaunlich vielen Projekten auftritt: Es wird entwickelt, diskutiert, refactored, optimiert – aber nie geliefert. Nicht, weil die Beteiligten faul wären. Sondern weil Entwickeln und Liefern zwei grundverschiedene Dinge sind – und viele Teams den Unterschied nicht bewusst machen.
Entwickeln vs. Liefern
Entwickeln ist der Raum der Möglichkeiten. Alles ist verhandelbar, Entscheidungen lassen sich aufschieben, neue Ideen kommen jederzeit dazu. Es fühlt sich produktiv an: Code entsteht, Architekturen werden entworfen, Probleme gelöst. Aber es entsteht nichts Nutzbares. Nicht für den Kunden, nicht für den Betrieb, nicht für das Geschäft.
Liefern ist Verbindlichkeit. Entscheidungen müssen geschlossen werden. Verantwortung wird übernommen. Software wird real – Fehler werden sichtbar, Qualität messbar. Das ist unbequem, aber genau dort entsteht der Wert.
Der Übergang vom Entwickeln zum Liefern ist kein technischer Schritt. Es ist ein Haltungswechsel. Und genau daran scheitern viele Projekte.
Das 80:20-Prinzip als Charaktertest
Das Pareto-Prinzip wird oft zitiert, selten aber wirklich verstanden. Es geht nicht darum, schlechte Arbeit abzuliefern. Es geht um den bewussten Verzicht auf die letzten 20 % Perfektion zugunsten von 80 % Wirkung.
Das klingt einfach. Ist es aber nicht. Denn es erfordert Entscheidungsfähigkeit, keine zusätzlichen Techniken. Wer perfektioniert, muss nichts entscheiden. Wer liefert, muss sagen: Das reicht. Das ist gut genug. Das geht jetzt raus.
Und genau das fällt vielen schwer – nicht aus Unfähigkeit, sondern weil sie wissen, was noch besser sein könnte. Das Wissen um offene Enden wird zur Ausrede, nicht zu liefern.
Der Zustand der formalen Unvollständigkeit
Es gibt einen Zustand, den viele Projekte erreichen und in dem sie dann stecken bleiben: Funktional ist alles da. Das System tut, was es soll. Aber die Tests sind unvollständig, die Dokumentation ist implizit, die Konfiguration steckt in den Köpfen einzelner Personen.
Das System läuft – solange die richtigen Leute verfügbar sind. Solange niemand im Urlaub ist, krank wird oder kündigt. Solange der eine Entwickler noch weiß, welcher Parameter in welcher Umgebung anders gesetzt werden muss.
Das ist kein geliefertes System. Das ist ein System, das zufällig funktioniert. Es ist formal unvollständig – und damit ein Risiko, das wächst, je länger es in diesem Zustand bleibt.
Was „geliefert“ wirklich bedeutet
Liefern bedeutet Abschluss. Dinge so fertigstellen, dass andere sie benutzen können – ohne Rückfragen, ohne implizites Wissen, ohne Abhängigkeit vom Entwickler. Fertig heißt nicht perfekt. Fertig heißt: stabil genug für den echten Betrieb.
- Jemand Neues kann das System deployen, ohne den Entwickler anzurufen.
- Die Konfiguration ist dokumentiert, nicht memoriert.
- Fehler sind reproduzierbar, nicht mysteriös.
- Es gibt einen definierten Zustand, auf den man sich beziehen kann.
Das ist kein übertriebener Anspruch. Das ist das Minimum, ab dem Software als geliefert gelten kann.
Warum gute Entwickler daran scheitern
Erfahrene Entwickler sehen viele Risiken und offene Enden. Sie wissen, wo die Architektur nicht sauber ist, wo die Tests fehlen, wo die Edge Cases lauern. Dieses Wissen ist wertvoll – aber es wird schnell zur Falle.
Denn wer zu viel sieht, findet immer einen Grund, noch nicht zu liefern. Noch ein Refactoring, noch eine Abstraktionsschicht, noch ein Edge Case. Die Qualität steigt marginal, aber die Lieferung verschiebt sich immer weiter.
Das ist kein Qualitätsbewusstsein. Das ist Vermeidungsverhalten mit technischer Begründung. Und es ist einer der häufigsten Gründe, warum technisch exzellente Projekte nie beim Nutzer ankommen.
Seniorität zeigt sich im Abschluss
Ein verbreitetes Missverständnis: Seniorität misst sich am Umfang des Wissens. Am Überblick über Technologien, Patterns, Architekturen. Das ist eine notwendige Bedingung – aber keine hinreichende.
Wirkliche Seniorität zeigt sich im Abschluss, nicht im Umfang des Wissens. Ein Senior erkennt, wann Entwickeln aufhören muss, damit Liefern beginnen kann. Er trifft bewusst Entscheidungen, die nicht perfekt sind – aber ausreichend. Er übernimmt die Verantwortung dafür, dass etwas in Betrieb geht, auch wenn er weiß, was noch besser sein könnte.
Das ist keine Nachlässigkeit. Das ist Reife.
Die organisatorische Schieflage
Viele Organisationen belohnen das Falsche. Technische Brillanz ist sichtbar: elegante Architekturen, clevere Lösungen, tiefes Fachwissen. Das wird anerkannt, gefördert, auf Konferenzen gefeiert.
Liefern dagegen ist leise. Es ist das Release, das einfach funktioniert. Das Deployment, das ohne Drama durchläuft. Die Dokumentation, die niemand lobt, aber jeder braucht. Das wird als selbstverständlich hingenommen – und genau deshalb zu wenig wertgeschätzt.
Die Folge: Teams optimieren auf das, was sichtbar ist. Mehr Architektur, mehr Abstraktion, mehr technische Tiefe. Und weniger Abschluss, weniger Verbindlichkeit, weniger tatsächlich gelieferte Software.
Wer diese Schieflage erkennt und korrigiert, verändert mehr als jede neue Technologie es könnte.
Projekt steckt fest?
Wir helfen beim Liefern – mit klaren Entscheidungen, pragmatischer Architektur und dem Fokus auf das, was beim Nutzer ankommt.
Consulting anfragen