Architectural Decision-Making in Open-Source Systems -- Preliminary Observations

Participants in open-source software projects are often geographically dispersed, and may work in different companies, and have different visions of the software. These present special challenges to creating unified architectural decisions. Yet open-source projects are often successful. We studied architectural documentation of forty-four open-source (OSS) projects, and found some evidence of how architectural decisions were made. It appears that the decision making process is not significantly different from that in traditional software projects. In particular, it was characterized by careful, intentional software design, with attention to quality attributes. In general, the architectural decisions tended to be controlled by a very small team or a single individual.

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

[2]  Einar Landre,et al.  Making Architecture Matter , 2012, IEEE Software.

[3]  James D. Herbsleb,et al.  Influence of social and technical factors for evaluating contribution in GitHub , 2014, ICSE.

[4]  Matthias Galster,et al.  Capturing and Making Architectural Decisions: an Open Source Online Tool , 2014, ECSAW '14.

[5]  Horacio P. Leone,et al.  A model to represent architectural design rationale , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[6]  Gilberto Pedraza-Garcia,et al.  Analysis of design meetings for understanding software architecture decisions , 2014, 2014 XL Latin American Computing Conference (CLEI).

[7]  Antony Tang,et al.  A rationale-based architecture model for design traceability and reasoning , 2007, J. Syst. Softw..

[8]  Baldoino Fonseca dos Santos Neto,et al.  A decision-making tool to support architectural designs based on quality attributes , 2015, SAC.

[9]  Lee Sproull,et al.  Essence of Distributed Work: The Case of the Linux Kernel , 2000, First Monday.

[10]  Kevin Crowston,et al.  Free/Libre open-source software development: What we know and what we do not know , 2012, CSUR.

[11]  David G. Glance Release criteria for the Linux kernel , 2004, First Monday.

[12]  Roy T. Fielding,et al.  Shared leadership in the Apache project , 1999, CACM.

[13]  JaatunMartin Gilje,et al.  Agile Software Development , 2002, Comput. Sci. Educ..

[14]  Muhammad Ali Babar,et al.  A Survey of the Use and Documentation of Architecture Design Rationale , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

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

[16]  Neil B. Harrison,et al.  Organizational patterns for teams , 1996 .

[17]  A. Brown,et al.  The Architecture of Open Source Applications , 2011 .

[18]  Daniel M. Germán,et al.  The GNOME project: a case study of open source, global software development , 2003, Softw. Process. Improv. Pract..

[19]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[20]  Tony Cornford,et al.  Version management tools: CVS to BK in the Linux kernel , 2003 .

[21]  Laura Hoch,et al.  Organizational Patterns Of Agile Software Development , 2016 .

[22]  Neil B. Harrison,et al.  Software Architecture Pattern Morphology in Open-Source Systems , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[23]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[24]  Paris Avgeriou,et al.  Forces on Architecture Decisions - A Viewpoint , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[25]  Tavish Armstrong,et al.  The Performance of Open Source Applications , 2013 .