Was im Gehirn von Entwicklern vorgeht, wenn der Programmcode verwirrend ist

Shes a genius programmer. Cropped shot of a young computer programmer looking through data
Bild: ©Cecilie Skjold Wackerhausen/peopleimages.com/stock.adobe.com

Wie Softwareentwickler reagieren, wenn sie auf Programmcode stoßen, den sie nicht intuitiv verstehen, haben Neuropsychologen der Universität des Saarlandes und der TU Chemnitz untersucht. Dazu haben die Wissenschaftlerinnen und Wissenschaftler Hirnströme von Entwicklern gemeinsam mit deren Augenbewegungen erfasst. Die Ergebnisse zeigen Parallelen zu Mustern aus der Sprachverarbeitung.

„Software prägt unseren Alltag. Ist sie fehlerhaft, kann das fatale Folgen haben. Vor diesem Hintergrund ist es wichtig, dass Programmierer ihren Code verstehen und keine Fehler übersehen oder neu einbauen, wenn sie weitere Funktionen ergänzen“, sagt Sven Apel, Informatik-Professor der Universität des Saarlandes. Für eine Studie hat er vor drei Jahren Axel Mecklinger, Professor für experimentelle Neuropsychologie der Saar-Universität, mit ins Boot genommen. Gemeinsam haben sie dafür die Elektroenzephalografie (EEG) mit der Überwachung der Augenbewegungen kombiniert, im Fachjargon spricht man von fixationskorrelierten Potenzialen (FRP). „Der Vorteil dieser Methode ist, dass man die Hirnströme zeitlich genau in dem Moment erfassen kann, in dem die Augen aufhören, sich zu bewegen und sich auf ein bestimmtes Ziel fokussieren“, erklärt Axel Mecklinger.

Wie reagieren Entwickler?

Das Forscherteam wollte damit herausfinden, wie Softwareentwickler reagieren, wenn sie verwirrende Codeschnipsel, sogenannte ‚Atoms of Confusion‘, sehen. Diese kleinsten Einheiten kommen häufiger im Quellcode vor. Sie sind für den Computer eindeutig auszuführen, erschließen sich dem Programmierer aber nicht intuitiv, sodass es passieren kann, dass dieser die Funktionsweise des Programms falsch versteht. Anna-Maria Maurer, Informatik-Doktorandin bei Professor Apel, hat für die Studie diese Art von verwirrendem Code in ihre Versuchsanordnung aufgenommen. Als Versuchspersonen dienten 24 Programmierer, deren Hirnströme und Augenbewegungen in rund 1.700 Durchgängen gemessen wurden.

Für die Auswertung griff das Forscherteam auf Methoden und Erfahrungen aus der Psycholinguistik zurück, die sie jedoch nicht ohne Weiteres auf die Softwareprogrammierung übertragen konnten. Aus früheren Studien war ihnen zwar bekannt, dass die Programmiertätigkeit ähnliche Hirnregionen aktiviert wie die natürliche Sprache. Die Forschenden verweisen jedoch darauf, dass das Vorgehen eines Programmierers anders ist als beim Sprachverstehen. „Wenn wir wissen möchten, wie das Gehirn bestimmte Gesprächssituationen verarbeitet, lassen wir die Versuchspersonen kurze Textabschnitte lesen und gleichen dies mit dem EEG und Eyetracking ab. Ein Programmierer erfasst beim Codelesen jedoch größere Zusammenhänge, er liest mehrere Codezeilen quer und nimmt komplexere Strukturen als eine Einheit wahr“, erklärt Computerlinguistik-Professorin Vera Demberg, die mit ihrem Team an der Auswertung der Daten beteiligt war. Das Team musste somit die Versuchsanordnung anpassen: In drei Themenblöcken mit 24 Einzelversuchen wurde ein Codeschnipsel präsentiert und EEG und Augendaten auf die Millisekunde genau synchronisiert.

Ähnlichkeiten zu sprachwissenschaftlichen Untersuchungen

Beim Vergleich der EEG-Signale aus früheren Sprachstudien mit den aktuellen Ergebnissen aus der Softwareprogrammierung stellte das Team EEG-Signale fest, die in der Neuropsychologie als späte frontale Positivität bezeichnet werden. Für die Forschenden war dies ein überraschendes Ergebnis: „Wenn die Programmierer auf die verwirrenden Codeschnipsel stießen, zeigten sie ähnliche Hirnaktivitäten wie bei Probanden aus der Sprachwissenschaft, die Sätze mit unerwarteten Wendungen lesen. Das Gehirn passt sich dann blitzschnell an und gleicht die Informationen mit dem Langzeitgedächtnis ab, um die ungewöhnliche Situation einordnen zu können“, erklärt Vera Demberg. Als Beispiel für die unerwartete Wendung eines Gesprächs nennt Axel Mecklinger den Satz: „Theo will Holz hacken, er holt sich eine Jacke“. Zwar erscheint ‚Jacke‘ plausibel, kommt aber in dem Kontext überraschend, da man eher das Wort ‚Axt‘ erwartet hätte. „In solchen Situationen generieren Wörter wie Jacke in unseren EEG-Experimenten zur Sprachverarbeitung eine späte frontale Positivität, die dem EEG-Signal auf die verwirrenden Codeschnipsel sehr stark ähnelt“, sagt Neuropsychologe Mecklinger.

„70 bis 80 Prozent ihrer Zeit verwenden Programmierer darauf, Programmcode zu verstehen. Hierfür ist es wichtig, dass wir nachvollziehen können, wie ihre Denkprozesse ablaufen. Das hilft dabei, bessere Werkzeuge zu entwickeln, um Fallstricke von vornherein auszuschließen oder einfacher zu erkennen. Auch die Schulung von Softwareentwicklern kann auf diesen Erkenntnissen aufbauen“, sagt Apel. Er will in weiteren Studien herausfinden, ob Programmierer andere Hirnaktivitäten zeigen, wenn der verwirrende Code tatsächlich fehlerhaft ist oder wenn Codezeilen gezeigt werden, die kein spontanes Umdenken erfordern.

Ihre Studie hat das interdisziplinäre Team nun im Fachmagazin ‚Scientific Reports‘ publiziert. Mitgewirkt haben Annabelle Bergum, Anna-Maria Maurer, Norman Peitek, Regine Bader, Axel Mecklinger, Janet Siegmund, Vera Demberg und Sven Apel. Bis auf Janet Siegmund von der Technischen Universität Chemnitz forschen alle Beteiligten an der Universität des Saarlandes.

Hier gelangen Sie zur Publikation: doi.org