Tapestry for Nonbelievers
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
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.
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.
David Cooksey shows how to fine grained versioning to a ClickOnce deployment using an HttpHandler written with ASP.NET, making partial rollouts to a test audience much easier.
Windows workflow (WF) is an excellent framework for implementing business processes, but lacks support for human activities. This article describes a completely generic approach for changing this.
In this interview taken during OOPSLA 2007, Markus Voelter talks about the importance of documenting the software architecture, and gives some good and also bad examples on how it could be done.
4 comments
Reply