Coordination Breakdowns and Their Impact on Development Productivity and Software Failures

The success of software development projects depends on carefully coordinating the effort of many individuals across the multiple stages of the development process. In software engineering, modularization is the traditional technique intended to reduce the interdependencies among modules that constitute a system. Reducing technical dependencies, the theory argues, results in a reduction of work dependencies between teams developing interdependent modules. Although that research stream has been quite influential, it considers a static view of the problem of coordination in engineering activities. Building on a dynamic view of coordination, we studied the relationship between socio-technical congruence and software quality and development productivity. In order to investigate the generality of our findings, our analyses were performed on two large-scale projects from two companies with distinct characteristics in terms of product and process maturity. Our results revealed that the gaps between coordination requirements and the actual coordination activities carried out by the developers significantly increased software failures. Our analyses also showed that higher levels of congruence are associated with improved development productivity. Finally, our results showed the congruence between dependencies and coordinative actions is critical both in mature development settings as well as in novel and dynamic development contexts.

[1]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[2]  Alan MacCormack,et al.  Managing the Sources of Uncertainty: Matching Process and Context in Software Development , 2003 .

[3]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[4]  Kathleen M. Carley,et al.  A PCANS Model of Structure in Organizations , 1998 .

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

[6]  Kathleen M. Carley Smart Agents and Organizations of the Future , 2001 .

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

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

[9]  V. Malheiros,et al.  A Visual Text Mining approach for Systematic Reviews , 2007, ESEM 2007.

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

[11]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[12]  G GriswoldWilliam,et al.  The structure and value of modularity in software design , 2001 .

[13]  James D. Herbsleb,et al.  Architectural Misalignment: An Experience Report , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

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

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

[16]  James D. Thompson Organizations in Action , 1967 .

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

[18]  Capers Jones,et al.  Embedded Software: Facts, Figures, and Future , 2009, Computer.

[19]  Estelle Brodman,et al.  Managing the Flow of Technology: Technology Transfer and the Dissemination of Technological Information Within the R&D Organization (Book Review) , 1978 .

[20]  Martin Wattenberg,et al.  E-mail research: targeting the enterprise , 2005 .

[21]  砂田 憲吾,et al.  Bridging the gap between , 2009 .

[22]  Wallace J. Hopp,et al.  The Impact of Misalignment of Organizational Structure and Product Architecture on Quality in Complex Product Development , 2010, Manag. Sci..

[23]  Norman E. Fenton,et al.  A Critique of Software Defect Prediction Models , 1999, IEEE Trans. Software Eng..

[24]  A. Hassan,et al.  C-REX : An Evolutionary Code Extractor for C , 2004 .

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

[26]  Tyson R. Browning,et al.  A Survey of Activity Network‐Based Process Models for Managing Product Development Projects , 2007 .

[27]  Yan Xiao,et al.  Coordination in Fast-Response Organizations , 2006, Manag. Sci..

[28]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

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

[30]  Ian Smith,et al.  Taking email to task: the design and evaluation of a task management centered email tool , 2003, CHI '03.

[31]  Nachiappan Nagappan,et al.  Predicting defects using network analysis on dependency graphs , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[32]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[33]  H. J. Heinz,et al.  Tradeoffs Between Performance and Adaptability for C 3 I Architectures , 2001 .

[34]  Dale Walter Karolak Global Software Development: Managing Virtual Teams and Environments , 1999 .

[35]  Anoop Gupta,et al.  Designing and deploying an information awareness interface , 2002, CSCW '02.

[36]  Victor R. Basili,et al.  System Structure Analysis: Clustering with Data Bindings , 1985, IEEE Transactions on Software Engineering.

[37]  David L. Sjoquist,et al.  Understanding Regression Analysis , 1986 .

[38]  David F. Redmiles,et al.  On the relationship between software dependencies and coordination: field studies and tool support , 2005 .

