Neulich habe ich mir ein Vortragsvideo angesehen, das mir ungewöhnlich lange nachgegangen ist. Es war ein Vortrag auf der Prodacity 2026 von Kent Beck, der Extreme Programming entwickelt und TDD weltweit bekannt gemacht hat. Der Titel war „Software Engineering in the Age of AI“. Es ging um die Frage, was es heißt, Software gut zu bauen, jetzt, wo KI einen großen Teil des Codes schreibt. Was mich in den gut 52 Minuten am meisten angesprochen hat, waren zwei Wörter und eine kurze Anekdote über einen Cellisten.
Kent Beck hat Softwareentwicklung anhand von zwei Achsen erklärt: Features und Futures. Das eine sind die Features, die wir umsetzen. Das andere sind unsere Optionen, diese Software in Zukunft zu verändern, also der Spielraum für Veränderung (Optionality). Laut Kent Beck startet ein Projekt ohne ein einziges Feature, aber mit unendlich vielen Möglichkeiten, und mit jedem Feature, das man umsetzt, werden die Futures weniger. Wenn man immer nur weiter Features anhäuft, hat man seiner Meinung nach am Ende tote Software, an der sich kaum noch etwas anfassen lässt und deren Futures auf null stehen.
In gewisser Weise hatte ich das in meiner bisherigen Arbeit als Entwickler selbst erlebt: wie wichtig Refactoring ist. Wo sich schon während der Arbeit an einem Feature etwas verbessern ließ, habe ich nebenher ein Refactoring gemacht. Und selbst wenn vor dem nächsten Feature nur kurz Zeit blieb, habe ich sie als Zeit fürs Refactoring gesehen. Doch mir ist aufgegangen, dass ich die „Zeit fürs Refactoring“ aus den Augen verloren habe, seit ich irgendwann dazu übergegangen bin, das Programmieren komplett der KI zu überlassen. Beim Umsetzen eines Features denke ich zwar an mehrere Harnesses (also Mechanismen, die die Arbeit der KI korrigieren, etwa Tests, Linting, Hooks, Prompts mit Vorgaben und Prüfagenten), aber ich habe gemerkt, dass ich keine „reine Refactoring-Arbeit“ mache.
Auch in dem, was Kent Beck danach gesagt hat, habe ich mich sehr wiedergefunden: Früher hätten hundert Leute zehn Jahre gebraucht, bis die Futures auf null standen, heute könne dank KI eine Person in einer Woche ein komplettes Chaos anrichten. Was ich selbst erlebt habe, kann ich hier nicht im Einzelnen ausbreiten, aber während des ganzen Vortrags haben sich die Fehlversuche, auf die ich dabei gestoßen bin, einer nach dem anderen über Kent Becks Zeichnung gelegt. Rückblickend hatte ich wohl völlig vergessen, wie wichtig ein Cool-down zwischen einem Feature und dem nächsten ist.
Um die Alternative dazu zu erklären, hat Kent Beck eine Anekdote über den Cellisten Pablo Casals erzählt. Er habe sie als junger Mann gehört, als er an der Musikhochschule klassische Gitarre studierte. Das Cello ist ein Instrument, das viel Körpereinsatz verlangt, und in einem Stück, das Casals gespielt hat, soll es eine Passage gegeben haben, in der Sechzehntelnoten endlos aufeinanderfolgen. Als ihn jemand gefragt hat, ob er beim Spielen all dieser Sechzehntelnoten nicht müde werde, hat Casals geantwortet: „Nein, ich ruhe mich zwischen den Noten aus.“ In Wirklichkeit soll Casals so etwas nie gesagt haben, die Geschichte sei erfunden. Trotzdem sei sie so gut, dass er gar nicht anders könne, als sie zu erzählen, hat Kent Beck hinzugefügt.
Auch wenn sie erfunden ist: Die Geschichte vom Ausruhen zwischen den Noten hat mich wieder an etwas denken lassen. An eine „Zeit, in der man Hände und Atem zur Ruhe bringt, um die nächste Note genau zu treffen“, also an eine „Zeit zum Aufräumen“. Man braucht sie wohl auch bei der Arbeit mit KI, so hoch das Tempo dabei auch ist. Die „Zeit fürs Refactoring“, von der ich weiter oben geschrieben habe, war genau das, was zwischen den Noten liegt. Dass man zwischen den Features immer wieder aufräumen muss, wenn man flexible und zugleich erweiterbare Software bauen will, gehört zu den Grundlagen, die jeder Entwickler kennt. Aber gerade jetzt, wo Features nur so sprudeln, ist es, glaube ich, an der Zeit, sich wieder darauf zu besinnen. Casals hat sich sogar zwischen endlosen Sechzehntelnoten ausgeruht. Sollten dann nicht auch zwischen den schnell entwickelten Features Refactoring und das Aufräumen der Testfälle ihren Platz haben? Auch Kent Becks Vergleich „Beim Schneiden kann man das Messer nicht abwischen, aber abwischen muss man es“ hat mir sofort eingeleuchtet.
Spuren davon, dass ich ohne Aufräumen immer weitergerannt war, gab es nicht nur im Code. Auch auf meinem MacBook waren sie noch alle da. Eine Zeit lang waren die Aufgaben nur so auf mich eingeprasselt. Als sie erledigt waren und ich kurz Leerlauf hatte, habe ich Dinge bemerkt, die man erst sieht, wenn man die Hände ruhen lässt. Überall hatten sich Git-Worktrees und DB-Container angesammelt, die ich noch nicht aufgeräumt hatte, und der freie Speicherplatz ging zur Neige. Hätte ich mich einfach so in die nächste Aufgabe gestürzt, wäre der freie Speicher vielleicht irgendwann auf null gefallen, und alles wäre stehen geblieben. Erst als ich das alles Stück für Stück gelöscht hatte, hatte mein MacBook wieder Luft für die nächste Aufgabe. So gesehen hat auch mein MacBook ein wenig von seinen Futures zurückbekommen.
Vor Kurzem war ich mit meiner Familie auf Jeju. Von der Reise ist mir vor allem der Sonnenaufgang in Seogwipo in Erinnerung geblieben. Es war sehr schön, früh am Morgen aufzustehen und zuzusehen, wie die Sonne aufgeht. Der ganze Himmel war voller Schäfchenwolken, die sich von unten her orange gefärbt haben, und hinter den Silhouetten der Palmen hat die Sonne langsam hervorgeschaut.
Erstaunlicherweise hat sich die Morgenstimmung in unserer Familie schlagartig verändert, seit wir von der Reise zurück sind. Früh aufstehen und in den Tag starten: Das ist mittlerweile unser Rhythmus geworden, und ich spüre, dass wir dadurch auch körperlich allmählich gesünder werden. Für unsere Familie war diese Reise also das Aufräumen zwischen den Noten. Wenn ich so darüber nachdenke, scheint unser Leben gar nicht so anders zu sein als Software. Ob bei der Arbeit oder im Alltag mit Kind: Tag für Tag geht es im Eiltempo von einem Feature zum nächsten. Wenn dazwischen nicht aufgeräumt wird, brennen dann nicht auch die Futures unseres Lebens nach und nach herunter?