What rationales drive architectural decisions? An empirical inquiry
Klara Borowa, Rafa{\l} Lewanczyk, Klaudia Stpiczy\'nska, Patryk, Stradomski, Andrzej Zalewski

TL;DR
This empirical study identifies key rationales influencing architectural decisions, highlighting the importance of familiarity, speed, and experience level, while noting reduced concern for compatibility and portability due to modern practices.
Contribution
It provides an empirical set of rationales and insights into how practitioners prioritize software quality attributes in architectural decisions.
Findings
Architects prefer familiar solutions and fast implementation.
Mid-career architects are more open to new solutions.
Practitioners are less concerned with compatibility and portability.
Abstract
Architectural decision-making is a crucial concern for researchers and practitioners alike. There is a rationale behind every architectural decision that motivates an architect to choose one architectural solution out of a set of options. This study aims to identify which categories of rationale most frequently impact architectural decisions and investigates why these are important to practitioners. Our research comprises two steps of empirical inquiry: a questionnaire (63 participants) and 13 interviews. As a result, we obtained a set of rationales that motivated architects' decisions in practice. Out of them, we extracted a list of software quality attributes that practitioners were the most concerned about. We found that, overall, architects prefer to choose solutions which are familiar to them or that guarantee fast software implementation. Mid-career architects (5 to 15 years of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Techniques and Practices · Software Engineering Research · Advanced Software Engineering Methodologies