[39]  Nachiappan Nagappan,et al.  Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[40]  Hans-Georg Gemünden,et al.  Interteam Coordination, Project Commitment, and Teamwork in Multiteam R&D Projects: A Longitudinal Study , 2004, Organ. Sci..

[41]  Victor R. Basili,et al.  Analyzing Error-Prone System Structure , 1991, IEEE Trans. Software Eng..

[42]  Nachiappan Nagappan,et al.  Explaining Failures Using Software Dependences and Churn Metrics , 2006 .

[43]  Raghu Garud,et al.  Managing in the modular age : architectures, networks, and organizations , 2002 .

[44]  Thomas Zimmermann,et al.  Preprocessing CVS Data for Fine-Grained Analysis , 2004, MSR.

[45]  Kevin Crowston,et al.  The interdisciplinary study of coordination , 1994, CSUR.

[46]  Henry Mintzberg,et al.  The structuring of organizations : a synthesis of the research , 1980 .

[47]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[48]  L. Argote Organizational Learning: Creating, Retaining and Transferring Knowledge , 1999 .

[49]  Frederick P. Brooks,et al.  The Mythical Man-Month: Essays on Softw , 1978 .

[50]  HoeglMartin,et al.  Interteam Coordination, Project Commitment, and Teamwork in Multiteam R&D Projects , 2004 .

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

[52]  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.

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

[54]  Tyson R. Browning,et al.  Applying the design structure matrix to system decomposition and integration problems: a review and new directions , 2001, IEEE Trans. Engineering Management.

[55]  Daniela E. Damian,et al.  Requirements-Driven Collaboration: Leveraging the Invisible Relationships between Requirements and People , 2010, Collaborative Software Engineering.

[56]  C. Hardy Organizations: Rational, Natural and Open Systems , 1983 .

[57]  Saul Greenberg,et al.  TeamRooms: network places for collaboration , 1996, CSCW '96.

[58]  Dean Leffingwell,et al.  Managing Software Requirements: A Use Case Approach , 2003 .

[59]  Dewayne E. Perry,et al.  People, organizations, and process improvement , 1994, IEEE Software.

[60]  Jörg M. Haake,et al.  Supporting distributed software development by modes of collaboration , 2001, ECSCW.

[61]  A. J. Bernheim Brush,et al.  Revisiting Whittaker & Sidner's "email overload" ten years later , 2006, CSCW '06.

[62]  T. Allen Managing the flow of technology , 1977 .

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

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

[65]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[66]  Manuel E. Sosa A structured approach to predicting and managing technical interactions in software development , 2008 .

[67]  Robert P. Smith,et al.  A model-based method for organizing tasks in product development , 1994 .

[68]  Audris Mockus,et al.  Distance, dependencies, and delay in a global collaboration , 2000, CSCW '00.

[69]  Victor R. Basili,et al.  Software errors and complexity: an empirical investigation , 1993 .

[70]  Cristina V. Lopes,et al.  Assessment of Contemporary Modularization Techniques - ACoM'07: workshop report , 2007, SOEN.

[71]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[72]  J. Alberto Espinosa,et al.  Learning from Experience in Software Development: A Multilevel Analysis , 2007, Manag. Sci..

[73]  Karl T. Ulrich,et al.  Product Design and Development , 1995 .

[74]  Victor R. Basili,et al.  The influence of organizational structure on software quality , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[75]  Kim B. Clark,et al.  Architectural Innovation: The Reconfiguration of Existing Product Technologies and the Failure of , 1990 .

[76]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

[77]  James D. Herbsleb,et al.  Guest Editors' Introduction: Global Software Development , 2001, IEEE Softw..

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

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

[80]  David Notkin,et al.  An empirical study of static call graph extractors , 1998, TSEM.

[81]  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.

[82]  ChengLi-Te,et al.  How a good software practice thwarts collaboration , 2004 .

[83]  Harvey P. Siy,et al.  Predicting Fault Incidence Using Software Change History , 2000, IEEE Trans. Software Eng..

