Coordination is at the heart of any team work. Software development serves as a prime example, involving multiple developers, often geographically distributed who perform non-routine intellectual work on a common set of artifacts. Yet, we know comparatively little about what constraints in the work require coordination of development efforts and how developers actually coordinate their efforts to satisfy these constraints. Processes and workflow models guide coordination efforts to a large extent, but so do a wide variety of social and cultural conventions, informal practices, and the organizational structure. Understanding the factors that cause coupling of development efforts, their relationships, and how best to support the coordination needs of a team in a given setting is a challenging problem that holds fascinating research potential.

In my research, I have focused on understanding and creating theories on the constraints that lead to close coupling among developers in non-routine intellectual work as well as focusing on creating tools to assist them in performing their day to day activities (e.g., coordinating modifications to a common code base, understanding the evolution of their project, locating experts). In my work, I have strived to combine both the informal (or social) and the formal (or technical) aspects of development. Following are the projects in which I am currently involved or have been in the past.

X Prize Team: a constraint network theory for coordination 

Current organizations, sometimes called “postbureaucratic organizations,” “adhocracies,” “network organizations”, or “heterarchies” are new forms of organizing that are based on flows of information, experience rapid change and cross organizational boundaries, emphasize horizontal collaborations, and require adaptive capacity. Existing views of coordination, formulated to describe and explain more traditional and bureaucratic organizations, are not well-suited to these highly volatile new forms. To understand coordination needs and methods in such organizations, we are studying a joint engineering venture assembled to compete in the Google Lunar X PRIZE challenge to send a mobile robot to the moon. Through this study, we aim to create a theory of coordination that represents work tasks as a network of linked actions and constraints. The properties of this constraint network determine the impact that the actions of one worker completing a task can have on the tasks of other workers. These impacts must be accommodated appropriately so that all tasks can be completed successfully.

Collaborators: Jim Herbsleb, Laura Dabbish, and Patrick Wagstrom

Selected Papers: In Submission

Tesseract: A Socio-Technical Browser    [ Top ]

Research has, thus far, either exclusively focused on studying coordination either from the technical dependencies perspective or through the lens of social interactions in the team. Yet, both of these sets of relationships – the technical and the social – become much more useful when they are considered together. Understanding and using analysis showing the degree of match, or congruence, between the social and technical aspects of a project is vital for supporting collaboration and coordination on software projects. To achieve this goal, we have developed Tesseract, a socio-technical browser that analyzes different project archives to determine the numerous socio-technical relationships in a project. It then visualizes these relationships via four juxtaposed displays that are cross-linked to enable in-depth, multi-perspective investigation for a user selected time period.

More Information on Tesseract.

Collaborators: Jim Herbsleb, Larry Maccherone, and Patrick Wagstrom

Selected Papers: In Submission

Palantír: A Workspace Awareness Tool    [ Top ]

Configuration management systems promote workspaces that isolate developers from each other. This isolation is both good and bad. It is good, because developers make their changes without any interference from changes made concurrently by other developers. It is bad, because not knowing which artifacts are changing in parallel regularly leads to problems when changes are promoted from workspaces into a central configuration management repository. Overcoming the bad isolation, while retaining the good isolation, is a matter of raising awareness among developers, an issue traditionally ignored by the discipline of configuration management. To fill this void, we have developed Palantír, a novel workspace awareness tool that complements existing configuration management systems by providing developers with insight into other workspaces. In particular, the tool informs a developer of which other developers change which other artifacts, calculates a simple measure of severity of those changes, and graphically displays the information in a configurable and generally non-obtrusive manner. 

More Information on Palantír.

Collaborators: André van der Hoek

Selected Papers

World View: A Coordination Tool for GSD    [ Top ]

Management of shared artifacts is critical to ensure the correct integration and behavior of code created by multiple teams working in concert. Awareness of inter-team development activities and their effects on shared artifacts provides developers the opportunity to detect potential integration problems earlier and take proactive steps to avoid these conflicts. However, current awareness tools do not provide such kinds of awareness making them unsuitable for global software development. To overcome this problem we have developed World View. World View is uses the metaphor of the world map to present different locations of teams and their interdependencies. In particular, it provides managers, team leaders and developers in general with a central repository that can derive, retain and visualize the structure of distributed teams, the availability of its members and their locality. The tool derives the interdependencies among teams (and individuals) by analyzing dependencies across code and tasks (work items), which are then visualized as color coded lines.

More Information on World View.

Collaborators: Marcelo Alvim, André van der Hoek,

Selected Papers

Workspace Activity Viewer: A Workspace Evolution Visualizer    [ Top ]

Real-time awareness of other developers’ activities is a powerful tool to assist in coordination of developer activities. Thus far, this type of awareness has focused only on individual developers, with information regarding individual artifacts provided in a contextualized visualization. Here, we build upon our prior work, but take a broader perspective: visualization and exploration of workspace activity and evolution on a project wide basis. We believe this visualization helps project managers who now have a comprehensive view of all project activities, allowing them to intelligently steer development and adjust task assignments. Developers can also benefit from this high level view by understanding how their work relates with each other and to the project as a whole.

More Information on Workspace Activity Viewer.

Collaborators: Roger Ripley, André van der Hoek

Selected Papers

Light House: Tracking the Emerging Design in Code    [ Top ]

NOTE: Although, I have had the previlege of being involved in the development and evaluation of this tool, I am not a primary contributor.
Understanding how parallel changes affect ones' own work and impacts the design of the code is a nontricial task. Parallel changes often cause the design to shift from that intended and many times this information is not appropriately communicated across teams, leading to conflicting changes. Lighthouse is a coordination platform that addresses the issue of how to coordinate a number of developers all working on the same project in parallel. Lighthouse achieves this through the use of the novel concept of emerging design, a continuously-updated representation of the design as it exists in the code. On its own, emerging design allows developers to see how their code relates to that of other developers. Thus developers can see how changes they make to their code could potentially impact others, and vice versa. Furthermore, by overlaying emerging design on top of the initial conceptual design, it is possible to indicate implementation progress (i.e., which modules have been completed, and which have not), and indicate where the implementation deviates from the initial design.

More Information on Light House.

Contributors: Isabella da Silva, Christopher Van der Westhuizen, Ping Chen, André van der Hoek

Selected Papers