Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Gavin Terrill on May 07, 2008 09:00 AM
The Carnegie Mellon® Software Engineering Institute (SEI) recently published "Models for Evaluating and Improving Architecture Competence", an 87 page report that examines how software architects and organizations can foster environments that consistently produce high quality architectures. From the abstract:
Software architecture competence is the ability of an individual or organization to acquire, use, and sustain the skills and knowledge necessary to carry out software architecture-centric practices. Previous work in architecture has concentrated on its technical aspects: methods and tools for creating, analyzing, and using architecture. However, a different perspective recognizes that these activities are carried out by people working in organizations, and those people and organizations can use assistance towards consistently producing high-quality architectures.
The report considered four models of human behaviour and competence, as it pertains to software architects: duties, skills and knowledge; human performance engineering; organizational coordination; and organizational learning.
The duties, skills, and knowledge (DSK) required of a software architect
The authors (Len Bass, Paul Clements, Rick Kazman and Mark Klein) state that "duties, skills, and knowledge form a triad upon which architecture competence for individuals rests", and listed attributes of each area based on considerable research effort consolidating a vast amount of raw data.
Identified duties included:
Identified skills included:
Identified knowledge facets included:
The report suggests three ways individuals can improve their DSK competence:
Human performance technology, an engineering approach applied to improving the competence of individuals
In this section the authors discuss how Human Performance Technology (HPT), as pioneered by Thomas F. Gilbert, can be used:
(an modern evolution of HPT can be seen at The Six Boxes Model).
The authors identified two problems in applying HPT - How to measure the worth of an architect's performance? What infrastructure is required to calculate the worth?
As yet, we have only preliminary thoughts on the first question and none to report on the second. We propose to use the duties from the DSK model to isolate the various aspects of the architect’s job.
Organizational coordination, the study of how people and units in an organization share information
This section of the report focuses on multi-site development. The report suggests that a Dependency Structure Matrix can be used to expose interaction between modules, with the premise being the each team is working on a module. The DSM provides a measure for how much coordination is required within the organization:
An organization’s ability to match the coordination capability with the coordination requirements imposed by the architecture is a facet of architecture competence.
It then discusses means of coordination, including a discussion on how an architect can act as intermediary between teams:
For example, some benefits of having an architect as an intermediary between the two sets of developers are the availability of additional contextual information and the ability to utilize the decision when making future decisions. Some costs of an intermediary include the possibility of bottlenecks, the potential of introducing delays, and the potential loss of information when it is passed between developers.
Organizational learning, an approach to how organizations acquire, internalize, and utilize knowledge to improve their performance
The report asserts that architecturally competent organizations have the ability to turn experience into knowledge through what it terms "mindfulness":
For example, an architecture team that conducts a review or architecture analysis after completing a module or subsystem to learn what went well and what went wrong exemplifies a group engaging in mindful learning.
Conclusion
The final chapters of the report focus on the principals that the models embody, such as:
Mentoring other architects is likely to lead to high-quality architectures because being mentored is an effective way to gain real-world experience and thus become a more capable architect.
Additionally, the report discusses how questions for an assessment of competence could be carried out, for example when looking at duties:
Duty: Creating an architecture
Question: How do you create an architecture?
- How do you ensure that the architecture is aligned with the business goals?
- What is the input into the architecture-creation process? What inputs are provided to the architect(s)?
- How does the architect validate the information provided? What does the architect do in case the input is insufficient/inadequate?.
The authors avoid proposing a grand "unified model of competence", but instead provide strategies for improvement using the models, concluding with:
Together the four models provide strong coverage in a number of ways. They provide a basis for measuring past performance as well as current activity. They cover the range of observational possibilities: artifacts, processes, people, and organizations. Finally, they apply well as a group to individuals, teams, and organizations. This coverage gives us confidence that the four models together will produce valuable and reliable results.
The report can be downloaded here (PDF, 990 KB).
I got the report from: http://www.sei.cmu.edu/publications/documents/08.reports/08tr006.html but on my system (ubuntu gutsy) acroread renders it so badly that I can't read it. There are crazy font changes and style changes all over the place. It's a bit getter in ghostview... Has anyone else looked at it in acroread? Cheers, Andrew
It seems OK for me, but I'm using Adobe Reader 8.0 on Windows. Perhaps they've inadvertently used fonts that haven't got bundled with the document?
If so, then you have *got* to love the irony...
Have you checked or tried asking at https://bugs.launchpad.net/ubuntu? There seem to be quite a few bugs related to html display.
the link above does not work at all for me. Neither IE6 or FF3.
Sorry about that. I've fixed the link.
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
6 comments
Watch Thread Reply