Software Architecture
The book opens by explaining what VRAPS (Vision, Rhythm, Anticipation, Partnering, and Simplification) is and what the book can do for the reader. Software Architecture is increasingly important, but the organizational aspect is often overlooked. Architecture and Organization do overlap, but to the executive the Architecture side is hidden, and to the practitioner the Organizational side is hidden. VRAPS attempts to shift the perspectives of the executive and practitioner to provide a more balanced view. An excellent summary of why each of the VRAPS principles are important is provided. A short example scenario follows, briefly illustrating how the model can be used and misused. These concepts are further expanded throughout the book.
The second chapter is essentially a more detailed look at VRAPS and how everything fits together. Criteria, Patterns and Antipatterns are explained, along with a short history of VRAPS. An amusing anecdote mentioned was a manager who divided his program into one hundred modules to show percent complete. Only five modules had more than 100 lines of code. One of the five had over a million lines. There are similar occurrences throughout the book that illustrate various follies in software development and management.
Chapter three deals with maintaining the vision and direction of the project while balancing all the influences. To a manager, the project may look perfectly ordered on paper while features are added and removed. On paper it still looks neat, but to the practitioner it can appear a jumbled mess. The reader also sees the first example of how the situation layouts are handled in the book. A short summary covering the Criteria, Antipatterns, and Patterns is presented. Then each criterion is further examined with its related Antipatterns and Patterns.
Further chapters proceed with introducing various development concepts that complete the VRAPS moniker. How to put the concepts into practice is explored through the same Criteria, Antipattern and Pattern layout. It does an excellent job of illustrating each part of VRAPS. Following at least some of the principles will result in a project that will be successful, instead of becoming one of the book's examples where the team ended up with nothing to show for its work.
The chapter on the Allaire (now part of Macromedia) case study was the most interesting chapter of the whole book. Company and product development is followed, including mistakes made along the way. The final chapter on 'Building and Implementing a Benchmark' was rather unimpressive. It seemed merely tacked onto the end and included no real conclusion to the entire book. However, the rest of the book is a solid piece of work with very useful information.
The anecdotes and examples throughout keep the reading from becoming too dull. Even with a flat finish to the book it contains plenty of valuable information and is worth the admission price, though it could have been better still.
Chapters
1. What You Can't See could Help You
2. The VRAPS Reference Model: How the Pieces Fit Together
3. Projecting and Unifying Vision
4. Rhythm: Assuring Beat, Process, and Movement
5. Anticipation: Predicting, Validating, and Adapting
6. Partnering: Building Cooperative Organizations
7. Simplification: Clarifying and Minimizing
8. Principles at Work: The Allaire Case Study
9. Case Study: Building and Implementing a Benchmark Using VRAPS
Appendixes
A. Quick Reference Table: Principles, Criteria, Antipatterns, and Patterns
B. Antipattern and Pattern Summaries
You can purchase Software Architecture: Organizational Principles and Patterns from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
we use the American Standard Spiral (ASS) model.
Being able to identify and solve problems in a project and its organization is important for any large software project no matter where you are in the development chain.
/. so fun (and informative!). If I may be so bold to add on to your analysis, I think it's also important for a software developer to be able to read and write. No matter where you are in the development chain.
This is the kind of astute observation that makes reading
Best Windows Freeware
Read on for the reast of Ben's review.
And they tell us to check 10 times before posting anything!!This methodology has what is probably the most important feature any methodology can have: a nifty acronym. Sounds highly technical, yet it could also be a tasty lunch item. I shall write a memo to the CTO forthwith!
Roving Web-Teleoperated Robot
You don't call such people managers....
you call them damagers.
My Aurora : http://www.youtube.com/watch?v=o91ZsGwJYyg
FB : https://www.facebook.com/TanveersPhotography
That depends on how you look at it. It is perfectly natural to think that he meant 'rest'. But maybe I jumped the gun a bit.
Does it really matter, some people read rest, some people read 'core' and others just read the whole thing and worked it out for themselfs.
thank God the internet isn't a human right.
I think reviews should address those questions.
Matt
An exploit for your application is circulating in the underground.
I saw David Kane present these concepts at a Software Architecture Conference. In essence, he was reinforcing the importance of architecture, and the need to deal adequately with all the non-technical aspects of implementing an architecture within an organisation. The book is worth a read, mostly for solutions to people-type problems (e.g. how to persuade a development team to adhere to an architecture, using informal relationships to aid communication and shared goals).
VRAPS has been one of the key underpinnings of OpenDK since release version 3. It helps to takedown many problems that plague open projects.
Software Architecture: Organizational Principles and Patterns covers the VRAPS model and the organizational aspects of Software Architecture
You know, there's one thing worse than developing software without a methodology, and that's changing the methodology every time someone comes out with a new acronym. No-one can evaluate a method until they've done a few non-trivial projects with it, and that takes years. If all the people who jumped on the RUP bandwagon then the XP bandwagon jump on this, the industry's track record for delivering on time and within budget will only get worse.
Good Point. A review should by definition (www.dictionary.com) give a CRITICAL report otherwise we might as well just read the contents page.
Nick
But, is this a useful book? Is it good?
From the Article:The anecdotes and examples throughout keep the reading from becoming too dull. Even with a flat finish to the book it contains plenty of valuable information and is worth the admission price, though it could have been better still.
So you dont read before posting.... Lemme guess you want to be a slashdot editor
My Aurora : http://www.youtube.com/watch?v=o91ZsGwJYyg
FB : https://www.facebook.com/TanveersPhotography
Consequently, I propose the following acronym.
Criteria
Rhythm
Antipatterns
Patterns
~Idarubicin
Software Architecture: Organizational Principles and Patterns
So that's a no then.
I wish people would stop trying to manage it.
Sweet! Where did you find that?
--
Matt
Agreed: Software is Art.
... even if they know nothing about Art.
Unfortunately, people who fund the Arts usually expect to manage the Arts
-kgj
I had a former collegue that just couldn't grasp the use of design patterns, and thus despised the concept. He also couldn't solve large scale programming problems and wasn't much of a software architect in general. Then, the book anti-patterns comes out which he latched onto as some sort of weapon against the evil design patterns. He became very dogmatic about using what he had learned from the book to shoot down others designs (obviously, not what the book was intended for), trying to find fault in others work to somehow cover for his own inadequacies.
My former collegue taught me one thing if nothing else. It is easier to find a problem in a design than it is to find a solution for a design. Design patterns are a powerful way to classify and grasp large abstract recurring design issues. Anti-patterns are nothing but the same. Don't let anyone tell you otherwise.
come on fhqwhgads
According to the review, the book seem to be how to manage a project to an ugly completion. Very similar to how eXtreme Programming is supposed to result in more efficient development, but results in disorganized (yet working) code.
Or is this actually a worthwhile guide to software engineering? Does anyone know?
badness 10000
You might also want to check out the latest development process paradigm: Market Programming
Software Wars
The Cheat is to the Limit
This is exactly what's wrong with the universe, or at least the small part of the universe occupied by software engineers.
What has all of our Functional, Object Oriented, Extreme Programmed, UML-based, XML compliant, Pattern-ed or Anti-Pattern-ed flow charts in animated PowerPoint got us? Its got us a load of crap, thats what. A load of crap. We re-org endlessly. We have more meetings. We write more Standard Operating Procedures. We rewrite the coding standard. We switch languages, run times, operating systems, and libraries. We refactor, re-code, re-work, re-design and re-plan. And we get a load of crap. We manage, and plan and re-manage and re-plan, depending on what the winds of your upper management's whims dictate is the "in" style for the day.
What should all of this tell us?
Software engineering is a practical craft. No amount of process will ever make up for proper training, proper documentation, proper version control, and proper testing. Ever. And that's the way it is. If you have good people, set them free. If you don't, spend a little money to train them to their highest potential instead of trying to make them good cogs in a crappy buzzword wheel.
In the end, 99% of the work done by software engineers is just rearranging magnetic pixy dust on some drive platter, or scattering the electrons in a flash or DRAM or SRAM cell. Most of our value to the universe is just damned pixy dust. And it shouldn't be this difficult.
We don't need any more of this - we all just need to learn how to be practical craftsmen that get *work* done.
Outside of a dog, a book is a man's best friend. Inside a dog, its too dark to read.
We don't need any more of this - we all just need to learn how to be practical craftsmen that get *work* done.
Sure.
No amount of process will ever make up for proper training, proper documentation, proper version control, and proper testing. Ever.
A process is supposed to precicely about a framework for accomplishing those things. Sadly, it doesn't tell you how to do the work. That requires experience.
If you have good people, set them free.
Depends what you mean by this. Do you mean -- everyone is autonomous, let's hope for emergent organization? Or do you mean -- let's come to a consensus of the MINIMAL required ceremony to get our jobs done in the most effective way possible? The former is possible with a very small team of experts. The latter is possible with a (more likely) team of mixed-expertise(high/medium/low).
What I'm trying to say is that process & methodology doesn't have to be about getting poorly [trained, motivated, disciplined] people to develop great software. It just happens that many poor managers (which are in much larger supply than poor software developers) tend to apply it that way.
Agile processes are precicely supposed to be about letting good people get their job done, without stepping on each other! That's the whole idea behind XP and its ilk.
Object oriented technology, patterns, etc. are all techniques for experienced programmers to create more maintainable and expressive programs by elevating the level of discourse. They can be misused. They don't substitute for experience. But there is value there.
By suggesting that "we don't need none of this extra stuff", you are right -- yet there still is a place for that "extra stuff".
It's kind of like Maslow's hierarchy of needs. At the base levels, you need good [disciplined, competent, motivated, intelligent, trained] people, good team dynamics, good technical management, support from general management.
This is the kind of stuff that the Agile Alliance believes in. People over processes, collaboration over negotation.
At the upper levels of the hierarchy of needs are things like tools, processes, and higher-level programming constructs. They do add a lot of value to software development, but are not first order success-factors.
-Stu
The cornerstone of software development is the specifications. Once this is laid out, the rest is easy.
I work at the defense application sector and every software project comes complete with a book of specifications. Every little detail is described analytically. We never had a problem with any project. We don't work long hours (standard 9 to 5) because we don't need to. We also have to deliver a preliminary design document prior to first meeting which proves that we understand the design issues.
On the other hand, the next door department works on business applications: web banking, mobile phone accounting, distributed DBs etc. They work under terrible stress, they throw big amounts of code every week, they work overtime almost every night, and they almost all smoke one cigarette after the other. And this is all because there are no fixed requirements for each contract they get: requirements change by the minute, from person to person, from manager to developer to network administrator!!!
The real software is not the code: its the specification, and specification means requirements and design. Everything else, incluging VRAPS, is buzzwords to keep the manager happy.
... is the antithesis of the eXtreme programming books.
Yes, business requirements change constantly. That is because the marketplace (that you are so conveniently insulated from in the defense sector) changes constantly. I'm sure that if you can devise a way to freeze the economy in time, your harried neighbours will be delighted to write specifications at their leisure.
This could be your ticket to having sucess built upon real engineered works and not a system of welfare and snake-tongued deals.
Just ask for the chief architect, Art Vandelay.
If you want to review the book for yourself, portions of the book are available online.
The preface and the rhythm chapter can be found on Dana Bredemeyer's software architecture site: http://www.bredemeyer.com/papers.htm
Amazon also has about 44 pages from the book on their site including all of chapter 1 (Introduction), some of chapter 2 (Reference Model), the index, and table of contents.
David Kane
houseofyin.com