Folge 10

Die Abrechnung mit den technischen Schulden

„Zu entscheiden, was man baut, hat offengelegt, was nie gewartet wurde"
27 Min. Lesezeit

Ostern zerschlägt die verbliebene Mannschaft, während die Hälfte des Studios im genehmigten Urlaub ist. Anton arbeitet am Ostersonntag, während seine Tochter im Hof unten nach Eiern sucht. Hassan schiebt eine achtzehnstündige Schicht allein. Mariana macht ihrem Frust in den sozialen Medien Luft. Als die Arbeit wieder aufgenommen wird, beginnt Anton die erste Q2-Priorität: Performance-Optimierung. Nach drei Tagen entdeckt er Schichten angesammelter technischer Schulden, die jeden Weg nach vorn blockieren. Schätzungen verdreifachen sich über Nacht. Und die Schulden beschränken sich nicht auf die Performance. Sie stecken in der Infrastruktur, in Backend-Modulen, in den Deployment-Skripten. Zu entscheiden, was man baut, hat offengelegt, was nie gewartet wurde.

Zuvor: „Die Backlog-Explosion" — Das Produkt-Backlog erreichte 147 Einträge, davon 89 als hohe Priorität markiert. Entwickler ignorierten das Backlog komplett. Ayşe konfrontierte Lukas. Katja stützte sie mit einer Navigator-Synthese, die zeigte, dass fast jeder Entwickler in seinen Logs unklare Prioritäten erwähnte. Am Freitagnachmittag leitete Lukas schließlich eine brutale Priorisierungsrunde: fünf Muss-Ziele für Q2, alles andere verschoben auf Q3.

Ostersonntag, 10:14 — Antons Wohnung, Prenzlauer Berg

Anton am Küchentisch mit aufgeklapptem Laptop, Morgenlicht durch hohe Wohnungsfenster, ein dreijähriges Mädchen im Hof unten hält ein bemaltes Osterei hoch
„Sie hat vier Mal gefragt, wo Du bist."

Anton Petrovs Tochter fand das blaue Ei hinter dem Blumentopf um 10:07. Sie kreischte und hielt es mit beiden Händen zum Küchenfenster hoch, wedelte damit im Aprilsonnenlicht.

Er sah sie durch die Scheibe. Dritter Stock. Sonntagmorgenlicht fing sich in ihrem blonden Haar. Ihr Mund weit offen, lachend. Er konnte sie durch die doppelverglasten Fenster nicht hören, aber er kannte das Geräusch auswendig.

Sein Laptop piepte. Wieder ein Alert.

Das Oster-Ingame-Event war um 08:00 gestartet und zog die dreifache erwartete Spielerzahl an. Backend-Antwortzeiten gingen durch die Decke. 4.200 Millisekunden im Schnitt. Hassan schrieb seit vor Sonnenaufgang.

Antons Kaffee stand unberührt auf dem Küchentisch. Kalt. Der Kulich, den Irina am Morgen gebacken hatte, füllte die Wohnung mit Vanille und Kardamom. Ein richtiges Osterfest. Bemalte Eier. Familie. Kirchenglocken von der Gethsemanekirche die Straße runter, ihr Rhythmus langsam und beharrlich.

Nur dass er auf Unity-Telemetrie starrte, während seine Frau ihre Tochter allein im Hof unten betreute.

Er schob die Balkontür auf. Kalte Aprilluft strömte herein, trug Kirchenglocken und Verkehrslärm von der Turmstraße.

„Papa! Papa, komm! Blaues Ei!”

Mashas Stimme trug durch die offene Balkontür nach oben. Er warf einen Blick auf die Fehlerraten. Steigend. Er öffnete die Client-seitige Cache-Konfiguration und begann nach dem Nebenläufigkeits-Engpass zu suchen.

Irina erschien im Kücheneingang. Mehl an den Handgelenken. Ihre Schürze aus Petersburg, die mit den Sonnenblumen, die sie in den Koffer gepackt hatte, als sie Russland verließen, weil es das eine Stück aus der Küche ihrer Mutter war, das sie nicht zurücklassen konnte.

„Es ist Ostern, Anton.”

„Ich weiß. Die Server sind…”

„Hör auf.”

Er hielt inne.

„Unsere Tochter ist drei Jahre alt. Sie ist im Hof und sucht nach Eiern, die ich heute morgen um sechs versteckt habe, während Du schon gearbeitet hast. Sie hat vier Mal gefragt, wo Du bist.” Irinas Stimme brach. Ihr Kiefer verkrampfte sich. Sie redete weiter. „Das letzte Mal hat sie gesagt: ‚Wohnt Papa nicht mehr hier?’”

Die Worte trafen ihn wie ein Eimer kaltes Wasser über den Rücken. Seine Hände erstarrten auf der Tastatur.

„Sie ist drei, Irina. Sie meint das nicht…”

„Sie meint genau das, was sie gesagt hat. Du sitzt an diesem Tisch jeden Morgen, bevor sie aufwacht. Du bist immer noch hier, wenn sie ins Bett geht. Sie sieht Deinen Hinterkopf häufiger als Dein Gesicht.”

Stille. Die Kirchenglocken läuteten halb elf. Unten fand Mascha ein weiteres Ei und quietschte.

„Dreißig Minuten,” sagte er. „Lass mich diese eine Sache stabilisieren. Dann komme ich runter.”

Irina starrte ihn an. Der Ausdruck auf ihrem Gesicht war keine Wut. Wut wäre leichter gewesen. Das hier war etwas Schweres und Müdes und Endgültiges. Sie drehte sich um und ging aus der Küche.

Die Wohnungstür schloss sich. Durch das Fenster sah er sie über den Hof gehen, Mascha hochheben und auf die Blumenkästen am Nachbarbalkon zeigen, wo weitere Eier versteckt waren.

Mascha schaute zu seinem Fenster hoch. Winkte.

Er winkte zurück.

Dann wandte er sich seinem Laptop zu. Die Cache-Schicht war falsch konfiguriert für Szenarien mit hoher Nebenläufigkeit. Jemand hatte ein Connection-Pool-Limit von 50 hartcodiert, das im Normalbetrieb funktionierte, aber bei Events den Dienst quittierte. Er begann, einen Fix zu schreiben. Unten ging seine Tochter zum nächsten Ei über, ohne noch einmal hochzuschauen.

Ostersonntag, 19:38 — Hassans Wohnung, Kreuzberg

Hassan allein an einem vollgestellten Schreibtisch in einer kleinen Einzimmerwohnung, zwei Monitore leuchten, leere Energydrink-Dosen und ein kalter Döner-Wrapper neben der Tastatur, Abendlicht durch ein offenes Fenster
„Das ist nicht nachhaltig. Das sagen alle. Es ändert sich nichts."

