Software Architecture Decision Documentation and the Human Factors
Summary
Software architecture forms the critical link between the requirements and the implementation of any
well-designed system. Software architects create solutions based on both the requirements, and the
real-world possibilities that can be realized by the software developers. Decision making is one of the
main activities that architects partake in. However, decisions are often taken on the fly, and their rational
and reasoning is not always stored. This leads to knowledge erosion, which over time will lead to much
higher maintenance efforts for the system, incurring increased costs and lowered productivity. To prevent
this, decisions need to be written down, but this tends to be forgone for the benefit of quick development.
In this study we look at the factors that cause this lack of documentation, and how we can lower the
burden of documentation for practitioners using improved software architecture tooling, centered on the
needs of the architects. We found that even though the technology is there, the adoption of software
architecture tooling is still being hampered by human factors such as a lack of interest, or the fear of
a disrupted workflow. We developed a preliminary solution, which we discussed with five architects.
Through these interviews, we create several high-level requirements that can be used in the development
of new software architecture tooling.