Software Architecture Decision Documentation and the Human Factors

Publication date

DOI

Document Type

Master Thesis

Collections

Open Access logo

License

CC-BY-NC-ND

Abstract

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.

Keywords

Citation