Hassan Al-Rashid war seit 04:47 wach. Fünfzehn Stunden die Infrastruktur am Leben halten, während die dreifache normale Spielerzahl auf das Oster-Event hämmerte.

Seine Einzimmerwohnung an der Schönleinstraße hatte sich seit seinem Einzug kaum verändert. Dreißig Quadratmeter Kabel, Hardware und Science-Fiction-Taschenbücher auf jeder Fläche. Die Couch diente immer noch als Wäschekorb. Zwei Monitore auf dem Schreibtisch, drei Terminal-Fenster, Grafana-Dashboard auf dem linken Monitor, Deployment-Logs scrollten auf dem rechten.

Die Fehlerraten hatten sich gegen 16:00 stabilisiert. Er hatte die Last über vier Container-Instanzen neu verteilt, die Auto-Scaling-Konfiguration gepatcht, die seit drei Monaten auf seiner Aufgabenliste stand, und die Message-Queue zweimal manuell neugestartet, als sie an Event-Belohnungs-Payloads erstickte. Niemand sonst war online gewesen. Elif hatte morgens gefragt, ob das Event stabil lief. Er hatte gesagt, alles wäre in Ordnung.

War es nicht. Aber „in Ordnung” war kürzer, als die fünfzehn einzelnen Brände zu erklären, die er seit Morgengrauen gelöscht hatte.

Er machte sich Tee. Minze. Das Rezept seiner Mutter, das aus Damaskus, das sie ihm vor zwei Jahren in einem Videotelefonat diktiert hatte und das er auf einen Post-it geschrieben hatte, der sich jetzt über dem Wasserkocher kringelte.

Der Döner, den er um 15:00 bestellt hatte, lag halb aufgegessen auf dem Schreibtisch. Kalt. Er konnte sich nicht erinnern, wann er zuletzt eine richtige Mahlzeit hatte, die nicht in Alufolie kam.

Von draußen, durch das offene Fenster, konnte er Familien im Hof hören. Kinderlachen. Jemand hatte einen Tisch mit bemalten Eiern und Kuchen aufgestellt. Kirchenglocken wehten von irgendwo über Kreuzberg herüber, leise und gemessen.

Er rieb sich die Augen. Sie brannten. Seine Sicht verschwamm, wenn er blinzelte.

„Anton hat heute morgen beim Client-seitigen Cache geholfen,” murmelte er vor sich hin. „Aber das Backend, die Infrastruktur…” Er ließ den Satz verklingen. Es war niemand da, der ihn hätte beenden können.

Ostersonntag. Ein gesetzlicher Feiertag. Der Hof voller Familien, und er saß allein in einer Einzimmerwohnung und sah Container-Logs vorbeirollen.

Seine Mutter hatte heute morgen angerufen. Er hatte es auf die Mailbox gehen lassen. Sie hatte gefragt, warum er nicht über Ostern nach Hause kommt, warum er so viel arbeite, ob er richtig esse. Dieselben Fragen bei jedem Anruf. Er überwies jeden Monat Geld. Arbeitete sechzig Stunden die Woche. Siebzig während Crunch-Phasen. Er war seit zwei Monaten nicht mehr in der Moschee gewesen. Er hatte Eid letztes Jahr wegen eines Deployments verpasst.

Er öffnete Navigator. Seine Finger fühlten sich schwer an.

Navigator — Hassan Al-Rashid — 5. April 2026, 19:44

Ostersonntag. Seit 05:00 im Einsatz. Fünfzehn Stunden, um das Spiel während des Oster-Events am Laufen zu halten.

Dreifache normale Spieler-Nebenläufigkeit. Auto-Scaling-Konfiguration war kaputt. Load-Balancer-Regeln waren falsch. Message-Queue ist zweimal abgestürzt. Alles manuell repariert.

Oster-Wochenende Gesamtstunden: 22 (Samstag Monitoring + Sonntag aktive Brandbekämpfung).

Niemand hat mich gebeten, heute zu arbeiten. Musste auch niemand. Wenn ich es nicht tue, gehen die Server runter. Wenn die Server runter gehen, scheitert das Event. Wenn das Event scheitert, sinkt der Umsatz. Also arbeite ich.

Meine Mutter hat gefragt, warum ich nicht nach Hause komme. Ich hatte keine Antwort.

Das ist nicht nachhaltig. Das sagen alle. Es ändert sich nichts.

Er speicherte den Log und schloss Navigator. Der Tee war lauwarm. Er trank ihn trotzdem. Er schmeckte nach Damaskus.

Ostersonntag, 23:41 — Kreuzberg

Ein Laptop auf dem Boden einer unordentlichen Wohnung, Sepultura-Albumcover leuchtet auf einem zweiten Monitor, ein offener Döner-Wrapper auf der Küchenzeile
„Irgendwas muss kaputtgehen."

Mariana Silva Santos saß im Schneidersitz auf dem Boden ihrer Wohnung, Laptop auf einem Kissen balancierend, Sepulturas „Arise” ratterte gegen die Fensterscheiben in einer Lautstärke, die ihre Nachbarn morgen früh bereuen würden.

Sie war seit 14:00 auf Fehlersuche. Das Authentifizierungs-Refactoring war fertig, aber das Oster-Event hatte drei Grenzfälle in der Session-Management-Schicht aufgedeckt. Spieler wurden mitten im Kauf ausgeloggt. Support-Anfragen stapelten sich. Marcus hatte ihr zweimal geschrieben.

Ihre Wohnung war Chaos. Klamotten auf der Couch. Drei Kaffeetassen auf dem Boden neben ihr. Die Reste eines Döners auf der Küchenzeile. Sonntagabend in Berlin. Sonntagabend in Berlin, wenn du Brasilianerin bist, Single, weit weg von zu Hause, und das Spiel, das du mitgebaut hast, unter seinem eigenen Gewicht zerbricht.

Sie schob eine Korrektur in die Testumgebung. Ließ die Testsuite laufen. Wartete.

Während die Tests liefen, öffnete sie ihr Handy. Scrollte durch X. Die üblichen Osterposts. Familien. Eiersuche. Brunch-Fotos. Kirche. Normale Leute, die normale Sonntagsdinge tun.

Ihre Tests liefen durch. Sie lieferte nach Produktion aus und beobachtete, wie die Fehlerraten für den Session-Management-Endpunkt sanken. Abflachend. Gut.

Sie machte ein Foto von ihrem Bildschirm: der Fehler-Graph im Sinkflug, Sepulturas Albumcover leuchtend auf dem zweiten Monitor. Tippte einen Beitrag.

Debugging am Ostersonntag mit Sepultura auf voller Lautstärke. Sechs Wochen Crunch und kein Ende in Sicht. Irgendwas muss kaputtgehen. 🤘

