Kommentar von Prof. Michael Berthold Die Zukunft des Programmierens: Verhalten beschreiben statt Code schreiben

Von Prof. Michael Berthold 5 min Lesedauer

Aktuelle Erfahrungen zeigen, dass Vibe Coding – das intuitive Herumexperimentieren mit Prompts – nur selten zu soliden und reproduzierbaren Ergebnissen führt. Denn je leistungsfähiger diese Systeme werden, desto deutlicher zeigt sich eine zentrale Herausforderung: Nicht der erzeugte Code ist das Problem, sondern das gemeinsame Verständnis darüber, welches Verhalten eine Software zeigen soll. In seinem Beitrag erläutert KI- und Datenanalyse-Experte Michael Berthold, weshalb die Zukunft des Programmierens nicht mehr primär im Schreiben von Code liegt, sondern im präzisen Beschreiben gewünschten Verhaltens.

Der Autor: Prof. Michael Berthold ist Informatiker und international anerkannter Experte für Data Science, KI und maschinelles Lernen. Er war Mitgründer und treibende Kraft hinter der Open-Source-Plattform KNIME. Sein Fokus liegt auf transparenter, nachvollziehbarer KI und praxisnaher Anwendung moderner Data-Analytics-Forschung.(Bild:  Michael Berthold)
Der Autor: Prof. Michael Berthold ist Informatiker und international anerkannter Experte für Data Science, KI und maschinelles Lernen. Er war Mitgründer und treibende Kraft hinter der Open-Source-Plattform KNIME. Sein Fokus liegt auf transparenter, nachvollziehbarer KI und praxisnaher Anwendung moderner Data-Analytics-Forschung.
(Bild: Michael Berthold)

Ich habe vor Kurzem selbst versucht, zwei Anwendungen per Vibe Coding zu entwickeln. Dabei zeigte sich schnell eine deutliche Spannweite in den Ergebnissen. Die erste Erfahrung war beeindruckend: Die KI baute die Anwendung, ergänzte auf Wunsch eine Nutzeranmeldung, integrierte eingebettete KI-Funktionen und schlug am Ende sogar noch eine Verbesserung für den gewünschten Gastmodus vor. Das war bemerkenswert. Dennoch blieb dieses unterschwellige Unbehagen: Was genau hatte die KI eigentlich getan? Welche Annahmen oder welches Modell lagen der Umsetzung zugrunde? Sichtbar war letztlich nur das Ergebnis.

Im zweiten Experiment gelang es nicht einmal, über den Login-Bildschirm hinauszugelangen. Die KI schaffte es nie, den Authentifizierungsprozess des zugrunde liegenden Systems zu verstehen, auf das die Anwendung zugreifen musste. Sie schlug immer neue Verbesserungen und Workarounds vor, die angeblich die Fehler beheben würden, aber letztlich landeten wir in einer Endlosschleife. Es funktionierte einfach nicht.

Es fehlt das gemeinsame Verständnis

Was hatten beide Erfahrungen gemeinsam? In beiden Fällen fehlte ein explizites, gemeinsames Verständnis darüber, was die KI umsetzen sollte. Wir diskutierten permanent über das Ergebnis – und in einem Fall funktionierte das erstaunlich gut. Im anderen Fall hingegen kamen wir nie zu einem funktionierenden System.

Das Problem war nicht, dass die KI nicht programmieren konnte. Das Problem war, dass wir nie ein gemeinsames Verständnis des gewünschten Verhaltens aufgebaut hatten.

Die naheliegende Lösung wäre natürlich: Zeig mir den Code, dann finden wir es gemeinsam heraus. Aber genau das entspricht nicht dem Grundgedanken von Vibe Coding. Ziel ist nicht, dass jeder Mensch selbst zum Programmierer werden muss. Das ist schon allein deshalb nicht der Fall, weil die KI idealerweise – je nach Problem – ganz unterschiedliche Programmiersprachen „unter der Haube“ verwendet. Kein Mensch wird jemals in all diesen Sprachen gleichermaßen kompetent sein. Daher sollte der Fokus auf dem Was liegen. Die KI kann sich dann um das Wie, also den Code, kümmern.

Eine gemeinsame Sprache ist gefragt

Die eigentliche Frage lautet daher: Wie können wir mit einer KI systematischer kommunizieren als nur über informelle Gespräche, sodass beide Seiten im Laufe der Zeit ein gemeinsames Verständnis des gewünschten Verhaltens entwickeln?

Die Softwaretechnik beschäftigt sich seit Jahrzehnten mit genau diesem Problem. Nutzer hatten oft sehr konkrete Vorstellungen über die gewünschte Funktionalität, konnten diese aber nur unzureichend präzisieren. Und am Ende tat die gelieferte Software nicht wirklich das, was sie eigentlich erwartet hatten. Deshalb haben wir Anforderungsdokumente und Softwarespezifikationen eingeführt.

