Developers commonly define tasks to help coordinate software development efforts-whether they be feature implementation, refactoring, or bug fixes. Developers establish links between tasks to express implicit dependencies that needs explicit handling-dependencies that often require the developers responsible for a given task to assess how changes in a linked task affect their own work and vice versa (i.e., change propagation). While seemingly useful, it is unknown if change propagation indeed coincides with task links.
No study has investigated to what extent change propagation actually occurs between task pairs and whether it is able to serve as a metric for characterizing the underlying task dependency. In this paper, we study the temporal relationship between developer reading and changing of source code in relationship to task links. We identify seven situations that explain the varying correlation of change propagation with linked task pairs and find six motifs describing when change propagation occurs between non-linked task pairs. Our paper demonstrates that task links are indeed useful for recommending which artifacts to monitor for changes, which developers to involve in a task, or which tasks to inspect.
Lingling Fan East China Normal University, China/Nanyang Technological University, Singapore, Ting Su Nanyang Technological University, Singapore, Sen Chen Nanyang Technological University, Guozhu Meng Nanyang Technological University, Singapore, Yang Liu Nanyang Technological University, Singapore, Lihua Xu, Geguang Pu, Zhendong Su University of California, Davis