An Evolutionary Perspective on Socio-Technical Congruence: The Rubber Band Effect

Conway's law assumes a strong association between the system's architecture and the organization's communication structure that designs it. In the light of contemporary software development, when many companies rely on geographically distributed teams, which often turn out to be temporarily composed and thus having an often-changing communication structure, the importance of Conway's law and its inspired work grows. In this paper, we examine empirical research related to Conway's law and its application for cross-site coordination. Based on the results obtained we conjecture that changes in the communication structure alone sooner or later trigger changes in the design structure of the software products to return the socio-technical system into the state of congruence. This is further used to formulate a concept of a rubber band effect and propose a replication study that goes beyond the original idea of Conway's law by investigating the evolution of socio-technical congruence over time.

[1]  Matti Rossi,et al.  Architecture as a coordination tool in multi-site software development , 2003, Softw. Process. Improv. Pract..

[2]  Daniela E. Damian,et al.  Guest Editors' Introduction: Global Software Development: How Far Have We Come? , 2006, IEEE Software.

[3]  Jos van Hillegersberg,et al.  Detecting Coordination Problems in Collaborative Software Development Environments , 2008, Inf. Syst. Manag..

[4]  T. Greenhalgh,et al.  Effectiveness and efficiency of search methods in systematic reviews of complex evidence: audit of primary sources , 2005, BMJ : British Medical Journal.

[5]  Frank Salger On the Use of Handover Checkpoints to Manage the Global Software Development Process , 2009, OTM Workshops.

[6]  Yijun Yu,et al.  Using formal concept analysis to construct and visualise hierarchies of socio-technical relations , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

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

[8]  Tudor Gîrba,et al.  How Developers Copy , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[9]  A. Aneesh,et al.  Global Labor: Algocratic Modes of Organization* , 2009 .

[10]  Geir Kjetil Hanssen,et al.  From Offshore Outsourcing to Offshore Insourcing: Three Stories , 2012, 2012 IEEE Seventh International Conference on Global Software Engineering.

[11]  Darja Smite,et al.  An Exploratory Study of Software Evolution and Quality: Before, during and after a Transfer , 2012, 2012 IEEE Seventh International Conference on Global Software Engineering.

[12]  Sjaak Brinkkemper,et al.  Evolving Relationship Structures in Multi-sourcing Arrangements: The Case of Mission Critical Outsourcing , 2010, Global Sourcing Workshop.

[13]  Dewayne E. Perry,et al.  Experiences mining open source release histories , 2011, ICSSP '11.

[14]  Christian Del Rosso Comprehend and analyze knowledge networks to improve software evolution , 2009 .

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

[16]  Richard T. Watson,et al.  Analyzing the Past to Prepare for the Future: Writing a Literature Review , 2002, MIS Q..

[17]  Michele Lanza,et al.  Reverse Engineering Super-Repositories , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[18]  Audris Mockus,et al.  Formulation and preliminary test of an empirical theory of coordination in software engineering , 2003, ESEC/FSE-11.

[19]  Tony Gorschek,et al.  Empirical evidence in global software engineering: a systematic review , 2010, Empirical Software Engineering.

[20]  Simon Giesecke,et al.  Taxonomy of architectural style usage , 2006, PLoP '06.

[21]  Yuanfang Cai,et al.  Coordination Implications of Software Architecture in a Global Software Development Project , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[22]  Daniela E. Damian,et al.  How interaction between roles shapes the communication structure in requirements-driven collaboration , 2011, 2011 IEEE 19th International Requirements Engineering Conference.

[23]  Jitesh H. Panchal,et al.  Analysis of the Structure and Evolution of an Open-Source Community , 2011, J. Comput. Inf. Sci. Eng..

[24]  Akos Szoke,et al.  A Feature Partitioning Method for Distributed Agile Release Planning , 2011, XP.

[25]  Kai Koskimies,et al.  Genetic Approach to Software Architecture Synthesis with Work Allocation Scheme , 2010, 2010 Asia Pacific Software Engineering Conference.

[26]  Barry W. Boehm,et al.  The Future of Software Processes , 2005, ISPW.

[27]  Byungjeong Lee,et al.  Extracting Development Organization from Open Source Software , 2009, 2009 16th Asia-Pacific Software Engineering Conference.

[28]  Daniela E. Damian,et al.  Global Software Development and Delay: Does Distance Still Matter? , 2008, 2008 IEEE International Conference on Global Software Engineering.

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

[30]  David F. Redmiles,et al.  On The Roles of APIs in the Coordination of Collaborative Software Development , 2009, Computer Supported Cooperative Work (CSCW).

[31]  Carl Magnus Olsson,et al.  A case study of the Architecture Business Cycle for an in-vehicle software architecture , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[32]  Petra Bosch-Sijtsema,et al.  From integration to composition: On the impact of software product lines, global development and ecosystems , 2010, J. Syst. Softw..

[33]  Nicolas Bettenburg,et al.  Mining development repositories to study the impact of collaboration on software systems , 2011, ESEC/FSE '11.

[34]  James D. Herbsleb Beyond computer science , 2005, ICSE.

[35]  Daniela E. Damian,et al.  Cooperation and coordination concerns in a distributed software development project , 2008, CHASE '08.

[36]  James D. Herbsleb,et al.  Communication networks in geographically distributed software development , 2008, CSCW.

[37]  Richard C. Holt,et al.  Software architecture recovery using Conway's law , 1998, CASCON.