Sie drückte auf Veröffentlichen. Schloss die App. Drehte die Lautstärke hoch.

Drei Stunden später hatte der Beitrag 240 Likes. Zwölf Weiterleitungen. Neun Kommentare von Entwicklern anderer Firmen, die ihre eigenen Feiertagsarbeits-Geschichten teilten. Zwei Kommentare von Personalvermittlern, die Direktnachrichten anboten.

Mariana schlief bereits auf der Couch, Laptop noch warm auf dem Kissen neben ihr, Sepultura längst zurück bei Titel eins.

Dienstag, 08:52 — Pixel Spree Büro

Halbleeres Büro, ein paar Entwickler an ihren Schreibtischen, sichtlich erschöpft, Morgenlicht durch die bodentiefen Fenster, Anton starrt ins Leere auf seinen dunklen Bildschirm
„Wir zerstören Menschen und nennen es Startup-Kultur."

Dienstagmorgen. Die Fahrstuhltüren öffneten sich im vierten Stock und Katja trat in ein Gebäude, das sich halb leer und komplett kaputt anfühlte.

Ostermontag war ein gesetzlicher Feiertag. Einige im Team hatten die gesamte Woche als Jahresurlaub genommen, vor Monaten genehmigt. Auf der Entwickleretage saß vielleicht die Hälfte der üblichen Belegschaft. Diejenigen, die da waren, bewegten sich langsam, wie Menschen, die sich von irgend etwas erholen. Anton saß an seinem Schreibtisch und starrte auf seinen Bildschirm, der nicht einmal eingeschaltet war. Hassan war nicht da. Sein Platz war dunkel.

Katja ging an der Kaffeemaschine vorbei. Tomasz stand dort und goss Espresso ein.

„Wie war Ostern?” fragte sie.

„Ich hab Samstag gearbeitet.” Seine Stimme war flach. „Nicht weil mich jemand darum gebeten hat. Weil niemand sonst Hassans Auslieferungsänderungen geprüft hätte.”

„Ich weiß. Ich hab Deinen Navigator-Log gelesen.”

Er nickte.

An ihrem Schreibtisch öffnete Katja die wöchentliche Navigator-Synthese. Der Bericht war unverblümt. Drei Entwickler hatten über den Ostersonntag Einträge geschrieben. In einer Firma mit fünfundachtzig Leuten hatten drei das Spiel am Leben gehalten.

Hassan: Fünfzehn Stunden am Sonntag allein. Zweiundzwanzig übers Wochenende. Anton: Sechs Stunden, einschließlich der Zeit, während der seine Tochter ein Stockwerk tiefer nach Ostereiern suchte. Mariana: Neun Stunden Fehlersuche in der Sitzungsverwaltung.

Drei Leute. Ostersonntag. Ein gesetzlicher Feiertag. Und das Live-Ops-Oster-Event, das Umsatz generierte, der nächste Woche auf Lukas’ Board-Folie als Beweis für Firmenwachstum auftauchen würde.

Sie öffnete X auf ihrem Handy und suchte nach dem Studio. Marianas Beitrag erschien fast ganz oben. 240 Likes. Steigend.

Debugging am Ostersonntag mit Sepultura auf voller Lautstärke. Sechs Wochen Crunch und kein Ende in Sicht. Irgendwas muss kaputtgehen. 🤘

Katja las es zweimal. Der Ton war nicht wütend. Er war müde. Der Klang von jemandem, der Fakten aufzählt, weil er aufgegeben hat zu erwarten, dass Fakten irgendetwas ändern.

Die Antworten waren schlimmer. Entwickler bei anderen Firmen zeigten Solidarität. „Bei mir genauso.” „Drei Jahre Crunch, dann hab ich gekündigt.” Ein Personalvermittler: „Wir schätzen Work-Life-Balance. Schreib mir eine Direktnachricht.”

Wenn interne Kanäle versagen, gehen die Leute nach draußen. Das war keine Illoyalität. Das war Verzweiflung ohne Ausweg.

Sie öffnete ihren eigenen Log.

Navigator — Katja Müller — 7. April 2026, 09:18

Oster-Nachbetrachtung. Drei Entwickler haben am Sonntag gearbeitet. Hassan hat 22 Stunden übers Wochenende gearbeitet, allein für die Infrastruktur. Anton hat von zu Hause gearbeitet, während seine dreijährige Tochter ohne ihn Ostereier suchte. Mariana hat neun Stunden allein kritische Session-Management-Bugs behoben.

Niemand hat diese Arbeit angeordnet. Sie haben es getan, weil das Spiel ohne sie ausgefallen wäre. Das ist kein Engagement. Das ist ein System, in dem drei Einzelpersonen alles tragen und alle anderen annehmen, dass sich schon jemand darum kümmert.

Mariana hat auf X über Burnout gepostet. 240 Likes. Personalvermittler in ihren Antworten. Unsere beste Backend-Entwicklerin wird abgeworben, während wir schlafen.

Das Oster-Ingame-Event war Elifs Initiative. Gute Idee. Starker Umsatz. Aber niemand hat die Engineering-Kapazität mit dem Urlaubskalender abgeglichen. Die Hälfte des Teams war weg. Die andere Hälfte hat die Last getragen, ohne gefragt zu werden.

Die Priorisierungsrunde am Freitag war Fortschritt. Fünf Q2-Prioritäten. Klare Festlegungen. Aber wir haben das darunterliegende Tempo immer noch nicht adressiert. Wir zerstören Menschen und nennen es Startup-Kultur.

Sie schloss Navigator. Griff nach ihrem Kaffee. Trank ihn. Das Büro summte mit der besonderen Stille eines Teams, das körperlich anwesend und in allem anderen abwesend war.

Dienstag, 14:10 — Antons Arbeitsplatz

Anton an seinem Schreibtisch, zwei Monitore mit Code, ein handgezeichnetes Abhängigkeitsdiagramm nimmt auf einem digitalen Whiteboard am zweiten Bildschirm Gestalt an
„Das war keine Performance-Optimierung. Das war Archäologie."

Anton öffnete das Unity-Projekt um 14:10 mit der besonderen Klarheit, die kommt, wenn man endlich weiß, woran man arbeiten soll.

Performance-Optimierung. Priorität Nummer eins aus dem Freitagsmeeting. Spielererlebnis und Umsatzwirkung. Die Worte vom Whiteboard, geschrieben in Lukas’ blauem Marker, abgestimmt von jedem Abteilungsleiter.

Er hatte seit Monaten darüber nachgedacht. Frame-Rate-Einbrüche bei Spitzenlast-Events. Ladezeiten beim Inventar, die aus einer Drei-Sekunden-Interaktion zwölf machten. Partikeleffekte, die den Speicher auf älteren Geräten hochjagten und das Spiel auf allem unter einem iPhone 12 abstürzen ließen.

