Research on Architectural Knowledge Management Tools — 11 Years On

The Blog of Systems and Software
JSS Papers

--

Contemporary software architecting practices consider Architectural Design Decisions (ADDs) as first-class elements; as such, they should be captured and shared. While this has been established since 2005, there are no commercial tools to support the capture and use of the relevant Architectural Knowledge (AK). However, a number of research tools supporting different AK processes have been developed and used over the years.

Architectural Knowledge Management (AKM) in Practice: The “Second brain”

Software architects currently consider capturing design decisions and their underlying rationale as of paramount importance. Architects can share and explain how architectures are built and what design alternatives were considered.

AKM approaches to capture relevant AK and design rationale for reuse are understood by most software architects. Architects can use such approaches to avoid knowledge vaporization, but also to solve new design problems. Integrating AKM practices into current software architecting tasks require activities such as those shown in Figure 1. Different types of decisions (e.g. strategic, technical, operational) use different reasoning that are based on general and context knowledge. An architect distills, synthesizes and applies knowledge for creating her solutions. She captures the knowledge for future references. Consumer of that knowledge can benefit from the searches, traces and knowledge evaluation.

Figure 1: Architectural Knowledge activities

In order to support AKM, there is a strong need to perform research into usable AKM tools to capture and manage AK, and use these tools to assist software designers in design-thinking and software modeling activities. AK can act as a “second brain” a metaphor where senior and novice architects can store and leverage the knowledge, experiences, and reasons that can be leveraged for solving new design problems, compared to other forms of static knowledge like simply reusing design patterns or architectural styles. AKM tools should help software architects to retain their expertise and be used by novices to learn from past decisions. Furthermore, these tools help with retaining knowledge and fight knowledge vaporization within an organization.

AKM: Work over the past 10 years

Our research from 2010 revealed the maturity of the first two generations of AKM tools. We provided a framework to compare the tools. We mapped the AK concepts used by the tools, and related them to the IEEE 1471–2000 Std. as Recommended Practice for Architecture Description of Software-Intensive Systems. Nevertheless, there is still a lack of incentives using these tools in industrial settings apart from some research experiences. We continued to study AKM in 2016 and followed through three generations of AKM tools and practices (as described in [2]). AKM faces new challenges such as global software development and Agile practices. AKM longevity and sustainability are key considerations to counter knowledge vaporization. Training and education are the other AKM considerations. We also identified six barriers in the adoption of AKM technologies, all of which relate to training developers to consider AK as a long term investment. The development of the majority of modern AK tools stopped around 2015, being ADMentor one of the latest ones. Figure 2 shows a screenshot of the ADMentor tool which illustrates the duality problem space and solution space for capturing the design decisions. Recently, instead of having dedicated AKM tools, people are starting to use architecture decision logs as bare bones to reuse knowledge and experience. Hence, although the concepts underlying AKM tools are finding their way into industry, the associated tooling support is still lacking.

Figure 2: ADMentor tool capturing the design decisions

AK Trends: What’s next

It has been over 10 years since we published our first analysis on AKM tools in 2010. Despite some convincing features, most of these AKM tools remain as research tools and are now unavailable. Whilst the concept of capturing design rationale is well understood by architects, the lack of commercial tools supporting the AKM processes that we identified remains the same. New techniques such as capturing design decisions by voice have appeared recently but they require validation and adoption. The current revision of the ISO/IEC 42010:2011 Std. on Systems and software engineering — Architecture Description suggests a refinement of the AKM concepts that will need to be supported by a new generation of AKM tools or commercial ones. Having an AKM tool as a “second brain” to support software architects is still challenging. Also, as AKM concepts remain intact but technologies may change, productivity supports apps can be used for supporting AKM processes. Whilst some current Integrated Development Environments (IDEs) and UML tools have limited AK capture in text form, we remain hopeful that new and more sophisticated commercial tools will be available to capture AK easily and efficiently what’s in architects’ minds in a non-intrusive way.

Few software architects doubt the importance for documenting key design decisions. They just don’t want to spend the efforts to document them. The research efforts in these years have not solved this human issue. Perhaps when we manage to convince architects to capture AKM, similar to convincing programmers to writing comments for software codes, and when we support them with easy-to-use tools and apps, we can democratize AKM as another common software development practice.

References

[1] Antony Tang, Paris Avgeriou, Anton Jansen, Rafael Capilla, Muhammad Ali Babar: A comparative study of architecture knowledge management tools. J. Syst. Softw. 83(3): 352–370 (2010)

[2] Rafael Capilla, Anton Jansen, Antony Tang, Paris Avgeriou, Muhammad Ali Babar: 10 years of software architecture knowledge management: Practice and future. J. Syst. Softw. 116: 191–205 (2016)

[3]Tiago Forte: Building a Second Brain, “https://www.youtube.com/watch?v=SjZSy8s2VEE&t=1050s"

[4] Olaf Zimmermann, Lukas Wegmann, Heiko Koziolek, Thomas Goldschmidt: Architectural Decision Guidance Across Projects — Problem Space Modeling, Decision Backlog Management and Cloud Computing Knowledge. WICSA 2015: 85–94

Rafael Capilla

Written by Rafael Capilla. Originally published at https://rafacap1201.medium.com on February 12, 2021.

--

--

The Blog of Systems and Software
JSS Papers

The is the accompanying blog of the Journal of Systems and Software (JSS). Handling 1000+ submissions per year.