Vor diesem Hintergrund entwickelte sich die Annahme, dass KI künftig in der Lage sein wird, Spezifikationen direkt in Code zu übersetzen. Ein erster Ansatz in dieser Richtung ist Specification Driven Development, das sich aber an erfahrene Programmierer richtet, die diese Art technischer Spezifikationsdokumente verstehen. Für eine viel breitere Anwendbarkeit werden diese Spezifikationen aber künftig anders aussehen müssen als heute. Sie werden eher eine Mischung aus Anforderungsbeschreibung und Spezifikation sein – in einer Art Sprache, die optimal dafür geeignet ist, dass Menschen alle Facetten eines Programms verstehen, das sie von der KI entwickeln lassen wollen. Und natürlich werden wir diese Dinge – nennen wir sie einmal „Verhaltensspezifikationen“ – nicht mehr allein von Grund auf schreiben. Wir werden sie gemeinsam mit der KI erstellen und kontinuierlich weiterentwickeln.

Der entscheidende Unterschied zu heute ist folgender: In meinem zweiten Experiment hätten wir zu einem bestimmten Zeitpunkt aufhören können, ausschließlich darüber zu sprechend, dass „beim Login jetzt Fehler 1037 auftritt“. Stattdessen hätte die Frage lauten können: „Sag mal – was glaubst du eigentlich, was du im Login-Teil dieser Anwendung tun sollst?“ Auf dieser Basis hätten wir dann das Dokument des gewünschten Verhaltens gemeinsam erweitern können, anstatt dass ich mich über Fehlermeldungen ärgere und die KI Änderungen am Code ausprobiert. Dann hätte ich besser nachvollziehen können, was die KI eigentlich erreichen wollte, und hätte helfen können, falsche Annahmen zu korrigieren. Vielleicht hätte die KI manche Probleme sogar selbst erkannt – einfach dadurch, dass sie gezwungen gewesen wäre, systematisch zu beschreiben, was sie eigentlich vorhat.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Verhaltensspezifikation zuverlässig in Code übersetzen

Daraus ergibt sich noch ein weiterer spannender Nebeneffekt. Wir brauchen die KI, um diese Verhaltensspezifikation zuverlässig in Code zu übersetzen. Idealerweise erhalten wir bei derselben Spezifikation auch denselben Code. Oder vielleicht noch ambitionierter: Code, der garantiert die Spezifikation erfüllt – also tatsächlich das gewünschte Verhalten zeigt.

Am Ende könnte die KI wie ein Compiler arbeiten: Sie übersetzt sauber spezifiziertes Verhalten in ein ausführbares Programm. Daraus ergeben sich zahlreiche interessante Konsequenzen. Wir könnten die KI bitten, dieselbe Spezifikation für unterschiedliche Programmiersprachen, Betriebssysteme oder Hardwareplattformen zu übersetzen. Wir könnten die korrekte Funktion der Übersetzungs-KI sogar durch andere KIs überprüfen lassen – etwa mithilfe von „Unit Tests“, die wiederum aus weiteren Verhaltensspezifikationen mit den zugehörigen Implementierungen abgeleitet werden.

Dieser Ansatz funktioniert in beide Richtungen: Solche Dokumente könnten von der KI auch genutzt werden, um offene Fragen oder potenzielle Widersprüche zu erkennen und proaktiv zusätzliche Informationen vom Menschen einzufordern. Je mehr dieser Dokumente Teil des KI-Trainingsmaterials werden, desto besser wird die KI typische Muster erkennen und auf Unklarheiten oder ungewöhnliche Annahmen in einer Verhaltensspezifikation hinweisen können.

Eine neue Abstraktionsebene als Brückenschlag

Programmierung verschiebt sich damit auf eine neue Abstraktionsebene. Sobald wir verstanden haben, wie eine geeignete, sowohl KI- als auch menschenkompatible Sprache für Verhaltensspezifikationen aussehen muss und sobald wir verlässliche Wege gefunden haben, mit denen KI diese Beschreibungen in tatsächlichen Programmcode übersetzen kann. Wir abstrahieren damit die Notwendigkeit, das Wie technisch umzusetzen, und ersetzen sie durch die Fähigkeit, lediglich das Was präzise zu beschreiben.

Dafür brauchen wir eine Sprache, die maximale Ausdruckskraft für menschliche Beschreibung ermöglicht und gleichzeitig minimale Mehrdeutigkeit zulässt. Genau diese Spannung erklärt, warum informelles Prompting bei komplexeren oder unternehmenskritischen Anwendungen schnell an Grenzen stößt.

Wie wird das künftig aussehen? Menschen werden lernen, über die Funktionalität von Software in einer Sprache zu kommunizieren, die zugleich intuitiv und formal ausreichend präzise ist. Sie werden weiterhin in natürlicher Alltagssprache mit der KI sprechen können – aber sie werden jederzeit auf diese Verhaltensspezifikation als eine Art „reliability layer“ zurückgreifen können, um zu überprüfen, ob die KI tatsächlich verstanden hat, was gewünscht ist. Das erinnert an formale Spezifikationssprachen und andere klassische Methoden des Software-Engineerings. Der entscheidende Unterschied ist aber: KI macht diese formalen Methoden erstmals praktisch nutzbar, weil Menschen sie nicht länger allein erstellen müssen.

Die Zukunft des Programmierens wird daher nicht mehr darin bestehen, Quellcode zu bearbeiten, sondern strukturierte Beschreibungen gewünschten Verhaltens zu erzeugen, die KI in funktionierende Software übersetzt.

Artikelfiles und Artikellinks

(ID:50856948)