Skip to main content

skip to main content

developerWorks  >  Rational  >

Book review--Software Architecture: Organizational Principles and Patterns

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


Level: Introductory

Philippe Kruchten (pbk@ece.ubc.ca), Staff, University of British Columbia

15 Feb 2002

from The Rational Edge: Kruchten reviews a useful book for software architects, project managers, and IT department managers about the organizational and social implications of focusing on architecture in developing software. The authors' VRAPS model encompasses Vision, Rhythm, Anticipation, Partnering, and Simplification, and they supply guidance in the form of successful organizational patterns and criteria to measure against.

by David M. Dikel, David Kane, and James R. Wilson
Prentice-Hall, 2001
ISBN: 0-13-029032-7
Cover Price: US$49.00
308 pages

Dikel, Kane, and Wilson have written quite a useful book for software architects, project managers, or IT department managers. It is not about the tools and techniques for software architecture, but about the many organizational and social implications of taking (or not taking) an architectural focus for developing software.

The authors have organized their thoughts around a model (no, not a UML model) called VRAPS, which stands for Vision, Rhythm, Anticipation, Partnering, and Simplification. For each of these five, deeply interconnected principles, they have compiled advice in the form of organizational patterns (i.e., successful practices), a few anti-patterns (i.e., things that really do not work), and also criteria to help practitioners gauge how well they fare against the VRAPS model.

Here are the five principles in brief summary.

Vision

"Vision is the mapping of future values to architectural constraints, as measured by how well the architecture's structures and goals are clear, compelling, congruent and flexible."

Developing an architectural vision permits a better definition of the scope of the architectural endeavor, and sets a reasonable level of expectations among the stakeholders, both internal and external. It also allows early detection when expectations fail to align, and makes normally tacit knowledge about the architecture visible to its users.

Rhythm

"Rhythm is the recurring, predictable exchange of workproducts within an architecture group and across their customers and suppliers."

Rhythm is about the lifecycle and its cycles and iterations, the visibility and predictability of those cycles and iterations, how the organization will evolve an architecture over time, and how the various components will unfold and integrate. It is about timing, and also about the content of a release and the quality of that content. It deals with synchronization among stakeholders. It is about reevaluation.

Anticipation

"Anticipation is the extent to which those who build and implement the architecture predict, validate and adapt the architecture to changing technology, competition and customer needs."

What is the architect's most difficult objective? How to balance long-term vision with immediate needs, in the context of high-technology churn? How to avoid the nasty track of too much "bleeding" edge, or avoid tunnel vision? Here you see how the various principles start influencing each other: A healthy rhythm will force regular review and reevaluation of the vision, for example.

Partnering

"Partnering is the extent to which architecture stakeholders maintain clear, cooperative roles and maximize the value they deliver and receive."

Do not do it all by yourself--build cooperative organizations, internally and externally. Maximize the ultimate value for critical stakeholders, not the amount of local invention and development. Make sure there is a clear and compelling agreement between the various stakeholders, in the sense of the "win-win" approach advocated by Barry Boehm and others.

Simplification

"Simplification is the intelligent clarification and minimization of both the architecture and the organizational environment in which it functions."

The architecture continues to be used, but there is a cost to using it, and therefore its complexity must be reduced. No fluff, no overgeneralization of the problems leading to overly simplified solutions. The architects must understand the essential minimal requirements and build them into the core elements of the architecture. The overall business case for evolving the architecture remains clear.



Back to top


VRAPS and the Rational Unified Process

All these principles, criteria, and (anti) patterns resonated very clearly for me, based on my own personal experience and what I have witnessed in the software development field over the last twenty years. I also caught myself contrasting this model with the Rational Unified Process® or RUP® product, and trying to gauge how well the RUP's guidance would fare with regard to the VRAPS.

Vision: Vision is clearly articulated in the RUP's Software Architecture Description Document, which must tie to the overall project Vision Document. Many of the activities related to architecture in the RUP Elaboration phase contribute to this vision.

Rhythm: The RUP has a three-tier "tempo." The initial development cycle brings a clear focus on architecture through its Elaboration phase. Subsequent evolution cycles allow revisiting an Elaboration phase to evolve, refine, and simplify the architecture. Each cycle is decomposed into iterations, which provide organization-wide synchronization points, focusing on a release of products, initially leading to an architectural baseline, then evolving to a gradually more complete product of increasing quality. Then, in each iteration, regular builds force both a focus on value and closure on concrete issues.

Partnering, anticipation, and simplification are embedded in the RUP, mostly in the various activities and guidelines related to component-based development, architectural reviews, and architectural design. Again, these are supported by the fundamental iterative nature of the RUP, which brings these issues to the table at least once per cycle.

Altogether, I find Software Architecture: Organizational Principles and Patterns good companion reading for RUP-literate people. Practical and easy to read, it emphasizes the social aspect of developing software architecture. Architecture is not just about building the right UML models, with three, five, or seven views; it is also about people. As I used to tell the architecture team on an air-traffic control project I worked on: Fifty percent of the job of an architect is communications--communications with other teams, internally, with the customers, with suppliers, with other parts of the company--twenty percent is planning; and the rest is technical stuff.

-Philippe Kruchten



About the author

Philippe Kruchten

Philippe Kruchten is former director and general manager of the IBM Rational Software Process Business Unit, in charge of the Rational Unified Process (RUP). He worked with Rational for thirteen years, in various functions and places: France, Sweden, the US, and Vancouver, Canada.

Philippe's main interests right now, besides software architecture and design, are software engineering and the development process. He is campaigning, in Canada, for the concept of state-licensed professional software engineers.




Rate this page


Please take a moment to complete this form to help us better serve you.



 


 


Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top