New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Gavin Terrill on May 07, 2008
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:
www.sei.cmu.edu/publications/documents/08.repor...
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 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.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
6 comments
Watch Thread Reply