KI-unterstützte Programmierung

Forschung stellt zu wenig Misstrauen beim Coden fest

KI-Assistenten werden beim Programmieren immer mehr zum Kollegen. Zwei wissenschaftliche Studien zeigen nun die Zweischneidigkeit dieses Trends auf.

3 min
Was bremst CI/CD in Embedded-Systemen aus? Mit Containern und DevSecOps lassen sich Automatisierung und Sicherheit effizient kombinieren.
Menschliche Entwickler hinterfragen Code von Kollegen kritisch – bei KI-Vorschlägen fehlt dieses Misstrauen oft, was die Qualität der Paar-Programmierung beeinträchtigt. Dass Mensch und KI jedoch über dieselben „Atoms of Confusion“ stolpern, eröffnet neue Wege, um genau diese Schwächen künftig gezielt auszunutzen.
Prof. Sven Apel, aufgenommen am 23.09.2019. Foto: Oliver Dietze
Sven Apel, Informatik-Professor der Universität des Saarlandes

Software-Entwicklern fehlt das gesunde Misstrauen bei Code, den KI-Assistenten liefern – dabei haben sie dieses Misstrauen gegenüber Code von Kollegen. Während sich die Wahrnehmung von Menschen und KI-Assistenten in dieser Hinsicht also deutlich unterscheidet, reagieren Menschen und Sprachmodelle auf verwirrenden Code, sogenannte Atoms of Confusion, dagegen erstaunlich ähnlich. So lassen sich die Kernaussagen zweier Forschungsprojekte zusammenfassen, die an der Universität des Saarlandes angesiedelt waren.

Im einen Projekt untersuchte ein Team unter Leitung des Informatik-Professors Sven Apel, wie Mensch und Maschine bei der Paar-Programmierung zusammenarbeiten. „Beim Programmieren in Zweier-Teams spielt der Wissenstransfer eine wesentliche Rolle“, erklärt Apel. „Man diskutiert kontinuierlich die anstehenden Probleme und sucht gemeinsam nach Lösungen. Das ist kein einfaches Frage-und-Antwort-Spiel, vielmehr zeigen sich die beiden Entwickler am Bildschirm gegenseitig bewährte Verfahren oder geben proaktiv eigene Erkenntnisse weiter.“ So inspirieren sich die Entwickler gegenseitig und tragen dazu bei, problematische Lösungen zu vermeiden. „Zudem sorgt dieser Ansatz dafür, dass möglichst viele Personen im Unternehmen mit dem Quellcode vertraut sind“, sagt Apel.

Empirische Studie zur Python-Programmierung

In der empirischen Studie bildeten 19 Studierende mit Programmiererfahrung Zweierteams: zwölf in sechs menschlichen Tandems, sieben Testpersonen programmierten in Tandems mit dem Github Copilot. Sie arbeiteten in einer gängigen Entwicklungsumgebung für 45 Minuten an einer Aufgabe. Um die Ergebnisse nicht durch Zeitdruck zu verfälschen, wussten die Testpersonen, dass sie die Aufgabe nicht abschließen müssen. Während des Tests wurden die Bildschirmaktivitäten, Gespräche und etwaiges lautes Denken aufgezeichnet.

Die Aufgabe bestand darin, bestimmte Funktionen in einen bestehenden, rund 400 Zeilen langen Python-Code zu implementieren. Er enthielt Kommentare und war auf fünf Dateien verteilt. So stellten die Forschenden sicher, dass die Testpersonen ein Verständnis für den größeren Zusammenhang entwickeln mussten, obwohl sie in einem überschaubaren Rahmen agierten.

Bei rein menschlichen Paaren gab es viel häufiger kritische Rückfragen und ein gesundes Misstrauen, ob der andere wirklich alles richtig gemacht hat. Das hat wohl etwas mit Bequemlichkeit zu tun, obwohl man eigentlich weiß, dass auch dem KI-Assistenten Fehler passieren können.“

Sven Apel, Professor für Informatik an der Universität des Saarlandes

Rein menschliche Teams nur vermeintlich ineffizienter

Die Studie zeigte, dass Zweierteams mit KI-Assistenten weniger intensiv miteinander agierten und ein geringeres Themenspektrum abdeckten. Oft ging es nur um den reinen Programmiercode. „Die menschlichen Teams neigten hingegen dazu, vom Thema abzuschweifen und weniger konzentriert am jeweiligen Problem zu verweilen“, sagt Apel.

