Research

Why developers avoid tools that change their code for them, and what a more usable tool looks like.

PhD in Informatics, University of Bergen, December 2021 · advised by Anya Bagge in Bergen and Gail Murphy at the University of British Columbia, where I spent 2018–2019 in the Software Practices Lab · a plain-language account is on Medium

Code editors put dozens of automated refactorings a keystroke away. Earlier studies had found that developers still do more than half of their refactoring by hand, and describe the tools as unpredictable and hard to trust. My PhD asked why.

I built three realistic change tasks out of refactorings mined from open-source history, watched 17 developers with professional experience work through them while thinking aloud, and interviewed each one afterwards. A survey of 46 more developers followed. Four results stand out:

From there I proposed stepwise refactoring tools, which split one all-or-nothing transformation into smaller steps a developer can steer and check, and built a proof of concept as an IntelliJ plugin. The study system, the tasks and the data are public; the dataset has been downloaded more than 3,100 times.

I now work on agentic tools. Every change an agent proposes puts the same question to a developer: can I tell what this will do, and can I check it?

Papers

  1. 2024

    A Study of Refactorings During Software Change Tasks

  2. 2021

    Stepwise Refactoring Tools

  3. 2021

    The Usability (or Not) of Refactoring Tools

  4. 2020

    Predictable, Flexible or Correct: Trading off Refactoring Design Choices

  5. 2020

    Refactoring Operations Grounded in Manual Code Changes

  6. 2018

    Exploring API/Client Co-evolution

  7. 2016

    Safer Refactorings

  8. 2014

    Nerding for Newbies 2014: A Summer School in Computers & Programming

  9. 2014

    A Sage Library for Analysis of Nonlinear Binary Mapping

Poster

  1. 2018

    Software != Programs: Software Behaviour as an Emergent Property

Theses

  1. 2021

    Improving the Usability of Refactoring Tools for Software Change Tasks

  2. 2016

    Making Software Refactorings Safer

Data and code

Service

  • Program committee, ASE 2020 and 2021, New Ideas and Emerging Results track
  • Artifact evaluation committee, SLE 2018
  • Local organisation chair, SATToSE 2016
  • Subject expert on a PhD-programme accreditation committee for NOKUT, the Norwegian Agency for Quality Assurance in Education, 2021

Teaching

  • Taught introductory object-oriented programming to about 450 students and managed up to 12 teaching assistants
  • Supervised one master’s student to graduation

Community

  • Co-organizer, Nerding for Newbies summer school for women in informatics, 2014
  • Organizer, Girl Geek Dinners Bergen, 2016–2017
  • Panelist, Women in STEM, Simula Bergen, 2021