Er wusste, wo die Probleme lagen. Er hatte Bug-Reports im November eingereicht. Dezember. Januar. Alle markiert für „zukünftigen Sprint”. Nie eingeplant. Nie angefasst. Digitalen Staub ansammelnd im Backlog, das letzte Woche auf 147 Einträge angewachsen war, bevor der Kahlschlag kam.

Jetzt waren sie eingeplant. Jetzt waren sie die Priorität. Seine Priorität.

Er öffnete das Rendering-Pipeline-Modul. Scrollte durch den Code.

Und hielt inne.

Das Partikelsystem nutzte nicht Unitys nativen Partikel-Renderer. Jemand hatte vor achtzehn Monaten eine eigene Rendering-Pipeline geschrieben. Keine Dokumentation. Keine Kommentare, die erklärten warum. Kein Design-Dokument, kein ADR, keine hingekritzelte Notiz in einem Wiki. Das eigene System umging Unitys eingebautes Draw-Call-Batching und renderte Partikel einzeln durch eine handgestrickte Shader-Pipeline, die aussah, als wäre sie von jemandem Brillantem geschrieben worden, der nie damit gerechnet hat, dass jemand anders sie lesen würde.

Anton scrollte durch den Shader-Code. Zweitausend Zeilen C#, die handgeschriebenes HLSL wrappten. Der Code war clever. Zu clever. Er löste ein Problem, das Anton nicht identifizieren konnte, weil niemand aufgeschrieben hatte, worin dieses Problem bestand.

Er öffnete Git Blame. Der Autor: Diego Fernandez. Ein Entwickler, der vor elf Monaten die Firma verlassen hatte. Keine Übergabedokumentation. Keine Übergabenotizen. Kein Wissenstransfer-Termin. Nur eine Slack-Abschiedsnachricht und ein leerer Schreibtisch.

„Scheiße,” murmelte Anton.

Er begann den eigenen Renderer von vorne zu lesen. Zeile für Zeile. Optimierungstricks, die eine bestimmte GPU-Architektur voraussetzten, die auf aktuellen Geräten nicht mehr dominant war. Speicherverwaltungs-Muster, die auf Android leckten, aber nicht auf iOS. Thread-Synchronisierung, die auf vier Kernen wunderbar funktionierte und auf zweien auseinanderfiel.

Das war keine Performance-Optimierung. Das war Archäologie.

Mittwoch, 16:33 — Die Schichten darunter

Antons zweiter Monitor gefüllt mit einem ausufernden Abhängigkeitsdiagramm in Gelb und Rot, sein Gesichtsausdruck grimmig, ein kalter Kaffee vergessen auf dem Schreibtisch
„Jeder Faden führte zu weiteren Fäden. Jeder Fix erforderte, erst drei andere Systeme zu verstehen."

Am Mittwochnachmittag hatte Anton aufgehört, Probleme zu suchen, und begonnen, sie zu kartieren.

Sein zweiter Monitor zeigte ein Abhängigkeitsdiagramm, das er seit Dienstagabend aufbaute. Gelbe Haftnotizen auf einem digitalen Whiteboard. Jede Notiz eine Komponente. Jede rote Linie eine Abhängigkeit, die kaputt, undokumentiert oder auf Annahmen gebaut war, die nicht mehr stimmten.

Das Partikel-Rendering-System war mit dem Inventar-Darstellungssystem über einen gemeinsamen Texturatlas verbunden. Der Texturatlas wurde zur Build-Zeit von einem Python-Skript erzeugt, das niemand pflegte. Das Skript referenzierte Asset-Pfade, die vor sechs Monaten umorganisiert worden waren, also schlug es bei 30% der Texturen still fehl und fiel auf Platzhalterbilder zurück. Spieler meldeten seit Monaten „fehlende Gegenstandsgrafiken”. Der Support hatte 47 Tickets dazu geloggt. Die QA hatte es markiert. Niemand hatte es bis zum Build-Skript zurückverfolgt.

Das war ein Faden. Er zog am nächsten.

Frame-Rate-Einbrüche bei Spitzenlast-Events lagen nicht nur am Partikel-Rendering. Speicher-Allokation. Das Spiel allozierte und deallozierte Objekte in engen Schleifen während der Event-Verarbeitung. Kein Objekt-Pooling. Keine Vorab-Allokation. Der Garbage Collector feuerte bei Spitzenlast alle paar Sekunden und fror das Spiel jedes Mal für 50 bis 200 Millisekunden ein. Spieler erlebten es als Stottern. Der Support nannte es „Lag”. Es war kein Lag. Es war die Laufzeitumgebung, die an ihrem eigenen Müll erstickte.

Standard-Fix: Objekt-Pooling implementieren. Geschätzter Aufwand: zwei Tage.

Tatsächlicher Aufwand: unbekannt. Die Allokationsmuster durchzogen vierzehn verschiedene Module, jedes geschrieben von einem anderen Entwickler über zwei Jahre, jedes mit eigenen Konventionen, keines dokumentiert. Das Allokationsmuster in einem Modul zu ändern, ohne alle vierzehn zu ändern, würde Abstürze verursachen, die erst unter Last zum Vorschein kamen. Unter Produktionslast. Mit echten Spielern.

Er zog an einem dritten Faden.

Die Ladeperformance des Inventars hing an einer Datenbankabfrage, die sechs Tabellen verknüpfte. Die Abfrage war einmal optimiert worden, vor einem Jahr, von einem Backend-Entwickler, der inzwischen gegangen war. Die Optimierung nutzte ein MySQL-spezifisches Feature, das in MySQL 8.0 als veraltet markiert worden war. Sie hatten im Januar aktualisiert. Niemand hatte danach die Inventarabfrage geprüft. Sie lief unoptimiert, und niemand hatte es bemerkt, weil die Baseline ohnehin schon langsam war. Was früher 800 Millisekunden dauerte, dauerte jetzt 3.200.

Jeder Faden führte zu weiteren Fäden. Jeder Fix erforderte, erst drei andere Systeme zu verstehen. Jedes System war unter Termindruck gebaut worden, mit dem stillschweigenden Versprechen, dass jemand es später aufräumen würde.

Niemand hatte es je getan.

Anton öffnete ein neues Dokument. Tippte einen Titel: Performance-Optimierung — Technische Bewertung.

Ursprüngliche Schätzung: 2 Sprints (4 Wochen) Revidierte Schätzung: 6+ Sprints (12+ Wochen)

Ursache: angesammelte technische Schulden in 14 miteinander verbundenen Modulen. Keine Dokumentation. Keine Tests. Kein einzelner Entwickler, der alle Abhängigkeiten versteht. Jedes Modul unter Termindruck gebaut, von Entwicklern, die das Unternehmen verlassen haben oder versetzt wurden.

