DFG Final Report: "LIVE: Empirical Studies on the Effects of Liveness on Programming"

Loading...
Thumbnail Image
Date
2025-06-13
Volume
Issue
Journal
Series Titel
Book Title
Publisher
Hannover : Technische Informationsbibliothek
Link to publishers version
Abstract

Liveness in programming tools is the impression of changing a program while it is running. Various tools support liveness, including commercial programming systems, such as MS Excel and Jupyter Notebooks. Tool designers assume that liveness improves the programming experience, but this assumption has insufficient and inconclusive empirical backing. This lack of evidence might lead to the promotion of liveness in unsuitable settings and the neglect of important settings, which would waste design and implementation efforts.

In this project, we investigated the effects of live tools on debugging. In two controlled experiments we studied the influence of task complexity and delayed interactions on the effects of live tools. Compared to previous experiments on liveness, the participants in our experiments had considerable experience with live tools.

In our first experiment we tested whether the influence of live tools on debugging time differs for simple and complex tasks. We found that live tools significantly shorten the time needed to debug defects. At the same time, we could not confirm our main hypothesis that task complexity moderates this effect. However, our results indicate that task complexity indeed influences the effect, but less than suggested by the pilot. For programming tool researchers and designers, our results show that programmers can benefit from live tools, but that they need to consider task complexity and participants' experience with liveness when preparing studies or building tools.

With our second experiment, we aimed to better understand the first experiment's observations. Based on Information Foraging Theory, we assumed that live tools reduce the perceived cost of obtaining dynamic information so that programmers consult it more often when helpful. Therefore, we tested whether programmers use live tools less frequently if access to them is delayed. The experiment did not yield sufficiently enough results for a thorough analysis, but the collected data shows no clear decline in live tool usage. Yet, an ongoing post hoc analysis using edit-run cycles suggests that participants' workflows changed.

During the first experiment, we found that it is a great challenge to operationalize the complexity of maintenance tasks in programming tool studies. Thus, we conducted a survey to curate a collection of factors from related studies that can help shape the complexity of such tasks. With this collection, researchers can deliberately decide on the complexity level for their studies' tasks.

This project also resulted in a novel concept for teaching debugging through contests and improved setups for related studies on liveness conducted in our group.


Liveness in Programmierwerkzeugen ist der Eindruck, ein Programm zu verändern, während es läuft. Viele Werkzeuge einschließlich kommerzieller Programmiersysteme wie MS Excel und Jupyter Notebooks unterstützen Liveness. Während Werkzeugentwickelnde annehmen, dass Liveness die Programmiererfahrung verbessert, ist diese Annahme nur unzureichend empirisch belegt. Dieses fehlende Wissen kann dazu führen, dass Liveness nicht bestmöglich eingesetzt wird und so unnötiger Entwurfs- und Implementierungsaufwand entsteht.

In diesem Projekt haben wir untersucht, wie Live-Werkzeuge das Debugging beeinflussen. In zwei kontrollierten Experimenten untersuchten wir die Auswirkungen von Aufgabenkomplexität und verzögerten Interaktionen auf den Einfluss von Live-Werkzeugen. Im Gegensatz zu früheren Experimenten hatten unsere Teilnehmenden substanzielle Erfahrung mit diesen.

Das erste Experiment testete, ob der Einfluss von Live-Werkzeugen auf die Debugging-Dauer bei einfachen und komplexen Aufgaben unterschiedlich ist. Das Experiment hat gezeigt, dass Live-Werkzeuge die Debugging-Dauer signifikant verkürzen. Die Haupthypothese, dass die Aufgabenkomplexität den Effekt beeinflusst, hat sich nicht bestätigt. Dennoch weisen die Ergebnisse darauf hin, dass die Aufgabenkomplexität die Auswirkungen beeinflusst, allerdings weniger als der Pilot vermuten ließ. Für Forschende und Entwickelnde zeigen die Ergebnisse, dass Programmierende von Live-Werkzeugen profitieren können, aber auch, dass die Aufgabenkomplexität und die Erfahrung der Teilnehmenden mit Liveness beim Planen von Studien oder der Entwicklung von Werkzeugen berücksichtigt werden sollten.

Mit dem zweiten Experiment wollten wir die Ergebnisse des ersten Experiments besser verstehen. Nach der Information-Foraging-Theorie gingen wir davon aus, dass Live-Werkzeuge die wahrgenommenen Kosten für den Zugriff auf dynamische Informationen verringern, sodass Programmierende häufiger auf sie zugreifen, wenn sie hilfreich sind. Daher haben wir getestet, ob Programmierende Live-Werkzeuge seltener verwenden, wenn der Zugriff auf sie durch eine künstliche Verzögerung erschwert wird. Die erhobenen Daten reichen nicht für eine volle Analyse, zeigen aber auch keinen deutlichen Rückgang der Nutzung. Eine laufende post hoc-Analyse anhand von Edit-Run-Zyklen deutet jedoch darauf hin, dass sich die Arbeitsabläufe der Teilnehmenden verändert haben.

Um andere Forschende darin zu unterstützen, die Komplexität der Aufgaben in ihren Studien zu verstehen und zu formen, haben wir eine Sammlung von Faktoren erstellt und publiziert, die dabei hilft, die Komplexität von Programmwartungsaufgaben zu beeinflussen. Diese Sammlung erlaubt es Forschenden, sich bewusst für ein Komplexitätsniveau ihrer Aufgaben zu entscheiden.

Außerdem führte unser Projekt zu einem neuartigen Konzept, Debugging durch Wettbewerbe zu lehren, und zu verbesserten Anordnungen für weitere Liveness-Studien in unserer Gruppe.

Description
Keywords
live programming, controlled experiment, exploratory programming, live coding, user study, debugging, competitive debugging
License
Dieses Dokument darf im Rahmen von § 53 UrhG zum eigenen Gebrauch kostenfrei heruntergeladen, gelesen, gespeichert und ausgedruckt, aber nicht auf anderen Webseiten im Internet bereitgestellt oder an Außenstehende weitergegeben werden.