Is that an architecture in your pocket?
A lot of developers and architects ask me how they can start learning about architecture. The are usually looking for the “Golden Path” to the one, true architecture for their application.
Of course this doesn’t exist. Each system must have it’s own architecture, to support it’s own needs. But, as architects, we do need a mechanism to share what we know, the experience that we build up over our careers. We should be able to say “This is what I built, and this is why it worked in this scenario.” We also need to consider the frames of concern for a model, and discuss those as well.
We need to make sure that this knowledge is approachable. There are other industries where they build these giant repositories, and then are ignored. I like to call these ‘ShelfWare’. Others call them ‘Bodies of Knowledge.” More like Dead Bodies of Knowledge. :) No one really uses it, but references it as a bible to defend a bad move or decision.
How can we make it approachable? Well, first you can’t require membership in a secret club. You also need to make sure you explain domain specific terms, and you also have to keep it short. Not 2 pages short, but not 50,000 pages long either. And it has to have good navigation.
Another problem is that architecture is as diverse as development. You have different concerns in a web application than you do in a client app, or in a services tier.
The Patterns & Practices Group at Microsoft has been pumping out a lot of guidance recently. I am just now catching up with all of their deliverables over the past few months.
Their most recent release is a set of targeted Architecture Pocket Guides. They are of a fairly short read, plenty of pictures, and covers these aspects well, with the common knowledge most experienced architects have.
These are definitely a must read for any new or aspiring architect. I think lead developers should be very familiar with them as well. An experienced architect should briefly read them. It is a good way to confirm what you have learned, and formalize it a bit. And it is always good to read in print what you already ‘know’ or feel. It helps you put concrete words to your instincts.
Of course, even though it is in the pocket guide, it is just that, guidance. Use your own critical thought, and answer with ‘it depends.’
You can browse the index of Pocket Guides at the Pocket Guide Index page at our Application Architecture KB on CodePlex.
Comments