Einen Performance-Optimierungsversuch ohne Behebung der zugrundeliegenden Schulden zu unternehmen, wird temporäre Verbesserungen liefern, die innerhalb von Wochen wieder verfallen, wenn neue Features mit demselben maroden Fundament interagieren.

Er lehnte sich zurück. Starrte auf das, was er geschrieben hatte.

Sechs Sprints. Das Dreifache der ursprünglichen Schätzung. Vier Tage nachdem Lukas sich auf fünf Q2-Prioritäten festgelegt hatte, war gleich die erste in die Luft geflogen.

Mittwoch, 22:15 — Prenzlauer Berg

Küchentisch bei Nacht, Laptop-Bildschirm leuchtet, ein Stoffhase eines Kindes auf der Küchenzeile, stille Wohnung
„Das ist kein Performance-Problem. Das ist ein strukturelles Problem. Der Code verrottet von innen."

Anton kam um 21:30 nach Hause. Irina und Mascha schliefen bereits. Er setzte sich an den Küchentisch, denselben Tisch, an dem er Ostersonntag gearbeitet hatte, und öffnete Navigator auf seinem Handy.

Navigator — Anton Petrov — 8. April 2026, 22:19

Habe zwei Tage damit verbracht, den Umfang der Performance-Optimierung abzuschätzen. Ursprüngliche Schätzung war zwei Sprints. Echte Schätzung sind sechs. Mindestens.

Die Codebasis hat zwei Jahre angesammelte technische Schulden. Ein eigenes Rendering-System, gebaut von Diego Fernandez, der vor elf Monaten gegangen ist. Keine Dokumentation. Keine Tests. Speicher-Allokationsmuster verwoben durch vierzehn Module, von Entwicklern, die größtenteils das Unternehmen verlassen haben. Datenbankabfragen mit veralteten Optimierungen, die niemand nach dem MySQL-Upgrade im Januar geprüft hat.

Jeder Fix, den ich versuche, erfordert es, erst drei andere Systeme zu verstehen. Jedes System wurde während einer Crunch-Phase gebaut, mit der Annahme, dass jemand es später aufräumen würde. Niemand hat es getan.

Das ist kein Performance-Problem. Das ist ein strukturelles Problem. Der Code verrottet von innen. Performance-Optimierung ist nur die Stelle, an der die Fäulnis sichtbar wurde.

Ich muss es morgen Lukas sagen. Er wird Performance aus Q2 streichen wollen, um die anderen vier Prioritäten zu schützen. Aber die Schulden hören nicht bei der Performance auf. Sie durchziehen alles.

Er legte sein Handy auf den Tisch. Im Schlafzimmer drehte sich Irina im Schlaf um. Maschas Stoffhase saß auf der Küchenzeile, wo sie ihn vor dem Zubettgehen liegen gelassen hatte.

Er nahm den Hasen und legte ihn vor die Schlafzimmertür, damit sie ihn morgen früh finden würde. Dann ging er zurück an den Tisch und saß lange im Dunkeln.

Zwölf Wochen. Mindestens. Sie hatten vier.

Donnerstag, 09:15 — Besprechungsraum „Kreuzberg”

Besprechungsraum mit Antons technischer Bewertung projiziert an der Wand, rote Abhängigkeitslinien sichtbar, Lukas umklammert die Armlehne, Katja und Tomasz beobachten
„Sechs Sprints. Mindestens. Und das ist mit Hilfe."

Antons Bewertungsdokument füllte den Wandbildschirm. Sechs Seiten. Vierzehn kommentierte Abhängigkeitsdiagramme. Jede rote Linie eine technische Schuld. Jede gelbe Flagge ein fehlender Test. Jeder graue Knoten ein Modul, geschrieben von jemandem, der hier nicht mehr arbeitete.

Katja saß auf einer Seite des Tisches. Lukas auf der anderen. Tomasz lehnte am Fenster, Arme verschränkt. Mariana hatte sich einen Stuhl in die Ecke gezogen.

„Führe uns durch,” sagte Katja.

Anton begann mit dem Partikel-Renderer. Zweitausend Zeilen undokumentierter eigener Code eines Entwicklers, der ohne Übergabe gegangen war. Er zeigte die Abhängigkeitskette: Rendering zu Texturatlas zu Build-Skript zu Asset-Pipeline. Jedes Glied hatte seine eigenen Bruchstellen.

Dann die Speicher-Allokation. Vierzehn Module. Kein Pooling. Garbage Collector fror das Spiel bei Spitzenlast mehrfach pro Sekunde ein.

Dann die Datenbankabfrage. Veraltete Optimierung. MySQL-Upgrade, das niemand geprüft hatte.

Lukas hörte zwölf Minuten schweigend zu. Seine Finger trommelten auf den Tisch. Das Trommeln wurde schneller, je schlechter die Zahlen wurden.

„Also die Zwei-Sprint-Schätzung…” begann Lukas.

„Ist sechs Sprints. Mindestens. Und das ist mit Hilfe. Allein kann ich nicht vierzehn Module gleichzeitig im Kopf behalten.”

„Sechs Sprints.” Lukas sagte die Worte langsam, als würde er etwas Bitteres kosten. „Wir haben uns vor vier Tagen auf fünf Q2-Prioritäten geeinigt. Performance war Nummer eins. Und jetzt sagst Du mir, dass Nummer eins allein drei Mal das gesamte Quartal auffressen wird.”

„Ja.”

Stille. Lukas sah Katja an. Sie zuckte nicht.

„Streichen,” sagte Lukas. „Performance nach Q3 schieben. Die anderen vier Prioritäten schützen. Wir haben fünf vereinbart, wir liefern vier.”

„Du kannst es nicht streichen.” Antons Stimme war leise, aber fest. „Die Schulden betreffen nicht nur die Performance. Sie betreffen alles.”

„Was meinst Du mit alles?”

Tomasz stieß sich vom Fenster ab. „Er meint, dieselben technischen Schulden, die die Performance-Optimierung blockieren, blockieren auch die anderen vier Prioritäten. Verschiedene Symptome. Dieselbe Krankheit.”

Lukas’ Kiefer verkrampfte sich. „Erkläre.”

Donnerstag, 09:47 — Der Domino-Effekt

Derselbe Besprechungsraum, Hassan jetzt in der Tür mit Kaffee, dunkle Ringe unter den Augen, Mariana beugt sich vor mit ihrem Laptop, der ein weiteres Abhängigkeitsdiagramm zeigt
„Verschiedene Symptome. Dieselbe Krankheit."

Mariana beugte sich auf ihrem Stuhl in der Ecke vor. „Darf ich?”

Katja nickte.

