
TL;DR
|
Es ist Dienstag, 15 Uhr. Ein Kunde mit einem bestimmten Tarif sieht Zahlen, die bei keinem anderen Kunden auftreten. Drei Entwickler starren den Rest des Nachmittags abwechselnd auf dieselben Log-Zeilen, weil niemand den Fehler irgendwo anders als genau auf dem Konto dieses Kunden auslösen kann.
Wenn jemand dein Team gerade fragen würde, wie lange es dauern würde, das Problem zu reproduzieren, könnte dann tatsächlich jemand eine konkrete Zahl nennen?
Das Wichtigste zum Mitnehmen: Niemand kann dir eine Zeit für die Reproduktion nennen, weil niemand dies als einen Schritt betrachtet, der es wert ist, gemessen zu werden.
Frag einen technischen Leiter, wie gut sein Team im Debuggen ist, und er wird dir von den Leuten erzählen: kompetente Entwickler, ein solider Bereitschaftsdienst. Frag, wie lange es tatsächlich dauert, einen bestimmten Fehler aus der Produktivumgebung zu reproduzieren, und die Antwort wird schnell vage. Diese Lücke ist verräterisch, denn die Reproduktion ist der Schritt, auf den alles andere wartet. Diagnose, Behebung, Validierung – nichts davon beginnt, bis der Fehler auf Abruf auftritt.
Das Wichtigste zum Mitnehmen: Einen Produktionsfehler nachzustellen bedeutet, einen bestimmten Moment nachzustellen – und die meisten Umgebungen können das nur annähernd.
Einen Fehler zu reproduzieren bedeutet, genau den Moment nachzubilden, in dem er aufgetreten ist – bis hin zu den Daten, dem Datenverkehr und den damals laufenden Serviceversionen. Staging-Umgebungen kommen dem nahe. Sie sind aber selten exakt. Wenn ein Fehler nur unter echten Produktionsbedingungen auftritt, bleibt einem Entwickler nichts anderes übrig, als diese Bedingungen lokal zu erraten oder abzuwarten, in der Hoffnung, dass er irgendwo wieder auftritt, wo man ihn sehen kann.
Beides hat nichts mit Fachkompetenz zu tun. Beides passiert, wenn die Umgebung nicht auf Abruf nachgebildet werden kann. Das ist ein Problem, das Entwickler direkt benennen: Im „State of Application Development Report 2024“ von Docker war das Debuggen in der Produktivumgebung einer der beiden am schlechtesten bewerteten Teile des Entwicklungsprozesses – 29 % der Befragten bewerteten ihn negativ.
Kernaussage: Teams, die „Minuten“ schaffen, haben ein Infrastrukturproblem gelöst, kein Personalproblem.
Ein Team, das Fehler innerhalb von Minuten reproduzieren kann, hat das wahrscheinlich nicht durch Neueinstellungen erreicht. Was sie gelöst haben, war enger gefasst: Können wir eine Kopie der Produktivumgebung – inklusive echter Daten und Konfiguration – schneller einrichten, als es dauert, das Ticket zu lesen, in dem der Fehler beschrieben wird?
Genau das ist eine Preview-Umgebung eigentlich: Infrastruktur, schlicht und einfach. Und deshalb klingt „Minuten“ erst mal weit hergeholt, bis man es tatsächlich miterlebt. Was Zeit kostet, ist, dass die Umgebung den Fehler nachholt – nicht die Person, die ihn sich ansieht.
Das Wichtigste zum Mitnehmen: Bessere Debugging-Tools helfen erst dann, wenn sich der Fehler überhaupt erst reproduzieren lässt.
Es gibt einen ganzen Markt, der darauf ausgerichtet ist, Entwicklern zu helfen, schneller zu debuggen, sobald ein Fehler bereits reproduziert wurde: präzisere Protokollierung, bessere Ablaufverfolgung, intelligentere Benachrichtigungen. Nützliche Dinge. Nichts davon spielt eine Rolle, wenn sich der Fehler gar nicht erst reproduzieren lässt.
Bevor du ein weiteres Debugging-Tool hinzufügst, stell dir die grundlegendere Frage: Können wir überhaupt schnell einen reproduzierbaren Zustand erreichen? Für viele Teams ist das die eigentliche Lücke, und genau diese sollte zuerst geschlossen werden.
Schau dir an, wie eine Full-Stack-Preview-Umgebung in Sekundenschnelle hochgefahren wird.
Warum kennen die meisten Teams ihre Reproduktionszeit nicht?
Niemand misst sie. Die Zeit bis zur Behebung wird akribisch verfolgt. Die Zeit bis zur Reproduktion – der Schritt, bevor das eigentliche Debugging überhaupt beginnt – wird das meist nicht.
Ist eine langsame Reproduktion ein Zeichen für ein schwaches Entwicklerteam?
Nein. Meistens bedeutet es, dass die Umgebung nicht schnell nachgebildet werden kann – eher eine Einschränkung der Infrastruktur als des Könnens.
Was wäre nötig, um Fehler innerhalb von Minuten statt Stunden zu reproduzieren?
Eine Vorschauumgebung, die sich bei Bedarf mit produktionsnahen Daten und Konfigurationen aufbaut, statt einer, die man erst annähernd nachbilden oder auf deren Bereitstellung man warten muss.