Proximity: a measure to quantify the need for developers' coordination

We describe a method for determining coordination requirements in collaborative software development. Our method uses "live" data based on developer activity rather than relying on historical data such as source code commits which is prevalent in existing methods. We introduce proximity, a measure of the strength of the work dependencies that lead to coordination requirements among members of a software development organization. Our proximity measure relies on a tool which captures the interactions of a developer with her IDE. It quantifies the similarity between records of interactions of developers as they work on their assigned tasks. We describe an algorithm that measures proximity between pairs of tasks or pairs of developers. Through an empirical study on an open source project that routinely records environment interaction data, we show how proximity accurately determines coordination requirements. The proximity measure thus enables proactive detection of coordination requirements and makes possible real time intervention and coordination facilitation via management-, design- and team-related decisions.

[1]  Gail C. Murphy,et al.  Recommending Emergent Teams , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[2]  Paul Dourish,et al.  Awareness and coordination in shared workspaces , 1992, CSCW '92.

[3]  James D. Herbsleb,et al.  On Coordination Mechanisms in Global Software Development , 2007, International Conference on Global Software Engineering (ICGSE 2007).

[4]  Anita Sarma,et al.  Tesseract: Interactive visual exploration of socio-technical relationships in software development , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[5]  David F. Redmiles,et al.  Supporting collaborative software development through the visualization of socio-technical dependencies , 2007, GROUP.

[6]  Audris Mockus,et al.  Software Dependencies, Work Dependencies, and Their Impact on Failures , 2009, IEEE Transactions on Software Engineering.

[7]  Prasun Dewan,et al.  Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software Development , 2007, ECSCW.

[8]  James D. Herbsleb,et al.  Collaboration In Software Engineering Projects: A Theory Of Coordination , 2006, ICIS.

[9]  M. E. Conway HOW DO COMMITTEES INVENT , 1967 .

[10]  William G. Griswold,et al.  The structure and value of modularity in software design , 2001, ESEC/FSE-9.

[11]  James D. Herbsleb,et al.  The geography of coordination: dealing with distance in R&D work , 1999, GROUP.

[12]  James D. Herbsleb,et al.  Splitting the organization and integrating the code: Conway's law revisited , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[13]  Harald C. Gall,et al.  Detection of logical coupling based on product release history , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[14]  Mik Kersten,et al.  Mylar: a degree-of-interest model for IDEs , 2005, AOSD '05.

[15]  James D. Herbsleb,et al.  Socio-technical congruence: a framework for assessing the impact of technical and work dependencies on software development productivity , 2008, ESEM '08.

[16]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[17]  Mary E. Helander,et al.  An Analysis of Congruence Gaps and Their Effect on Distributed Software Development , 2008 .

[18]  Giuseppe Valetto,et al.  Balancing the Value and Risk of Socio-Technical Congruence , 2008 .

[19]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[20]  André van der Hoek,et al.  Palantir: raising awareness among configuration management workspaces , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[21]  Robert E. Kraut,et al.  Coordination in software development , 1995, CACM.

[22]  James D. Herbsleb,et al.  Identification of coordination requirements: implications for the Design of collaboration and awareness tools , 2006, CSCW '06.

[23]  Jr. Frederick P. Brooks,et al.  The mythical man-month (anniversary ed.) , 1995 .

[24]  Janice Singer,et al.  NavTracks: supporting navigation in software maintenance , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[25]  Mik Kersten,et al.  Using task context to improve programmer productivity , 2006, SIGSOFT '06/FSE-14.

[26]  Andrew Begel,et al.  Codebook: discovering and exploiting relationships in software repositories , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[27]  P. Kidwell,et al.  The mythical man-month: Essays on software engineering , 1996, IEEE Annals of the History of Computing.

[28]  Steven D. Eppinger,et al.  The Misalignment of Product Architecture and Organizational Structure in Complex Product Development , 2004, Manag. Sci..

[29]  Oscar Nierstrasz,et al.  Supporting task-oriented navigation in IDEs with configurable HeatMaps , 2009, 2009 IEEE 17th International Conference on Program Comprehension.