KI Navigator #7: Läutet KI das Ende der Spezies Softwareentwickler ein?
KI-Werkzeuge sind großartige Helfer beim Entwickeln von Software, aber für die entscheidenden Aufgaben ist der Mensch unersetzlich, meint Lars Röwekamp.

(Bild: CoreDESIGN/Shutterstock)
- Lars Röwekamp
Willkommen zur siebten Ausgabe der KI-Navigator-Kolumne der DOAG KI Community!
Spätestens seit dem Start von ChatGPT und dem damit losgetretenen Hype von GenAI ist der KI-Siegeszug nicht mehr aufzuhalten – auch in der Softwareentwicklung. Getreu dem Motto "Eat Your Own Dogfood" finden sich im Umfeld von Softwaredesign und -entwicklung mittlerweile unzählige KI-gestützte Helferlein, die Entwicklerinnen und Entwicklern die tägliche Arbeit abnehmen oder zumindest deutlich erleichtern sollen: angefangen bei Tools zur einfachen Codevervollständigung über intelligente Systeme zur Codedokumentation und -analyse inklusive Erklärfunktion bis hin zu mehr oder weniger gut funktionierenden Rundum-sorglos-Paketen, die eine vollständige Softwareanwendung auf Basis einer umgangssprachlichen Beschreibung des Problemraums erstellen.
Nicht wenige sagen bereits das Ende des Berufsbildes Softwareentwickler voraus. Dazu passt die Aussage von Jensen Huang, Nvidia-CEO, Anfang dieses Jahres: "We should stop saying kids should learn to code!". Müssen wir Software-Developer uns also – mal wieder – Sorgen um unsere Zukunft machen? Ich meine ja und nein.
Die KI ist gut
Es ist tatsächlich erstaunlich, wie gut die KI-Werkzeuge zur Unterstützung des Software Development Lifecycle mittlerweile funktionieren. Egal, ob die Allzweckwaffen der großen Player, wie Microsoft Copilot und Amazon Q, oder Tools von Spezialanbietern wie Gru und AppMap Navie, alle Angebote können mit scheinbar menschengleicher Intelligenz sehr viel Zeit beim Entwickeln von Software sparen. Und nicht nur das: Sie fungieren gleichzeitig als geduldiger Sparringspartner, erfahrener Kollege und wertvoller Tippgeber. Ein großes Plus in Zeiten des Fachkräftemangels.
Dank KI-Unterstützung können Teams darüber hinaus mehrere Lösungsansätze parallel ausprobieren, um sie auf Basis vorgegebener Kriterien gegenüberzustellen und abzuwägen, welche Variante für den eigenen Kontext am besten geeignet ist. Klingt gut, und ist es auch.
Die KI ist auch nur ein Mensch
Das obige Zitat von Jensen Huang ist nicht von ungefähr gewählt. Denn im selben Interview sagt Jensen auch, dass die Programmiersprache künftig die menschliche Sprache sein wird – in Form der Prompts in natürlicher Sprache. Und genau hier liegt der Knackpunkt.
Denn nur wenn der Mensch in der Lage ist, ein fachliches Problem mit all seinen Restriktionen in einen passenden umgangssprachlichen Prompt zu formulieren, kann die KI daraus eine sinnvolle Anwendung generieren. Der Prompt muss neben den rein fachlichen Aspekten zusätzlich softwarearchitektonische und technologische Randbedingungen berücksichtigen.
Und genau diese Fähigkeit, also das Abstrahieren der realen Welt in ein auf einen Problemraum zugeschnittenes Domänenmodell, unterscheidet seit jeher gute Developer von weniger guten. Ein richtig erstelltes Domänenmodell muss nur noch umgesetzt, also in Code gegossen werden. Eine wenig mehrwertstiftende Aufgabe, die Entwicklungsteams bereits heute häufig outsourcen und künftig gerne der KI überlassen dürfen.
KI ist Outsourcing Deluxe
Skeptiker mögen jetzt zu Recht anmerken, dass wir mit dem Outsourcing von Programmieraufgaben in den letzten Jahren nachweislich eher schlechte Erfahrungen gesammelt haben. Was lässt mich also glauben, dass KI genau diese Aufgabe künftig besser erledigen wird?
Beim klassischen Outsourcing beschreibt der Auftraggeber ein Problem und den dafür vorgesehenen Lösungsansatz formal. Anschließend wirft er ihn über den Zaun und wartet darauf, dass der Outsourcing-Partner die fertige Lösung zurück über den Zaun wirft. Ein Dialog zwischen den Beteiligten mit dem Ziel der iterativen Optimierung ist bei diesem Modell der Zusammenarbeit nur bedingt möglich und in der Regel aufgrund der damit verbundenen zusätzlichen Kosten nicht erwünscht.
Das bedeutet im Umkehrschluss, dass die initiale Beschreibung sowohl des Problems als auch des gewünschten Lösungsansatzes im ersten Wurf perfekt sein muss. In fast fünfzig Jahren Softwareentwicklung haben wir gelernt, dass diese Anforderung nahezu unmöglich ist.
Anders sieht es beim Einsatz von KI aus: Mit ihrer Hilfe und entsprechender menschlicher Expertise können Entwicklerinnen und Entwickler in den Dialog gehen und Schritt für Schritt eine Lösung entwickeln (lassen) und verbessern (lassen). Darüber hinaus können sie mit Unterstützung der KI parallel mehrere Lösungsansätze schnell und effizient ausprobieren und gegeneinander abwägen.
Der wesentliche Faktor in diesem Zusammenspiel ist und bleibt aber der Mensch. Zum einen muss er die Fähigkeit besitzen, den Problemraum initial und für die KI verständlich zu beschreiben. Zum anderen muss er den Dialog und damit das konkrete Vorgehen der KI steuern.
Mittlerweile gibt es zwar mit Devin und den sogenannten Reasoning Models Ansätze, die scheinbar etwas tiefer nachdenken und abwägen, bevor sie einen Lösungsvorschlag unterbreiten und damit genau diese Art der Steuerung übernehmen. Ein genauer Blick hinter die Kulissen zeigt aber, dass die Ansätze im Wesentlichen nur ein gut vorbereitetes Storyboard verfolgen beziehungsweise eine vorgegebene Liste an Werkzeugen verwenden – ähnlich dem Abarbeiten einer To-do-Liste eines Software-Developers.
Die wahre Stärke
Das Berufsbild des Softwareentwicklers wird sich definitiv durch den vermehrten Einsatz von KI verändern. Syntaktische Skills in der Programmierung sowie reine API- und Framework-Kenntnisse rücken in den Hintergrund und werden über kurz oder lang obsolet. Die Fähigkeit zum Designen eines aussagekräftigen Domänenmodells, aus dem die KI automatisch Code inklusive einer passenden Architektur generieren kann, gewinnt dagegen durch die steigende Komplexität der fachlichen Anforderungen an Bedeutung.
Und das ist auch gut so. Denn die wahre Stärke eines Developers liegt nicht in dem Auswendiglernen von APIs und deren Parametern, sondern in der Fähigkeit, basierend auf einer fachlichen Problemstellung die reale Welt in ein passendes Domänenmodell zu überführen, um damit das Problem bestmöglich mit Hilfe binärer Einsen und Nullen zu lösen. Wie aus dem Domänenmodell am Ende passende 1- und 0-Werte entstehen, ist dabei nebensächlich. Wäre dem nicht so, würden wir heute noch in Assembler und nicht in rechnerunabhängigen Hochsprachen programmieren.
Wer einen schnellen Einstieg in die Wunderwelt der KI-gestützten Werkzeuge zur Unterstützung des Software Development Lifecycle inklusive Bewertung ihrer Fähigkeiten sucht, sollte einen Blick auf SWE-bench werfen.
(rme)