By Christian Bird, Thomas Zimmermann, and Alex Teterev

Published in Proceedings of the International Workshop on Cooperative and Human Aspects of Software Engineering

A common method of managing the complexity of both technical and organizationalrelationships in a large software project is to use branches within the sourcecode management system to partition the work into teams and tasks. We claimthat the files modified on a branch are changed together in a cohesive way toaccomplish some task such as adding a feature, fixing a related set of bugs, orimplementing a subsystem, which we collectively refer to as the goal of thebranch. Further, the developers that work on a branch represent a virtual team.In this paper, we develop a theory of the relationship between goals andvirtual teams on different branches. Due to expertise, ownership, and awarenessconcerns, we expect that if two branches have similar goals, they will alsohave similar virtual teams or be at risk for communication and coordinationbreakdowns with the accompanying negative effects. In contrast, we do notexpect the converse to always be true. In the first step towards an actionableresult, we have evaluated this theory empirically on two releases of theWindows operating system and found support in both.


Download

@INPROCEEDINGS{bird2011tbg,
  author = {Christian Bird and Thomas Zimmermann and Alex Teterev},
  title = {{A Theory of Branches as Goals and Virtual Teams}},
  booktitle = {Proceedings of the International Workshop on Cooperative and Human
	Aspects of Software Engineering},
  year = {2011}
}

A Theory of Branches as Goals and Virtual Teams