2 research outputs found
The Influence of Cognitive Biases on Architectural Technical Debt
Cognitive biases exert a significant influence on human thinking and
decision-making. In order to identify how they influence the occurrence of
architectural technical debt, a series of semi-structured interviews with
software architects was performed. The results show which classes of
architectural technical debt originate from cognitive biases, and reveal the
antecedents of technical debt items (classes) through biases. This way, we
analysed how and when cognitive biases lead to the creation of technical debt.
We also identified a set of debiasing techniques that can be used in order to
prevent the negative influence of cognitive biases. The observations of the
role of organisational culture in the avoidance of inadvertent technical debt
throw a new light on that issue.Comment: Presented at 2021 IEEE 18th International Conference on Software
Architecture (ICSA) 202
What rationales drive architectural decisions? An empirical inquiry
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