Research Applied to Understand and Improve the Software Development Process

In this post we select some relevant papers related with the research devoted to solve typical problems in the Software Engineering domain.

Some of the findings as those related with interruptions are currently used in Codealike, while others would be used in the future.



No Task Left Behind? Examining the Nature of Fragmented Work (2005)

Gloria Mark • Victor Gonzalez • Justin Harri
Why is this here? This paper examines how pervasive are interruptions for information workers. It also characterizes the types and distribution of those interruptions.

A diary study of task switching and interruptions (2004)

Mary Czerwinski • Eric Horvitz • Susan Wilhite
Why is this here? This paper shows the consequences of interruptions and task switching over typical knowledge workers.

Resumption Strategies for Interrupted Programming Tasks (2010)

Chris Parnin • Spencer Rugaber
Why this is here? Chris is one of the main researchers in the field of software repositories mining. This paper analyzes a big dataset of recorded sessions and surveys to understand the strategies and mechanisms that developers use to manage interrupted programming tasks. 

Preparing to Resume an Interrupted Task: Effects of Prospective Goal Encoding and Retrospective Rehearsal (2003)

Gregory Trafton • Erik Altmann • Derek Brock • Farilee Mintz
Why this is here? This paper shows how a resumption of a task after interruption is facilitated by preparation during the interruption lag.    

Complexity/Code Extention

Using Task Context to Improve Programmer Productivity (2006)

 Mik Kersten • Gail Murphy
 Why this is here? This paper presents a mechanism that captures, models, and persists the elements and relations relevant to a task context. Then it is applied to reduce the information overload, by filtering and ranking the information presented by the development environment.  

Examining Task Engagement in Sensor-Based Statistical Models of Human Interruptibility (2005)

James Fogarty • Andrew Ko • Htet Aung • Elspeth Golden • Karen Tang • Scott Hudson
Why this is here? This paper shows that the phase of navigation and search is one of the most critical for interruptions. Authors also extract features from low-level event logs and build a statistical model of interruptibility.

Visibility from/to the Team

Easing Program Comprehension by Sharing Navigation Data (2005)

Robert DeLine • Mary Czerwinski • George Robertson
Why this is here? This paper describes a set of tools, designed to ease program comprehension by showing the source code navigation patterns of fellow development team members. Based on two studies authors suggests that sharing navigation data can improve program comprehension.

An Environment for Synchronous Software Development (2009)

Lile Hattori • Michele Lanza
Why this is here? This paper details an approach to improve collaboration in teams of developers geographically distributed. They use a fine-grained change tracking mechanism and instantaneously notify any developer working on the system about changes being performed by other developers. Authors claim that that approach can augment each developer’s knowledge of the project and, consequently, promote interaction and increase productivity.

Remembering Past Activities

Characterizing and Understanding Development Sessions (2007)

Romain Robbes • Michele Lanza
Why this is here? This paper explains some of the benefits on the software development process of keeping a record of past activities. Authors use fine-graibed information to understand and characterize development sessions.

Evidence Based Scheduling (2007)

Joel Spolsky
Why this is here? This post introduces the concept and rationals of Evidence Based Scheduling. Author points out on the importance of tracking the activities while constructing a software system, as a source of knowledge to improve the estimation and scheduling of projects.


Do you know another pertinent work which can be here?