„Ich habe gestern angefangen, das Charakter-Anpassungs-MVP zu schätzen. Priorität Nummer fünf.” Mariana zog ein Diagramm auf ihrem Laptop auf. „Es erfordert Änderungen am Inventarsystem. Das Inventarsystem nutzt dasselbe Modul mit der veralteten MySQL-Abfrage, die Anton gefunden hat. Dieselben verworrenen Abhängigkeiten. Dieselben fehlenden Tests.”

Sie ließ das sacken.

„Neue Gegenstandstypen zum Inventar hinzuzufügen, ohne automatisierte Tests zu haben, bedeutet, dass ich bestehendes Verhalten kaputtmache und wir es erst mitbekommen, wenn die Spieler es melden. Wie letztes Mal.”

Letztes Mal. Der Inventar-Bug. 4.847 Spieler mit leeren Arrays. App-Store-Bewertung im Sturzflug auf 2,1 Sterne. Niemand in diesem Raum hatte das vergessen.

„Custom-Reporting,” sagte Katja und schaute auf das Whiteboard, wo die fünf Prioritäten noch in blauem Marker standen. „Priorität Nummer zwei. Marcus braucht es für die Abwanderungsanalyse.”

„Custom-Reporting braucht die Analytics-Datenpipeline,” sagte Mariana. „Priyas Team pflegt das Frontend, aber die Pipeline läuft auf Infrastruktur, die Hassan verwaltet. Die Datentransformationsschicht wurde vor achtzehn Monaten als ‚Übergangslösung’ geschrieben.”

„Dazu kann ich was sagen.” Hassans Stimme kam aus der Tür. Er war spät dran, dunkle Ringe unter den Augen, einen Kaffee in der Hand, den er mehr brauchte als wollte. Er sah aus, als hätte er seit einer Woche nicht richtig geschlafen. Hatte er auch nicht.

„Die Datenpipeline läuft auf Infrastruktur, die ich an einem Crunch-Wochenende letztes Jahr zusammengeflickt habe. Sie funktioniert. Gerade so. Wenn Priyas Team sie für Custom-Reporting skalieren will, bricht sie zusammen. Sie neu zu bauen, bedeutet, die Deployment-Skripte anzufassen, was bedeutet…”

„Deployment-Automatisierung,” vollendete Katja. „Priorität Nummer drei.”

„Genau.” Hassan setzte sich. „Deployment-Automatisierung sollte eigentlich simpel sein. Meine manuellen Skripte durch ordentliches CI/CD ersetzen. Aber die manuellen Skripte sind auf das aktuelle Infrastruktur-Layout hartcodiert, das ist…” Er suchte nach dem richtigen Wort. „Nichts, was irgendjemand absichtlich so entwerfen würde. Ein schlechtes Design zu automatisieren, automatisiert nur das Schlechte. Schneller.”

Vier von fünf Q2-Prioritäten. Alle blockiert von derselben Fäulnis. Zwei Jahre Abkürzungen, übereinandergeschichtet wie geologische Ablagerungen: Jeder Crunch-Zyklus schied eine weitere Schicht Schulden ab, jede Deadline begrub das vorherige Chaos unter neuem Chaos, jeder gehende Entwickler nahm undokumentiertes Wissen mit.

„Spieler-Analytics?” fragte Lukas. Seine Stimme war jetzt flach. Er umklammerte die Armlehne mit beiden Händen. Weiße Knöchel. „Priorität Nummer vier. Claudias Board-Dashboard.”

„Analytics ist die eine Priorität, die sich eigenständig umsetzen lässt,” sagte Mariana vorsichtig. „Es ist größtenteils Frontend. Neue Dashboard-Ansichten über existierende Daten. Aber die Daten, die es anzeigt, kommen aus derselben Pipeline, die Hassan gerade beschrieben hat. Wenn die zugrundeliegenden Zahlen falsch sind, weil die Pipeline unzuverlässig ist, ist das Dashboard schlimmer als nutzlos. Es ist selbstbewusst falsch.”

Lukas starrte auf das Whiteboard. Fünf Prioritäten in blauem Marker. Jede einzelne hatte jetzt unsichtbare Ketten, die sie mit einem Fundament aus Klebeband und Versprechen verbanden.

„Also was sagt Ihr mir?” Seine Stimme war angespannt. „Dass wir nichts davon umsetzen können?”

„Wir können alles umsetzen,” sagte Anton. „Aber nicht in vier Wochen. Nicht auf diesem Fundament.”

„Was dann? Was ist der tatsächliche Plan?”

Tomasz stieß sich wieder vom Fenster ab. „Wir investieren die ersten vier Sprints in Grundlagenarbeit. Technische Schulden aufräumen. Automatisierte Tests für die kritischen Module. Dokumentation. Infrastruktur-Umbau, damit Hassan nicht der Einzige ist, der ausliefern kann. Dann bauen wir in Q3 die Features auf solidem Grund. Die gehen dann drei Mal schneller, weil wir nicht die ganze Zeit gegen die Codebasis kämpfen.”

„Vier Sprints Aufräumarbeiten.” Lukas’ Stimme war angespannt. „Das sind zwei Monate null Features. Null sichtbarer Fortschritt. Das Board wird…”

„Das Board wird so oder so nichts bekommen.” Katjas Stimme schnitt durch, scharf und endgültig. „Entweder wir investieren zwei Monate in die Reparatur des Fundaments und liefern Features planmäßig in Q3. Oder wir verbringen vier Monate im Kampf gegen die Schulden, während wir versuchen Features auszuliefern, liefern alles zu spät und kaputt, und erklären dem Board, warum auch Q3 und Q4 eine Katastrophe sind.”

Lukas saß lange schweigend da. Die Glaswände des Besprechungsraums legten sie alle offen gegenüber der Entwickleretage draußen. Entwickler an ihren Schreibtischen, die so taten, als würden sie nicht hinschauen. Die so taten, als wüssten sie nicht, was im Raum mit den vierzehn roten Linien auf dem Bildschirm besprochen wurde.

„Ich muss darüber nachdenken,” sagte Lukas. Er stand auf und ging hinaus.

Niemand sonst bewegte sich eine Weile.

„Er wird sich überzeugen lassen,” sagte Katja. Ihre Stimme trug mehr Hoffnung als Überzeugung.

„Wirklich?” fragte Mariana.

Niemand antwortete. Auf dem Wandbildschirm blinkte Antons Abhängigkeitsdiagramm geduldig. Vierzehn Module. Sechs Sprints. Zwei Jahre Schulden. Dieselbe Zahl, ob jemand hinsah oder nicht.

Donnerstag, 15:22 — Navigator-Wochensynthese

Katja an ihrem Schreibtisch liest die Synthese-E-Mail, Hand vor dem Mund, Bildschirm zeigt den Wochenbericht mit roten Warnanzeigen
„Das, was sie nicht benennen wollte, weil es unmöglich zu ignorieren wurde, sobald man es benannte."

