Change-centric Improvement of Team Collaboration

Decanato - Facoltà di scienze informatiche

Data d'inizio: 13 Febbraio 2012

Data di fine: 14 Febbraio 2012

You are cordially invited to attend the PhD Dissertation Defense of Lile HATTORI on Monday, February 13th at 15h30 in room SI-008 (Informatics building)

Abstract:
In software development, teamwork is essential to a successful delivery of the final product. Historically, the software industry has been building software with development teams sharing the workplace.
There have been great advances in process models, tools, methodologies, and techniques to support developing software in a collocated setting. However, in the 21st Century this scenario has been changing, with an increasing number of software companies adopting global software development as an alternative to cut down costs and speed up the development process.

Global software development comes with several challenges for building quality software, be them the adaptation of current methods, tools, techniques, etc., or new challenges imposed by the distributed setting, such as physical and cultural distances among teams, communication problems, and coordination breakdowns. One of these challenges is to maintain the level of collaboration of collocated teams in a distributed environment, where collaboration naturally drops due to low awareness. Awareness is intrinsic to collocated teams, and is obtained through human interactions, such as meetings and informal conversations. However, in distributed teams, the lack of human interaction, caused by geographical distance, lowers awareness.

In our dissertation, we focus on improving collaboration, especially within the geographically dispersed teams. Our thesis is that modeling the evolution of a software system in terms of fine-grained changes produces a detailed history that can be leveraged to help developers to collaborate. To validate it, we first create a model to accurately represent the evolution of a system as sequences of fine-grained changes. Then, we build a tool infrastructure able to capture and store fine-grained changes for both immediate and later use. With the basis of our work at hand, we devise and evaluate a number of applications with two distinct goals:

1. Assisting developers with real-time information on the activity of the team. The goal of these applications is to improve the awareness of developers on the activity of their team members that can impact their work. We propose visualizations to inform developers of the ongoing change activity, as well as a new technique for detecting and informing developers about potential emerging conflicts.

2. Helping developers to fulfill their information needs related to the evolution of the software system. The goal of these applications is to exploit the detailed change history generated by our approach to help developers to find answers to questions that arise during their work. To this extent, we present two new measurements of code expertise, and a novel approach to replay past changes according to user-defined criteria.

We evaluate our approach and applications by adopting the appropriate empirical methods for each case. A total of two case studies, one controlled experiment, and one qualitative user study are reported.
The results provide evidence that applications that leverage a fine-grained change history of a software system can effectively help developers to collaborate.

Dissertation Committee:

  • Prof. Michele Lanza, Università della Svizzera italiana, Switzerland (Research Advisor)
  • Prof. Matthias Hauswirth, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Mehdi Jazayeri, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Premkumar T. Devanbu, University of California, United States of America (External Member)
  • Prof. Arie van Deursen, Delft University of Technology, The Netherlands (External Member)