Knowledge sharing is something that has been on my radar since I got into patterns and methods in the late 1990s. Many software architectures and technology innovations are grounded in knowledge accumulated over time–it is a lot easier to shape the future if we manage to avoid past mistakes and to translate proven designs into new application areas.
Now, what in particular is architectural knowledge management and why do we care? Architectural decisions play a key role here. Philippe Kruchten highlighted their importance in his SATURN 2010 keynote and tutorial:
Software architecture is the manifestation of the major early design decisions made for a software-intensive system. These architectural decisions in turn will determine much of the system’s design, development, deployment, and evolution. Making better architectural design decisions is a key challenge in software engineering, made even more difficult by the complexity and heterogeneity of the systems we want to develop, and the distribution of the development teams. Great gains in efficiency and quality can be achieved when organizations can capture, capitalize and then transfer software (and system) architectural knowledge.
Philippe also taught us that knowledge is the theoretical or practical understanding of a subject that represents the expertise and skills acquired by a person through experience or education. Knowledge management then refers to creating, capturing, understanding, sharing, and distributing the knowledge of an organization. Architectural knowledge is created at the intersection of architecture design and design decisions; practices, methods, and tools are required to efficiently manage the vast amount of information necessary to make sound architectural decisions.
The topic has been receiving more and more attention recently, for example in this IEEE Software article, academic work (e.g., several QoSA 2007 and WICSA 2008 papers), my SOAD presentation at SATURN 2010, and a book called Software Architectural Knowledge Management.
For SATURN 2011, we invite you to share your experiences in creating architectural knowledge and exchanging them with your peers:
- How much information did you capture and where did you find it?
- How did you share and, later on, maintain the knowledge (e.g., as patterns or tactics)?
- How did you integrate architectural decisions into design processes and tools?
- Did the benefits justify the effort according to your experience?
I thank the SEI for the opportunity to investigate this topic further at SATURN 2011 and look forward to your submissions, which can be made on the SATURN 2011 website.
- Olaf Zimmermann, Executive IT Architect and Research Staff Member, IBM Research – Zurich