Die Synthese-E-Mail traf um 15:22 ein.

Navigator-Wochensynthese — Woche 10 (5.–9. April)

Erkannte Muster:

1. Oster-Wochenende Crunch (Kritisch — Menschliche Kosten)

Drei Entwickler arbeiteten am Ostersonntag. Hassan Al-Rashid logte 22 Stunden über Samstag und Sonntag und hielt die Infrastruktur allein am Laufen. Anton Petrov arbeitete sechs Stunden von zu Hause, während seine Familie ohne ihn feierte. Mariana Santos debuggte neun Stunden allein Session-Management-Bugs.

Kein Vorgesetzter hat diese Arbeit angeordnet. Keine Erwartung wurde formell kommuniziert. Diese Entwickler arbeiteten, weil die Systeme ohne ihr individuelles Eingreifen ausgefallen wären. Das ist ein systemisches Einzelpersonen-Abhängigkeitsmuster, kein freiwilliges Engagement.

Externe Sichtbarkeit: Eine Entwicklerin berichtete öffentlich in den sozialen Medien über sechs aufeinanderfolgende Wochen Burnout. Der Beitrag erhielt erhebliche Resonanz und Kontaktaufnahmen von Personalvermittlern. Interner Frust wird nach außen sichtbar.

2. Technische Schulden blockieren alle Q2-Prioritäten (Kritisch — Lieferrisiko)

Anton Petrovs Bewertung der Performance-Optimierung offenbart angesammelte technische Schulden über vierzehn miteinander verbundene Module. Die ursprüngliche Zwei-Sprint-Schätzung hat sich auf sechs oder mehr Sprints verdreifacht.

Ursachen: Undokumentierter eigener Code von ehemaligen Entwicklern, null automatisierte Tests in kritischen Modulen, veraltete Datenbankoptimierungen, die nach Plattform-Upgrades nicht geprüft wurden, manuell aufgebaute Infrastruktur unter anhaltenden Crunch-Bedingungen.

Kritische Erkenntnis: Die technischen Schulden beschränken sich nicht auf die Performance. Vier von fünf Q2-Prioritäten hängen vom selben kompromittierten Fundament ab. Deployment-Automatisierung ist durch hartcodierte Infrastruktur-Skripte blockiert. Custom-Reporting hängt an einer instabilen Datenpipeline. Charakter-Anpassung erfordert Änderungen an ungetesteten Inventarmodulen.

Muster: Zwei Jahre anhaltender Crunch erzeugten einen Tempo-Schulden-Kreislauf. Deadlines eliminierten Wartungszeit. Ausgelassene Wartung erzeugte technische Schulden. Technische Schulden verlangsamten die Auslieferung. Langsamere Auslieferung erzeugte Druck für mehr Crunch. Der Kreislauf hat eine terminale Phase erreicht, in der angesammelte Schulden jeden Fortschritt vollständig blockieren.

3. Burnout auf historischem Höchststand

Die Kombination aus Oster-Crunch und der Entdeckung technischer Schulden hat die Entwickler-Moral auf den niedrigsten jemals gemessenen Stand in sieben Wochen Navigator-Daten gedrückt. Die Log-Stimmung zeigt Erschöpfung und Resignation deutlich über jeder früheren Messperiode.

Bemerkenswerte Einträge:

  • Hassan Al-Rashid: „Das ist nicht nachhaltig. Das sagen alle. Es ändert sich nichts.”
  • Anton Petrov: „Das ist kein Performance-Problem. Das ist ein strukturelles Problem. Der Code verrottet von innen.”
  • Eine Entwicklerin berichtete öffentlich über Burnout; Personalvermittler reagierten sofort.
  • Drei Senior-Entwickler erhielten in der letzten Woche unaufgeforderte Kontaktaufnahmen von Personalvermittlern.

4. Priorisierungsfortschritt unter Bedrohung (Gemischt)

Die Priorisierungsübung der letzten Woche (Reduzierung von 94 hochprioritären Einträgen auf fünf Q2-Muss-Ziele) war eine bedeutende organisatorische Leistung. Die unmittelbare Entdeckung, dass vier von fünf Prioritäten durch technische Schulden blockiert sind, hat allerdings eine sekundäre Krise ausgelöst: Die Organisation hat jetzt klare Prioritäten, verfügt aber nicht über das technische Fundament, um sie umzusetzen.

Das Team steht vor der Wahl zwischen zwei Wegen: (a) Features auf einem kompromittierten Fundament versuchen und verzögerte, fragile Auslieferung akzeptieren, oder (b) zuerst in die Reparatur des Fundaments investieren und eine Phase ohne sichtbaren Feature-Output akzeptieren. Keiner der Wege ist bequem. Nur einer ist nachhaltig.

Empfehlungen:

  1. Fundament-Sprint: Gezielte Zeit für technische Schuldenbereinigung einplanen, bevor Feature-Entwicklung versucht wird. Aktuelle Feature-Schätzungen sind unzuverlässig, weil sie die versteckten Kosten der Arbeit um angesammelte Schulden herum nicht einbeziehen.
  2. Bus-Faktor-Reduzierung: Drei Entwickler (Hassan, Anton, Mariana) tragen unverhältnismäßig viel Systemwissen. Jeder einzelne Abgang würde eine kritische Kapazitätslücke erzeugen.
  3. Externe Perspektive: Die Organisation könnte von einer externen technischen Bewertung profitieren. Interne Teams sind zu nah am Problem und zu erschöpft, um es gleichzeitig zu diagnostizieren und zu beheben.
  4. Tempo-Reset: Die aktuellen Arbeitszeiten sind nicht nachhaltig. Das Oster-Wochenende war ein Symptom, kein Ausreißer. Das Team befindet sich seit mindestens sechs aufeinanderfolgenden Wochen im Crunch-Modus ohne Erholungsphase.

Risikobewertung:

Das Abwanderungsrisiko ist erhöht. Mehrere Entwickler erhalten Aufmerksamkeit von Personalvermittlern. Die Kombination aus anhaltendem Crunch, technischer Frustration und sichtbarem Burnout schafft Bedingungen, unter denen erfahrene Entwickler zu Organisationen wechseln, die nachhaltiges Tempo wertschätzen. Angesichts der kritischen Wissenskonzentration bei Hassan (Infrastruktur), Anton (Unity) und Tomasz (Architektur und institutionelles Wissen) würde selbst ein einzelner Abgang die Auslieferungskapazität erheblich reduzieren.


Katja las es zweimal. Ihre Hand lag über dem Mund.

Die Synthese hatte ausgesprochen, was sie seit Wochen umkreiste. Das, was sie nicht benennen wollte, weil es unmöglich zu ignorieren wurde, sobald man es benannte.

