Facilitating Coordination between Software Developers: A Study and Techniques for Timely and Efficient Recommendations

When software developers fail to coordinate, build failures, duplication of work, schedule slips and software defects can result. However, developers are often unaware of when they need to coordinate, and existing methods and tools that help make developers aware of their coordination needs do not provide timely or efficient recommendations. We describe our techniques to identify timely and efficient coordination recommendations, which we developed and evaluated in a study of coordination needs in the Mylyn software project. We describe how data obtained from tools that capture developer actions within their Integrated Development Environment (IDE) as they occur can be used to timely identify coordination needs; we also describe how properties of tasks coupled with machine learning can focus coordination recommendations to those that are more critical to the developers to reduce information overload and provide more efficient recommendations. We motivate our techniques through developer interviews and report on our quantitative analysis of coordination needs in the Mylyn project. Our results suggest that by leveraging IDE logging facilities, properties of tasks and machine learning techniques awareness tools could make developers aware of critical coordination needs in a timely way. We conclude by discussing implications for software engineering research and tool design.

[1]  Peter E. Hart,et al.  Nearest neighbor pattern classification , 1967, IEEE Trans. Inf. Theory.

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

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

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

[5]  Klaus Krippendorff,et al.  Content Analysis: An Introduction to Its Methodology , 1980 .

[6]  Starr Roxanne Hiltz,et al.  Structuring computer-mediated communication systems to avoid information overload , 1985, CACM.

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

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

[9]  Carl Gutwin,et al.  Workspace awareness for groupware , 1996, CHI Conference Companion.

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

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

[12]  James D. Herbsleb,et al.  Architectures, coordination, and distance: Conway’s law and beyond , 1999 .

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

[14]  Kim B. Clark,et al.  Design Rules: The Power of Modularity , 2000 .

[15]  Audris Mockus,et al.  A case study of open source software development: the Apache server , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[16]  Kim B. Clark,et al.  The Option Value of Modularity in Design: An Example From Design Rules, Volume 1: The Power of Modularity , 2000 .

[17]  Kim B. Clark,et al.  The power of modularity , 2000 .

[18]  Audris Mockus,et al.  An Empirical Study of Speed and Communication in Globally Distributed Software Development , 2003, IEEE Trans. Software Eng..

[19]  Steve Sawyer,et al.  Software development teams , 2004, CACM.

[20]  Carl Gutwin,et al.  A Descriptive Framework of Workspace Awareness for Real-Time Groupware , 2002, Computer Supported Cooperative Work (CSCW).

[21]  Li-Te Cheng,et al.  How a good software practice thwarts collaboration: the multiple roles of APIs in software development , 2004, SIGSOFT '04/FSE-12.

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

[23]  K. Krippendorff,Content analysis. An introduction to its methodology : ,2005 9780761915447 , 2005 .

[24]  Vijayanand Bharadwaj,et al.  Supporting awareness in heterogeneous collaboration environments , 2005 .

[25]  Boris E. R. de Ruyter,et al.  Awareness systems: known results, theory, concepts and future challenges , 2005, CHI Extended Abstracts.

[26]  Daniel M. German,et al.  On the use of visualization to support awareness of human activities in software development: a survey and a framework , 2005, SoftVis '05.

[27]  青島 矢一,et al.  書評 カーリス Y. ボールドウィン/キム B. クラーク著 安藤晴彦訳『デザイン・ルール:モジュール化パワー』 Carliss Y. Baldwin & Kim B. Clark/Design Rules, Vol. 1: The Power of Modularity , 2005 .

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

[29]  William Stafford Noble,et al.  Support vector machine , 2013 .

[30]  Geraldine Fitzpatrick,et al.  CVS integration with notification and chat: lightweight software team collaboration , 2006, CSCW '06.

[31]  Mark Elliott Stigmergic Collaboration: The Evolution of Group Work: Introduction , 2006 .

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

[33]  S. Kotsiantis Supervised Machine Learning: A Review of Classification Techniques , 2007, Informatica.