Das klingt zunächst nach einem Plus für die Mensch-Maschine-Tandems. Doch in den Teams mit KI-Assistenten neigten die Testpersonen eben auch dazu, die Vorschläge des Sprachmodells ohne kritische Prüfung anzunehmen. „Bei rein menschlichen Paaren gab es viel häufiger kritische Rückfragen und ein gesundes Misstrauen, ob der andere wirklich alles richtig gemacht hat“, sagt Apel. „Das hat wohl etwas mit Bequemlichkeit zu tun, obwohl man eigentlich weiß, dass auch dem KI-Assistenten Fehler passieren können.“

Übertragbarkeit der Ergebnisse

Natürlich stelle sich bei dieser Art der Forschung immer die Frage nach der Übertragbarkeit, so Apel: „Verändern sich die Ergebnisse, wenn Entwickler mit jahrelanger Berufserfahrung getestet werden? Welchen Einfluss haben definierte Prozesse im industriellen Umfeld und der Workflow? Trotzdem, wir haben den Effekt an sich eindeutig nachgewiesen.“ Nun seien Nachfolgestudien nötig, am besten zusammen mit Unternehmen.

Apel hält die vorliegenden Ergebnisse auch auf die Situation eines Einzelprogrammierers für übertragbar, der fallbezogen einen KI-Assistenten hinzuzieht. „Interessant wäre auch zu schauen, ob sich die Zusammenarbeit zwischen mehreren Menschen und mehreren KI-Assistenten in größeren Entwicklungsteams verändert. Da kann es zu einer ganz neuen Dynamik kommen.“

KI-Assistenten genügen nur bei repetitiven Aufgaben

Für den Wissenschaftler zeigt die empirische Studie auf jeden Fall, dass KI-Assistenten für die Softwareentwicklung noch nicht die Vielfalt der menschlichen Zusammenarbeit nachbilden können: „Sie sind sicherlich nützlich für einfache, sich wiederholende Aufgaben. Für komplexere Themen ist aber der Wissensaustausch wesentlich, der derzeit besser von Mensch zu Mensch funktioniert – eventuell in Kombination mit einer KI-Assistenz.“

Gibt es bei der Paar-Programmierung also durchaus – bedenkliche – Unterschiede zwischen menschlichen und gemischten Tandems, so zeigt eine weitere Studie der Saarländer Forschenden, dass Mensch und KI-Assistent bei potenziellen Fallstricken im Code ähnliche Probleme haben. Die Grundlage des Experiments bildete ein Datensatz, der für verschiedene Operationen verwirrenden und eindeutigen Code umfasst. „Es ist wissenschaftlich belegt, dass Menschen bei der verwirrenden Code-Variante mehr Fehler machen“, erklärt Apel, der bei dieser Studie mit der Arbeitsgruppe von Mariya Toneva vom Max-Planck-Institut für Softwaresysteme zusammengearbeitet hat.

Stolpern Mensch und KI über verschiedene Atoms of Confusion?

Um herauszufinden, ob Sprachmodelle und Menschen über dieselben Atoms of Confusion stolpern, nutzten die Forschenden Daten aus einer früheren Studie von Apel, in der Probanden verwirrende und saubere Code-Varianten lasen und dabei ihre Hirnaktivität und Aufmerksamkeit durch Elektroenzephalografie und Eye-Tracking gemessen wurden. Zum anderen analysierte das Team das Vertrauen von Sprachmodellen beim Coden in die eigenen Vorhersagen anhand einer etablierten Metrik. Ergebnis: Dort, wo Menschen an Code hängen blieben, waren auch die Sprachmodelle signifikant unsicherer.

Ausgehend von dieser Korrelation entwickelten die Forschenden ein datengetriebenes Verfahren, das unklare Stellen im Code automatisch erkennt. In einem Test-Code identifizierte der Algorithmus erfolgreich in mehr als 60 Prozent der Fälle verwirrende Strukturen, die vorab bekannt waren. Mehr noch: Er entdeckte über 150 bislang unerkannte Muster, die, wie sich zeigte, ebenfalls mit erhöhter Hirnaktivität einhergingen.

Das stimmt Apel optimistisch: „Wenn wir wissen, wann und warum Sprachmodelle und Menschen gleichermaßen ins Stolpern geraten, können wir Werkzeuge entwickeln, die Code verständlicher machen und die Zusammenarbeit zwischen Mensch und KI-Assistenten deutlich verbessern.“