Sie waren zu kaputt, um sich selbst zu reparieren. Zu tief im Chaos, um seine Ränder zu sehen. Zu erschöpft, um die Arbeit zu tun, die getan werden musste, und gleichzeitig das Spiel am Laufen zu halten. Die Schulden waren strukturell. Das Burnout war systemisch. Und ausgerechnet die Menschen, die das Problem am klarsten verstanden, wurden davon zerstört.

Sie öffnete ihren Log.

Navigator — Katja Müller — 9. April 2026, 15:41

Die Synthese bestätigt, was das Meeting heute morgen gezeigt hat. Vier von fünf Q2-Prioritäten sind durch dieselben technischen Schulden blockiert. Unsere besten Leute sind ausgebrannt. Personalvermittler kreisen.

Wir brauchen externe Hilfe. Keine Beratungsfirma, die Methoden verkauft. Nicht jemand, der Berichte schreibt und wieder geht. Jemand, der sich ins Team integrieren kann, den Code liest und repariert, was wirklich kaputt ist. Jemand, der versteht, dass das ein Praxisproblem ist, kein Prozessproblem.

Ich fange heute Abend an zu suchen.

Donnerstag, 18:30 — Dachterrasse

Katja und Tomasz stehen am Geländer einer Dachterrasse, Berliner Skyline in der Abenddämmerung, der Fernsehturm sichtbar gegen einen grau-violetten Himmel, beide in Jacken, Wind in den Haaren
„Ich sage, die Synthese hat Recht mit dem Abwanderungsrisiko. Und ich sage, Du solltest das ernst nehmen."

Die Dachterrasse war leer. Aprilabend, noch kalt genug, um die meisten Leute unten in der warmen Lobby zu halten. Katja stand am Geländer, ihre Wolljacke bis zum Kinn hochgezogen, und schaute dem Fernsehturm beim Blinken gegen den dunkler werdenden Himmel zu.

Tomasz tauchte neben ihr auf. Keine Jacke. Schien die Kälte nicht zu bemerken.

„Du hast die Synthese gelesen,” sagte sie.

„Ja.”

Sie standen schweigend da. Unten rumpelte die U-Bahn in den Bahnhof Alexanderplatz. Ein Radfahrer fuhr die Prenzlauer Allee entlang und zog einen Bluetooth-Lautsprecher hinter sich her, aus dem etwas mit schwerem Bass dröhnte, das verklingte, als er vorbeifuhr.

„Die Empfehlung bezüglich externer Hilfe,” sagte Tomasz. „Navigator hat Recht. Wir stecken zu tief drin.”

„Ich weiß.”

„Wir brauchen jemanden, der dieses Muster schon mal repariert hat. Jemand, der in eine Codebasis reingeht, sich das Team anschaut und sagt: ‚Hier ist, was wirklich falsch ist, und hier ist die Reihenfolge, wie man es behebt.’”

Katja nickte. „Keinen Berater, der Methoden verkauft.”

„Gott, nein.” Tomasz grinste fast. Fast. „Jemand, der Code schreibt. Jemand, der Infrastruktur wiederaufgebaut hat, die mit Cronjobs und Gebeten zusammengehalten wurde. Jemand, der mit Anton und Hassan pairen kann und wirklich hilft, statt nur zu beobachten und Folien zu basteln.”

Der Wind frischte auf. Sie zog ihren Kragen enger.

„Da ist noch was,” sagte Tomasz.

Sie sah ihn an. Sein Gesicht zeichnete sich gegen das Stadtlicht ab. Die Müdigkeit war nicht neu. Aber etwas in seinem Ausdruck war es. Eine Stille, die sie vorher nicht gesehen hatte.

„Lukas hat mich befördert, weil ich der beste Entwickler im Team war. Ich hab ja gesagt, weil ich dachte, Engineering zu leiten, bedeutet Engineering.” Er machte eine Pause. „Tut es nicht. Es bedeutet Meetings. Slack-Nachrichten. Entscheidungen verteidigen, die ich nicht getroffen habe, vor Leuten, die die Rahmenbedingungen nicht verstehen. Menschen führen, wenn alles, was ich will, Probleme lösen ist.”

Ein langer Atemzug. Der Fernsehturm blinkte. Rot. Pause. Rot.

„Ich brenne aus, Katja. Seit Monaten. Meine Logs zeigen es. Die Synthese zeigt es. Jeder, der hinschaut, kann es sehen.”

„Ich weiß,” sagte sie leise. „Ich habe Deine Logs gelesen.”

„Dann weißt Du, dass ich das nicht mehr lange durchhalte.”

Die Stadt summte unter ihnen. Zehntausend Dinge geschahen gleichzeitig, keines davon von hier oben sichtbar. Im Besprechungsraum im vierten Stock hing Antons Abhängigkeitsdiagramm noch auf dem Wandbildschirm. Vierzehn Module. Alle verbunden. Alle am Verrotten.

„Was willst Du damit sagen?” fragte Katja.

Tomasz blickte über die Skyline. „Ich sage, die Synthese hat Recht mit dem Abwanderungsrisiko. Und ich sage, Du solltest das ernst nehmen.”

Er fügte nichts hinzu. Die Bedeutung hing in der kalten Aprilluft zwischen ihnen, schwer und klar.

„Lass uns diese Woche überstehen,” sagte Katja. „Ich rede mit Lukas über die externe Hilfe. Und über das Tempo.”

„Gut.”

Sie gingen zurück ins Gebäude. Die Dachterrassentür schloss sich hinter ihnen mit einem metallischen Klicken, das über die leere Terrasse hallte.

Unten auf der Entwickleretage waren die meisten schon nach Hause gegangen. Antons Arbeitsplatz war dunkel. Hassans Platz war zum zweiten Mal diese Woche dunkel, aber diesmal, weil er um 17:00 gegangen war, zum ersten Mal seit Monaten. Seine Mutter hatte um 16:30 wieder angerufen. Diesmal hatte er abgenommen.

Er hatte seinen Laptop zugeklappt und war gegangen.

Zwei Jahre technische Schulden warteten in der Codebasis. Geduldig. Gleichgültig gegenüber Feiertagen und Streit und Burnout. Sie würden morgen da sein, und übermorgen, und am Tag danach. Die einzige Frage war, ob die Menschen, die sie beheben konnten, noch da sein würden, wenn die Organisation sich endlich entschied, sie zu lassen.

Nächste Folge: "Der Bruchpunkt" Tomasz geht am Montagmorgen in Katjas Büro. Er setzt sich nicht hin. Das Gespräch dauert elf Minuten und verändert alles. Die Navigator-Synthese wird später enthüllen, dass sein Name in 41 verschiedenen täglichen Logs über sieben Abteilungen hinweg auftauchte. Manche Menschen sind tragend. Man bemerkt es erst, wenn sie weg sind.
×