[34]  Robert DeLine,et al.  Information Needs in Collocated Software Development Teams , 2007, 29th International Conference on Software Engineering (ICSE'07).

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

[36]  James D. Herbsleb,et al.  Global Software Engineering: The Future of Socio-technical Coordination , 2007, Future of Software Engineering (FOSE '07).

[37]  Daniela E. Damian,et al.  Awareness in the Wild: Why Communication Breakdowns Occur , 2007, International Conference on Global Software Engineering (ICGSE 2007).

[38]  W. Scacchi Free/Open Source Software Development: Recent Research Results and Methods , 2007, Adv. Comput..

[39]  Mary Czerwinski,et al.  FASTDash: a visual dashboard for fostering awareness in software teams , 2007, CHI.

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

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

[42]  Giuliano Antoniol,et al.  The Effect of Communication Overhead on Software Maintenance Project Staffing: a Search-Based Approach , 2007, 2007 IEEE International Conference on Software Maintenance.

[43]  André van der Hoek,et al.  Empirical evidence of the benefits of workspace awareness in software configuration management , 2008, SIGSOFT '08/FSE-16.

[44]  David F. Redmiles,et al.  An empirical study of software developers' management of dependencies and changes , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

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

[46]  Chun Chen,et al.  Providing Awareness of Cooperative Efficiency in Collaborative Graphics Design Systems through Reaction Mining , 2008, J. Comput..

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

[48]  Kevin Crowston,et al.  Coordination without discussion? Socio-technical congruence and Stigmergy in Free and Open Source So , 2009 .

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

[50]  Marc Roper,et al.  Using Developer Activity Data to Enhance Awareness during Collaborative Software Development , 2009, Computer Supported Cooperative Work (CSCW).

[51]  Yuanfang Cai,et al.  Design Rule Hierarchies and Parallelism in Software Development Tasks , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[52]  Gina Venolia,et al.  The secret life of bugs: Going past the errors and omissions in software repositories , 2009, 2009 IEEE 31st International Conference on Software Engineering.

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

[54]  Gail C. Murphy,et al.  Summarizing software artifacts: a case study of bug reports , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[55]  Arie van Deursen,et al.  Combining micro-blogging and IDE interactions to support developers in their quests , 2010, 2010 IEEE International Conference on Software Maintenance.

[56]  Emerson R. Murphy-Hill,et al.  What is trust in a recommender for software development? , 2010, RSSE '10.

[57]  Chih-Jen Lin,et al.  LIBSVM: A library for support vector machines , 2011, TIST.

[58]  Daniela E. Damian,et al.  Does Socio-Technical Congruence Have an Effect on Software Build Success? A Study of Coordination in a Software Project , 2011, IEEE Transactions on Software Engineering.

[59]  Daniela Damian,et al.  Extending socio-technical congruence with awareness relationships , 2011, SSE '11.

[60]  David F. Redmiles,et al.  The Awareness Network, To Whom Should I Display My Actions? And, Whose Actions Should I Monitor? , 2011, IEEE Transactions on Software Engineering.

[61]  Daniela E. Damian,et al.  Conway's Law Revisited: The Evidence for a Task-Based Perspective , 2012, IEEE Software.

[62]  André van der Hoek,et al.  Palantir: Early Detection of Development Conflicts Arising from Parallel Code Changes , 2012, IEEE Transactions on Software Engineering.

[63]  Kate Ehrlich,et al.  The impact of communication structure on new product development outcomes , 2012, CHI.

[64]  Cleidson R. B. de Souza,et al.  Analyzing the scalability of coordination requirements of a distributed software project , 2012, Journal of the Brazilian Computer Society.

[65]  Kelly Blincoe,et al.  Proximity: a measure to quantify the need for developers' coordination , 2012, CSCW '12.

[66]  James D. Herbsleb,et al.  Social coding in GitHub: transparency and collaboration in an open software repository , 2012, CSCW.

[67]  Kelly Blincoe,et al.  Creating a model of the dynamics of socio-technical groups , 2013, User Modeling and User-Adapted Interaction.

[68]  Krzysztof Czarnecki,et al.  Modelling the ‘hurried’ bug report reading process to summarize bug reports , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[69]  Martin P. Robillard,et al.  Patterns of Knowledge in API Reference Documentation , 2013, IEEE Transactions on Software Engineering.

[70]  Anita Sarma,et al.  Cassandra: Proactive conflict minimization through optimized task scheduling , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[71]  Kelly Blincoe,et al.  Uncovering critical coordination requirements through content analysis , 2013, SSE 2013.

[72]  Jeannie P Miller Information Overload: Keeping Current Without Being Overwhelmed , 2013 .

[73]  James D. Herbsleb,et al.  Coordination Breakdowns and Their Impact on Development Productivity and Software Failures , 2013, IEEE Transactions on Software Engineering.

[74]  Kelly Blincoe,et al.  Do all task dependencies require coordination? the role of task properties in identifying critical coordination needs in software projects , 2013, ESEC/FSE 2013.

[75]  Shan Suthaharan,et al.  Support Vector Machine , 2016 .