Software architecture has become a recognized competence area in recent years, owing in large part to the indispensable role it has come to play in high-quality system development. But, with a few notable exceptions, the overwhelming amount of energy in the field has been devoted to the technical and technological side of software architecture, including but not limited to
- Architecture-based development methodologies
- Architectural design solutions involving cataloged solutions or solution fragments
- Evaluating, analyzing, or assessing a software architecture for suitability
- Capturing and communicating a software architecture
- Modeling and refinement of systems based on their architectural descriptions
These topics and others form the backbone of a formidable body of technical work. However, none of them is focused on the fact that software architectures are created, cared for, promulgated, and nurtured by software architects.
The SEI's "Achieving Software Architecture Competence" project aims to broaden the scope of architecture research to explore the following issues:
- What must a software development organization do to get the most out of its software architects and produce the highest quality software architectures possible?
- How can we measure architectural competence?
- What would a "theory of software architecture competence" look like?
- What are the best industrial practices currently at work to improve competence?
Answering these questions will involve understanding what it means to be competent, what specific actions can be taken to improve competence, and how to measure competence.
Current Research
Our research has uncovered four distinct models of organizational and human behavior that can be applied to software architecture and help us evaluate and improve the architectural competence of individuals and organizations.

These models are
- duties/skills/knowledge (DSK) model of competence: This model is predicated on the belief that architects and architecture-producing organizations are useful sources for understanding the tasks necessary to the job of architecting. Developing this model will involve cataloging what architects and organizations do and know, building measures for how well they do and know it, and crafting improvement strategies for their duties, skills, and knowledge.
- human performance technology model: This model is based on the human performance engineering work of Thomas Gilbert. This model is predicated on the belief that competent individuals in any profession are the ones who produce the most valuable results at a reasonable cost. Developing this model will involve figuring out how to measure the worth and cost of the outputs of architecture efforts, finding areas where that ratio can be improved, and crafting improvement strategies based on environmental and behavioral factors.
- organizational coordination model of competence: This model is being developed through ongoing research related to multi-site development of software. The focus is on creating an inter-team coordination model for teams developing a single product or a closely related set of products. The architecture for the product induces a requirement for teams to coordinate during the realization or refinement of various architectural decisions. The organizational structure, practices, and tool environment of the teams allow for particular types of coordination with a particular inter-team communication bandwidth.
- organizational learning model of competence: This model is based on the concept that organizations, and not just individuals, can learn. Organizational learning is a change in the organization that occurs as a function of experience. This change can occur in the organization’s cognitions or knowledge, its routines or practices, or its performance. To measure organizational learning, we can consider three approaches: (1) measure knowledge directly though questionnaires, interviews, and verbal protocols; (2) treat changes in routines and practices as indicators of changes in knowledge; or (3) view changes in organizational performance indicators associated with experience as reflecting changes in knowledge.
The SEI is looking for collaborating organizations to investigate
what it means for an organization to have architecture competence and
how this competence can be evaluated. For details, contact us using the link in the For more information box at the bottom of this page.
Software Architecture Training and Publications
Training
Publications
Related Reading
We have produced technical reports that outline out the basic
concepts of software architecture competence and describe four models
for explaining, measuring, and improving the architecture competence of
an individual or a software-producing organization. The models are
based on the four models above.
Models for Evaluating and Improving Architecture Competence
Len Bass, Paul Clements, Rick Kazman, & Mark Klein
The Duties, Skills, and Knowledge of Software Architects
Paul Clements, Rick Kazman, Mark Klein, Divya Devesh, Reddy Shivani, & Prageti Verma
Sixth Working IEEE/IFIP Conference on Software Architecture (WICSA 2007)
Human Competence-Engineering Worthy Performance: Engineering Worthy Performance.
Thomas F. Gilbert. Washington, DC: International Society for Performance Improvement (ISBN: 0961669012, 978-0961669010).
International Review of Industrial and Organizational Psychology
L. Argote & G. Todorova
Leadership and Management in Software Architecture (LMSA’08) - A Report on an ICSE Workshop
Len Bass & Brian Berenbach
Models for Evaluating and Improving Architecture Competence
Len Bass, Paul Clements, Rick Kazman, & Mark Klein