Als ich Florenz besuchte und zum ersten Mal vor dem David stand, erzählte mir mein Vater, dass Michelangelo gesagt habe, er habe den Mann nicht wirklich in den Marmor gemeisselt – der Mann sei bereits im Stein gewesen, und seine Aufgabe habe lediglich darin bestanden, ihn dort herauszuholen. Vielleicht ist es deshalb so beeindruckend, ihn zu sehen: weil der Stein keinen Spielraum für Fehler liess und ein einziger kleiner Finger ein ganzes Werk hätte ruinieren können. Aber auch, weil alles, was da ist, so aussieht, als sei es genau so vorgesehen, und alles, was nicht da ist, fehlt, weil es nicht dorthin gehört.
Zum Glück für Softwareentwickler hat sich unsere Branche stets in die entgegengesetzte Richtung entwickelt, und Verbesserungen sowie Fehler kosten praktisch nichts. Wir können unsere Arbeit jederzeit weiter gestalten, weiterentwickeln und den Stein so formen, wie es uns gefällt. Agile Methoden haben diesen Weg noch weiter ausgebaut, doch mit KI-Agenten ist er geradezu unendlich geworden: Ändern, Korrigieren, Gestalten und Verfeinern erfolgen praktisch reibungslos und die Kosten sind sehr gering.
Versteht mich nicht falsch: Das ist nichts Schlechtes. Die Möglichkeit, Fehler zu beheben und neue Dinge einfach auszuprobieren, kann das Endergebnis unserer Software und die Benutzererfahrung verbessern. Aber heute müssen wir mehr denn je die Gefahr des «unendlichen Steins» erkennen. So wie David mit einem Schwert, zwei Kronen, vier Hunden und einem Karren nicht besser gewesen wäre, wird auch unsere Software durch das Hinzufügen unendlich vieler Funktionen nicht effektiver.
Ich glaube, heute mehr denn je besteht die wichtigste Fähigkeit, die wir als Menschen mit Urteilsvermögen einbringen können, darin, den Dingen, die wir schaffen, einen Sinn und eine Richtung zu geben. Vielleicht ist es an der Zeit, die Hände ein wenig von der Tastatur zu nehmen und mehr mit kritischem Blick und offenem Ohr an die Arbeit zu gehen. Dax Raad, der Schöpfer von opencode, sagte, dass die Tatsache, dass es sehr einfach ist, eine Funktion zu veröffentlichen, nicht bedeutet, dass man sie auch entwickeln sollte.
Wenn ich mich in letzter Zeit mit Kunden unterhalte, stelle ich oft fest, dass ich Dinge, die früher als «Nice to have» notiert und nie umgesetzt wurden, mittlerweile problemlos umsetzen kann. Und die Sache ist die: Diese Idee macht heute kaum noch Sinn. Vielleicht sollten wir diesen Abschnitt in etwas wie «Ist das wirklich schön zu haben?» umbenennen.
Ich persönlich bin ein bisschen traurig über diese neue Phase, in der Code keine Rolle mehr spielt, denn eines der Dinge, die mich zum Programmieren begeistert haben, waren genau jene Probleme, bei denen ich mir stundenlang die Haare raufte und Dokumentation sowie Beiträge auf Stack Overflow durchforstete, bis ich eine Lösung gefunden hatte. Ich glaube, diese Zeiten sind vorbei (man muss sich nur den Einbruch bei der Anzahl der Fragen auf Stack Overflow ansehen, um das zu verstehen). Aber diese Ära hinter sich zu lassen, heisst nicht, dass es nichts mehr zu tun gibt, und was übrig bleibt, ist für viele Menschen in der Tech-Branche vielleicht der spassigste und herausforderndste Teil: die Verbindung zwischen der technischen Welt und dem Zweck dessen, was wir tun. Es geht darum, viel ausgereiftere Designs zu schaffen und nicht einfach eine Reihe von Funktionen zu programmieren, sondern eine Benutzererfahrung, bei der jedes Detail seinen Zweck erfüllt.