Software Architecture Decision-Making Practices and Challenges: An Industrial Case Study

Software architecture decision-making is critical to the success of a software system as software architecture sets the structure of the system, determines its qualities, and has far-reaching consequences throughout the system life cycle. The complex nature of the software development context and the importance of the problem has led the research community to develop several techniques, tools, and processes to assist software architects in making better decisions. Despite these effort, the adoption of such systematic approaches appears to be quite limited in practice. In addition, the practitioners are also facing new challenges as different software development methods suggest different approaches for architecture design. In this paper, we study the current software architecture decision-making practices in the industry using a case study conducted among professional software architects in three different companies in Europe. As a result, we identified different software architecture decision-making practices followed by the software teams as well as their reasons for following them, the challenges associated with them, and the possible improvements from the software architects' point of view. Based on that, we recognized that improving software architecture knowledge management can address most of the identified challenges and would result in better software architecture decision-making.

[1]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[2]  Rick Kazman,et al.  Decision-making techniques for software architecture design: A comparative survey , 2011, CSUR.

[3]  Martin Fowler,et al.  Is design dead , 2001 .

[4]  Clyde W. Holsapple,et al.  Knowledge management in decision making and decision support , 1995 .

[5]  M. Polanyi The Logic of Tacit Inference , 1966, Philosophy.

[6]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[7]  A. Tversky,et al.  Judgment under Uncertainty: Heuristics and Biases , 1974, Science.

[8]  Dalkir Knowledge Management In Theory And Practice, 2Nd Ed. , 2012 .

[9]  Muhammad Ali Babar Supporting the Software Architecture Process with Knowledge Management , 2009, Software Architecture Knowledge Management.

[10]  Robert L. Nord,et al.  A general model of software architecture design derived from five industrial approaches , 2007, J. Syst. Softw..

[11]  Elena Navarro,et al.  ATRIUM: Software Architecture Driven by Requirements , 2009, 2009 14th IEEE International Conference on Engineering of Complex Computer Systems.

[12]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[13]  Edmund Fantino,et al.  Decision-making: Context matters , 2005, Behavioural Processes.

[14]  Mark Klein,et al.  The Duties, Skills, and Knowledge of Software Architects , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[15]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[16]  Kozo Sugiyama,et al.  The concept of knowledge in KM: a dimensional model , 2007, J. Knowl. Manag..

[17]  Paris Avgeriou,et al.  Enriching software architecture documentation , 2009, J. Syst. Softw..

[18]  Jan Bosch,et al.  Software Architecture: The Next Step , 2004, EWSA.

[19]  Yingxu Wang,et al.  The Cognitive Process of Decision Making , 2007, Int. J. Cogn. Informatics Nat. Intell..

[20]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[21]  Philippe Kruchten,et al.  Wishes and Boundaries for a Software Architecture Knowledge Community , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[22]  Muhammad Ali Babar,et al.  Agility and Architecture: Can They Coexist? , 2010, IEEE Softw..

[23]  Jim Shore Continuous design , 2004, IEEE Software.

[24]  Claes Wohlin,et al.  A Quality-Driven Decision-Support Method for Identifying Software Architecture Candidates , 2003, Int. J. Softw. Eng. Knowl. Eng..

[25]  Mary Shaw,et al.  Comparing Architectural Design Styles , 1995, IEEE Softw..

[26]  Debra J. Richardson,et al.  A Survey of Software Architecture Decision-making Techniques a Survey of Software Architecture Decision-making Techniques a Survey of Software Architecture Decision-making Techniques , 2007 .

[27]  Muhammad Ali Babar,et al.  A Tool for Managing Software Architecture Knowledge , 2007, Second Workshop on Sharing and Reusing Architectural Knowledge - Architecture, Rationale, and Design Intent (SHARK/ADI'07: ICSE Workshops 2007).

[28]  野中 郁次郎,et al.  The knowledge-creating company , 2008 .

[29]  Thomas H. Davenport,et al.  Book review:Working knowledge: How organizations manage what they know. Thomas H. Davenport and Laurence Prusak. Harvard Business School Press, 1998. $29.95US. ISBN 0‐87584‐655‐6 , 1998 .

[30]  Meng Li,et al.  Why Nonaka highlights tacit knowledge: a critical review , 2003, J. Knowl. Manag..

[31]  Paris Avgeriou,et al.  Mature Architecting - A Survey about the Reasoning Process of Professional Architects , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[32]  Philippe Kruchten,et al.  What do software architects really do? , 2008, J. Syst. Softw..

[33]  Pierpaolo Andriani,et al.  Managing knowledge associated with innovation , 2003 .

[34]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[35]  Mark Klein,et al.  Quantifying the costs and benefits of architectural decisions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[36]  Tua Haldin-Herrgård,et al.  Diving under the surface of Tacit Knowledge , 2004 .

[37]  B. Kogut,et al.  Knowledge of the Firm, Combinative Capabilities, and the Replication of Technology , 1992 .

[38]  Mary Sumner,et al.  Knowledge management: theory and practice , 1999, SIGCPR '99.

[39]  Gideon Keren,et al.  Improving Decisions and Judgments The Desirable versus the Feasible , 1992 .

[40]  R. Stake The art of case study research , 1995 .

[41]  Philippe Kruchten,et al.  The Decision View's Role in Software Architecture Practice , 2009, IEEE Software.

[42]  Günther Ruhe,et al.  Software Engineering Decision Support ? A New Paradigm for Learning Software Organizations , 2002, LSO.

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

[44]  Gary Klein,et al.  Naturalistic Decision Making , 2008, Hum. Factors.

[45]  Reidar Conradi,et al.  Architectural Decision-Making in Enterprises: Preliminary Findings from an Exploratory Study in Norwegian Electricity Industry , 2013, ECSA.

[46]  Elizabeth A. Smith The role of tacit and explicit knowledge in the workplace , 2001, J. Knowl. Manag..

[47]  Paris Avgeriou,et al.  Difficulty of Architectural Decisions - A Survey with Professional Architects , 2013, ECSA.

[48]  Muhammad Ali Babar,et al.  Capturing and using software architecture knowledge for architecture-based software development , 2005, Fifth International Conference on Quality Software (QSIC'05).

[49]  Philippe Kruchten,et al.  Building Up and Reasoning About Architectural Knowledge , 2006, QoSA.

[50]  Muhammad Ali Babar,et al.  A comparative study of architecture knowledge management tools , 2010, J. Syst. Softw..