Austin Z. Henley

Assistant Professor
Department of Electrical Engineering and Computer Science
University of Tennessee - Knoxville

353 Min H. Kao Bldg
1520 Middle Drive
Knoxville, TN 37996

Home | Publications | Teaching | Blog | CV



I co-direct the PAIRS research group where we design and build more usable software engineering tools by applying human-computer interaction methodologies with the goal of increasing developer productivity. Lately, we have been working on intelligent user interfaces for programming environments. See my research statement for older details. Research projects that I have worked on include:

Program understanding for novices. Learning to code is difficult, so we are developing an inquisitive code editor to address the particularly challenging barrier of novices holding misconceptions about how their code behaves. It does so by periodically prompting the novice programmer with questions about their program's behavior.
Designing code editors. We are building sets of design principles based on empirical data of developer behavior, developer preferences, and code metrics. Using these principles we have implemented several tools in different code editor environments.
[CHI'17]  [VL/HCC'19]
Understanding data scientists. Computational notebooks, such as Jupyter Notebooks, are wildly popular with data scientists. But as these notebooks are used for more complex tasks, data scientists run into more pain points. We conducted empirical studies to better understand their needs and potential opportunities for tools.
Annotating code. Comprehending code takes an enormous amount of effort, especially understanding the relationships between code and documentation. We extended an IDE to support annotations and conducted a study to understand their effect on comprehension during development tasks.
Reviewing code. The process of code reviewing is utilized by most major tech companies; however, it is extremely time consuming. We designed CFar, an automated code reviewing system at Microsoft, to enhance the collaboration among developers during code reviews.
Navigating code. Developers spend an inordinate amount of time navigating code in an effort to understand and modify it. We designed the Patchworks and CodeRibbon code editors to make revisiting code significantly more efficient. Several studies have found benefits of our tool design over mainstream editors.
[CHI'14]  [VL/HCC'14]  [CHI'17]  [ICSME'21]
Refactoring code. Although most code editors provide ample support for restructuring code, visual language environments do not. We designed Yestercode and CodeDeviant to aid developers in refactoring and testing their code.
[VL/HCC'16]  [VL/HCC'18]
Information Foraging Theory. We applied a theory of how people seek information to the domain of software development. To do so, we conducted a series of empirical studies of developers debugging Java code using desktop and mobile development environments.
[ICSME'15]  [ICSME'16]  [FSE'16]  [VL/HCC'17]