A while ago, someone provoked me to put software architecture in ten bullets. Nothing that short does such an important topic justice, but these ten held up pretty well in day-to-day discussions – even though I don’t consider myself an architect.
It is probably not the philosopher’s stone, because by the time one has grokked architecture deeply enough to make sense of these bullets, you don’t need them anymore. But they could be a useful impulse for an interesting discussion.
Anyways, here they are.
- There is no silver bullet
- There is no good or bad architecture.
There is adequate architecture. - Architecture turns a bunch of features into a sustainable deliverable. Or not.
- Architecture is structure + texture.
- “Adequacy” for architecture is assessed primarily against “non-functional requirements”.
- To construct architecture, look at the tensions between the various non-functional requirements.
- ISO/IEC 9126 is a nice starting point
- Stay compatible with all involved lifecycles and taxonomies
- No system ever is completely specified in its non-functional requirements, lifecycles or taxonomies.
If you feel cheated because there’s no number ten, use this one: “You don’t even need ten bullets”. I’ll elaborate on each one in due time.
Are they useful? – I hope so. Most likely, they will be most useful in combination with my favorite question: “What does this mean to us?”
What do they mean to you? – I’m curious for your comments.