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 experience) are more open to new solutions than senior and junior practitioners. Additionally, we found that most practitioners are not concerned about the quality attributes of compatibility and portability due to modern software development practices, such as the prevalence of using specific standards and virtualisation/containerization.
翻译:架构决策是研究人员和从业者共同关注的关键问题。每个架构决策背后都有其理由,促使架构师从多个备选方案中选择某一解决方案。本研究旨在识别哪些类别的理由最常影响架构决策,并探究这些理由对从业者重要性的原因。我们的研究包含两个实证调查步骤:问卷调查(63名参与者)和13次访谈。最终,我们获得了一系列在实践中驱动架构师决策的理由。从中提取出从业者最关心的软件质量属性列表。我们发现,总体而言,架构师倾向于选择自己熟悉的方案,或能确保软件快速实现的方案。中级架构师(拥有5至15年经验)比资深和初级从业者更乐于接受新方案。此外,我们发现,由于现代软件开发实践(例如特定标准的广泛使用以及虚拟化/容器化技术),大多数从业者并不关心兼容性和可移植性等质量属性。