A Decade of Conway's Law: A Literature Review from 2003-2012

More than forty years ago, Melvin Conway published his seminal paper on the relationship between software architecture and development organizations, a phenomenon now known as "Conway's Law." We reviewed the literature to see how Conway's Law has been interpreted and used over the past decade. In particular, we looked at the types of organizations to which people have applied Conway's Law and the behaviors that people consider to be prescribed or proscribed by Conway. This pilot study attempts to articulate many of the views currently held within the software engineering community regarding Conway's Law. By doing so we hope to facilitate further meaningful studies of Conway.

[1]  Andrew Ballantyne What is architecture , 2002 .

[2]  Chintan Amrit,et al.  A Social Network perspective of Conway’s Law , 2011 .

[3]  Yunwen Ye,et al.  Measuring and Monitoring Task Couplings of Developers and Development Sites in Global Software Development , 2008, SEAFOOD.

[4]  Paul Grünbacher,et al.  Structuring the modeling space and supporting evolution in software product line engineering , 2010, J. Syst. Softw..

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

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

[7]  Matthijs den Besten,et al.  The allocation of collaborative efforts in open-source software , 2008, Inf. Econ. Policy.

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

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

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

[11]  Juho Lindman,et al.  Shared Assumption Concerning Technical Determination in Apache Web Server Developer Community , 2007, OSS.

[12]  Jens Dibbern,et al.  Tight versus Loose Organizational Coupling within Inter-Firm Networks in the Enterprise Software Industry - The Perspective of Complementors , 2009, AMCIS.

[13]  Diego Bruno,et al.  The BONSAI Approach Applied to Small-Medium Enterprises , 2011 .

[14]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[15]  Jakob Axelsson Improving the evolutionary architecting process for embedded system product lines , 2011, 2011 IEEE International Systems Conference.

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

[17]  Elke Krasny,et al.  What is Architecture , 2010 .

[18]  Jitesh H. Panchal,et al.  Analysis of the interdependent co-evolution of product structures and community structures using dependency modelling techniques , 2012 .

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

[20]  Butler W. Lampson,et al.  Programming language issues for the 1980's: SIGPLAN '83: symposium on programming languages issues in software systems , 1984, SIGP.

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

[22]  Chengying Mao,et al.  Visualizing Table Dependency Relations to Reveal Network Characters in Database Applications , 2009, VINCI.

[23]  Miryung Kim,et al.  Validity concerns in software engineering research , 2010, FoSER '10.

[24]  Udo Lindemann,et al.  Prediction of Communication Structures Based on Product Structures , 2011 .

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

[26]  Christian Bird Conway's Corollary , 2011, Making Software.

[27]  Alan MacCormack,et al.  Exploring the Duality between Product and Organizational Architectures: A Test of the Mirroring Hypothesis , 2011 .

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

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

[30]  LiskovBarbara,et al.  Programming language issues for the 1980's , 1984 .

[31]  Esperanza Marcos,et al.  Model-Driven Engineering as a new landscape for traceability management: A systematic literature review , 2012, Inf. Softw. Technol..

[32]  Jorge Aranda,et al.  Playing to the strengths of small organizations , 2010 .

[33]  Paul M. Bodily,et al.  Design Team Perception of Development Team Composition: Implications for Conway's Law , 2011, 2011 Second International Workshop on Replication in Empirical Software Engineering Research.

[34]  Dewayne E. Perry,et al.  Release engineering practices and pitfalls , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[35]  Marco Aurélio Gerosa,et al.  Characterizing Key Developers: A Case Study with Apache Ant , 2012, CRIWG.

[36]  B. Ridge,et al.  Organizational Volatility and Developer Productivity , 2009 .

[37]  Christian Bird,et al.  A theory of branches as goals and virtual teams , 2011, CHASE.

[38]  Darja Smite,et al.  Low Degree of Separation Does Not Guarantee Easy Coordination , 2012, 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.

[39]  Kathleen M. Carley,et al.  Assessing team performance from a socio-technical congruence perspective , 2012, 2012 International Conference on Software and System Process (ICSSP).

[40]  Xavier Franch,et al.  Sustainability in software engineering: A systematic literature review , 2012, EASE.

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

[42]  Jonas Tappolet,et al.  Semantics-aware Software Project Repositories , 2008 .

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

[44]  Audris Mockus,et al.  Learning in offshore and legacy software projects : How product structure shapes organization , 2010 .

[45]  Marwan Abi-Antoun,et al.  Making frameworks work: a project retrospective , 2007, OOPSLA '07.