[38]  Pär J. Ågerfalk,et al.  Global Software Development Challenges: A Case Study on Temporal, Geographical and Socio-Cultural Distance , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[39]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[40]  Jakob Axelsson,et al.  Limiting practices in developing and managing software-intensive systems: A comparative study , 2010, PICMET 2010 TECHNOLOGY MANAGEMENT FOR GLOBAL ECONOMIC GROWTH.

[41]  Christian Del Rosso,et al.  Software performance tuning of software product family architectures: Two case studies in the real-time embedded systems domain , 2008, J. Syst. Softw..

[42]  Ivica Crnkovic,et al.  Real world influences on software architecture - interviews with industrial system experts , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[43]  Juan Julián Merelo Guervós,et al.  Beyond source code: The importance of other artifacts in software development (a case study) , 2006, J. Syst. Softw..

[44]  Li-Te Cheng,et al.  Sometimes you need to see through walls: a field study of application programming interfaces , 2004, CSCW.

[45]  Ronald Morrison,et al.  Flexible Software Development: From Software Architecture to Process , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[46]  Pär J. Ågerfalk,et al.  Exploring the Assumed Benefits of Global Software Development , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[47]  Claes Wohlin,et al.  Lessons learned from transferring software products to India , 2012, J. Softw. Evol. Process..

[48]  Keith H. Bennett,et al.  A Staged Model for the Software Life Cycle , 2000, Computer.

[49]  Stéphane Ducasse,et al.  How developers drive software evolution , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

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

[51]  Audris Mockus,et al.  Globalization by Chunking: A Quantitative Approach , 2001, IEEE Softw..

[52]  Dirk Neumann,et al.  The Impact of Collaboration Network Structure on Issue Tracking's Process Efficiency at a Large Business Software Vendor , 2010, 2010 43rd Hawaii International Conference on System Sciences.

[53]  Alan Atlas Accidental Adoption: The Story of Scrum at Amazon.com , 2009, 2009 Agile Conference.

[54]  Leonard J. Bass,et al.  Evaluating the Software Architecture Competence of Organizations , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[55]  Zhou Lixin A Project Human Resource Allocation Method Based on Software Architecture and Social Network , 2008, 2008 4th International Conference on Wireless Communications, Networking and Mobile Computing.

[56]  Sandeep Purao,et al.  Software architectures: Blueprint, Literature, Language or Decision? , 2008, Eur. J. Inf. Syst..

[57]  Fabian Beck,et al.  On the congruence of modularity and code coupling , 2011, ESEC/FSE '11.

[58]  Ita Richardson,et al.  Crafting a Global Teaming Model for Architectural Knowledge , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

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

[60]  J. Herbsleb,et al.  Global software development , 2001 .

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

[62]  Alberto Bacchelli,et al.  Exploring, exposing, and exploiting emails to include human factors in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[63]  Manfred Broy,et al.  Architekturen softwarebasierter Funktionen im Fahrzeug: von den Anforderungen zur Umsetzung , 2011, Informatik-Spektrum.

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

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

[66]  Stéphane Ducasse,et al.  How Developers Develop Features , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[67]  Paul Dourish,et al.  Seeking the source: software source code as a social and technical artifact , 2005, GROUP.

[68]  Frank Buschmann,et al.  On Architecture Styles and Paradigms , 2010, IEEE Software.

[69]  David F. Redmiles,et al.  Exploring the Relationship between Dependencies and Coordination to Support Global Software Development Projects , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[70]  James D. Herbsleb,et al.  End-to-end features as meta-entities for enabling coordination in geographically distributed software development , 2009, 2009 ICSE Workshop on Software Development Governance.

[71]  Premkumar T. Devanbu,et al.  Latent social structure in open source projects , 2008, SIGSOFT '08/FSE-16.

[72]  Rebecca E. Grinter Recomposition: Coordinating a Web of Software Dependencies , 2003, Computer Supported Cooperative Work (CSCW).

[73]  Alberto Sillitti,et al.  Mining and visualizing developer networks from version control systems , 2011, CHASE.

[74]  James D. Herbsleb,et al.  Communication patterns in geographically distributed software development and engineers' contributions to the development effort , 2008, CHASE.

[75]  Alistair Cockburn,et al.  The interaction of social issues and software architecture , 1996, CACM.

[76]  James D. Herbsleb Talking about concerns , 2011, AOSD '11.

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

[78]  Jens Knodel,et al.  Discovering Organizational Aspects from the Source Code History Log during the Product Line Planning Phase--A Case Study , 2006, 2006 13th Working Conference on Reverse Engineering.

[79]  Jakob Axelsson,et al.  Issues Related to Development of E/E Product Line Architectures in Heavy Vehicles , 2009, 2009 42nd Hawaii International Conference on System Sciences.

[80]  Alok Mishra,et al.  A review of non-technical issues in global software development , 2011, Int. J. Comput. Appl. Technol..

[81]  R. Davison Offshoring information technology: Sourcing and outsourcing to a global workforce , 2006, Electron. J. Inf. Syst. Dev. Ctries..

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

[83]  Mary E. Helander,et al.  Using Software Repositories to Investigate Socio-technical Congruence in Development Projects , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[84]  Rajesh Krishna Balan,et al.  Towards governance schemes for distributed software development projects , 2008, SDG '08.

[85]  Oscar Nierstrasz,et al.  Change-Enabled Software Systems , 2008, Software-Intensive Systems and New Computing Paradigms.

[86]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[87]  Frank Salger,et al.  Software Architecture Evaluation in Global Software Development Projects , 2009, OTM Workshops.

[88]  Rachel Jane McCrindle,et al.  An investigation into the effects of code coupling on team dynamics and productivity , 2002, Proceedings 26th Annual International Computer Software and Applications.