[84]  Bill Curtis,et al.  Human factors in software development , 2002 .

[85]  Ken Frazer,et al.  Review of "Managing software requirements, a use case approach by Dean Leffingwell and Don Widrig." Addison-Wesley 2003 , 2004, SOEN.

[86]  Jody Hoffer Gittell,et al.  Coordinating Mechanisms in Care Provider Groups: Relational Coordination as a Mediator and Input Uncertainty as a Moderator of Performance Effects , 2002 .

[87]  Krishna R. Pattipati,et al.  Normative design of project-based organizations-Part III: modeling congruent, robust, and adaptive organizations , 2004, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

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

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

[90]  Mark C. Paulk,et al.  The Capability Maturity Model: Guidelines for Improving the Software Process , 1994 .

[91]  Michael A. Cusumano,et al.  Managing multiple interdependencies in large scale software development projects , 1997 .

[92]  Gerard O’Regan,et al.  The Capability Maturity Model , 2002 .

[93]  Eric von Hippel,et al.  Task Partitioning: An Innovation Process Variable , 2015 .

[94]  Mary E. Helander,et al.  Ensemble: a recommendation tool for promoting communication in software teams , 2008, RSSE '08.

[95]  R. Burton,et al.  Strategic Organizational Diagnosis and Design , 1995 .

[96]  Richard L. Daft,et al.  Organizational information requirements, media richness and structural design , 1986 .

[97]  James D. Herbsleb,et al.  COMMUNICATION, TEAM PERFORMANCE, AND THE INDIVIDUAL: BRIDGING TECHNICAL DEPENDENCIES. , 2010 .

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

[99]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

[100]  Victor R. Basili,et al.  Software errors and complexity: an empirical investigation0 , 1984, CACM.

[101]  André van der Hoek,et al.  A Visualization for Software Project Awareness and Evolution , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[102]  Marcelo Cataldo,et al.  On the relationship between process maturity and geographic distribution: an empirical analysis of their impact on software quality , 2009, ESEC/FSE '09.

[103]  David F. Redmiles,et al.  Bridging the gap between technical and social dependencies with Ariadne , 2005, eclipse '05.

[104]  Cleidson R. B. de Souza,et al.  The scale and evolution of coordination needs in large-scale distributed projects: implications for the future generation of collaborative tools , 2011, CHI.

[105]  Mayuram S. Krishnan,et al.  Effects of Process Maturity on Quality, Cycle Time, and Effort in Software Product Development , 2000 .

[106]  Jacob Cohen,et al.  Applied multiple regression/correlation analysis for the behavioral sciences , 1979 .

[107]  Jay R. Galbraith Designing Complex Organizations , 1973 .

[108]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[109]  Jan Venselaar,et al.  DESIGN RULES , 1999 .

[110]  Alfonso Fuggetta,et al.  Software process: a roadmap , 2000, ICSE '00.

[111]  Larry Schroeder,et al.  Understanding Regression Analysis: An Introductory Guide , 2016 .

[112]  Jie Wu,et al.  Small Worlds: The Dynamics of Networks between Order and Randomness , 2003 .

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

[114]  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.

[115]  HERBERT A. SIMON,et al.  The Architecture of Complexity , 1991 .

[116]  Børge Obel,et al.  Strategic organizational diagnosis and design : developing theory for application , 1995 .

[117]  James D. Herbsleb,et al.  Familiarity, Complexity, and Team Performance in Geographically Distributed Software Development , 2007, Organ. Sci..

[118]  Judith S. Olson,et al.  Distance Matters , 2000, Hum. Comput. Interact..

[119]  Michael J. Muller,et al.  Malibu personal productivity assistant , 2007, CHI Extended Abstracts.

[120]  Wallace J. Hopp,et al.  The Impact of Misalignment of Organization Structure and Product Architecture on Quality , 2008 .

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

[122]  A. Hargadon Organizations in Action:Social Science Bases of Administrative Theory (Book) , 2003 .