[46]  Patricia Lago,et al.  Global Software Development: Are Architectural Rules the Answer? , 2007, International Conference on Global Software Engineering (ICGSE 2007).

[47]  Daniela E. Damian,et al.  Global software development: growing opportunities, ongoing challenges , 2003, Softw. Process. Improv. Pract..

[48]  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).

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

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

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

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

[53]  Casper Lassenius,et al.  Could Global Software Development Benefit from Agile Methods? , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

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

[55]  Ioannis Stamelos,et al.  An empirical investigation on the reusability of design patterns and software packages , 2011, J. Syst. Softw..

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

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

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

[59]  Greg Wilson,et al.  Observations on Conway ’ s Law in Scientific Computing , 2008 .

[60]  Françoise Détienne,et al.  Collaborative design: Managing task interdependencies and multiple perspectives , 2006, Interact. Comput..

[61]  Robert Schaefer,et al.  The risks of large organizations in developing complex systems , 2005, SOEN.

[62]  David Budgen,et al.  A mapping study on empirical evidence related to the models and forms used in the uml , 2008, ESEM '08.

[63]  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).

[64]  Daniela E. Damian,et al.  Towards patterns to enhance the communication in distributed software development environments , 2011, PLoP '11.

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

[66]  Ita Richardson,et al.  Process models for service-based applications: A systematic literature review , 2011, Inf. Softw. Technol..

[67]  George Fernandez,et al.  Patterns for Federated Architecture , 2003, J. Object Technol..

[68]  Ioannis Stamelos,et al.  Software engineering research for computer games: A systematic review , 2010, Inf. Softw. Technol..

[69]  Jan Pries-Heje,et al.  Is Minimizing Interaction a Solution to Cultural and Maturity Inequality in Offshore Outsourcing , 2011 .

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

[71]  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).

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

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

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

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

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

[77]  Chanchal K. Roy,et al.  A Survey on Software Clone Detection Research , 2007 .

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

[79]  Christian Del Rosso,et al.  Journal of Software Maintenance and Evolution: Research and Practice Comprehend and Analyze Knowledge Networks to Improve Software Evolution , 2022 .

[80]  Atsuhiro Takasu,et al.  Relation Analysis Among Patterns on Software Development Process , 2005, PROFES.

[81]  Christoph Hannebauer,et al.  Towards a pattern language for FLOSS development , 2010, PLOP '10.

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

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

[84]  Christof Ebert Global Software and IT: A Guide to Distributed Development, Projects, and Outsourcing , 2011 .

[85]  Ronald Batenburg,et al.  Technical isomorphism at work: ERP-embedded similarity-enhancing mechanisms , 2008, Ind. Manag. Data Syst..

[86]  Pär J. Ågerfalk,et al.  Ten Strategies for Successful Distributed Development , 2006, The Transfer and Diffusion of Information Technology for Organizational Resilience.

[87]  Remco C. de Boer,et al.  Writing and Reading Software Documentation: How the development process may affect understanding , 2009, 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering.

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

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

[90]  Ronald Batenburg,et al.  Sticking to standards; technical and other isomorphic pressures in deploying ERP-systems , 2006, Inf. Manag..

[91]  Jos van Hillegersberg,et al.  Coordination Implications of Software Coupling in Open Source Projects , 2010, OSS.

[92]  Yuanfang Cai,et al.  Coordination Implications of Software Architecture in a Global Software Development Project , 2008, WICSA.

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

[94]  Julia Eichmann,et al.  Making Software - What Really Works, and Why We Believe It , 2011, Making Software.

[95]  Christian Lescher Patterns for global development: how to build one global team? , 2010, EuroPLoP '10.

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

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

[98]  André L. M. Santos,et al.  Replication of Empirical Studies in Software Engineering: Preliminary Findings from a Systematic Mapping Study , 2011, 2011 Second International Workshop on Replication in Empirical Software Engineering Research.

[99]  David G. Hendry Public participation in proprietary software development through user roles and discourse , 2008, Int. J. Hum. Comput. Stud..

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

[101]  Jitesh H. Panchal,et al.  Coordination in Collective Product Innovation , 2010 .

[102]  Nan Xiao,et al.  Experience and recommendations for distributed software development , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[103]  Martin E. Nordberg Managing Code Ownership , 2003, IEEE Softw..

[104]  Andrew Begel,et al.  On the perceived interdependence and information sharing inhibitions of enterprise software engineers , 2012, CSCW.

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

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