Chris Aitken‘s article “Simplicity is the ultimate sophistication” had me intrigued and well worth a read. If nothing else to acquaint yourself with the described architectural principles and the idea of ‘principle assertions‘ – statements that are either ‘true’ or ‘false’ depending on whether the principle is evident or not in a given architecture specification.
I have summarised the principles below.
- The Principle of the Separation of Concerns: A design should be comprised of a set of independent components each of which addresses discrete functionality requirements for each defined concern.
- The Principle of Optimisation: A design should provide a complete solution without necessary duplication.
- The Principle of Coherency: All design components should be harmonised.
The architecture design process (implicitly) defined by the article is clever in its simplicity (no pun intended):
- Separate the solution concern into two (or more) logical concerns
- “Is the concern grouping and separation coherent?” Test each answer using the principle assertions
- “Is the concern grouping and separation optimal?” Test each answer using the principle assertions
- To go 1 if answers to 2 or 3 produce false assertions.
Note: concerns are relative to your stakeholders who may be concerned with requirements, systems, models, operational processes, code quality, cost etc.
The only slight problem that I have with the article is the interchanging use of the terms “good design”, “simplicity” and “elegant design”. Is design simplicity really the same as design elegance? And how is this different to a good design?
I had a look in the dictionary for guidance.
Good: to be desired or approved of; having the required qualities; of a high standard.
“Good design” infers a design that meets all concerns for all stakeholders.
Simplicity: the quality or condition of being easy to understand or do; plain or uncomplicated in form or design.
“Design simplicity” infers a design easy to understand by its stakeholder.
Elegant: graceful and stylish in appearance or manner; pleasingly ingenious and simple.
“Elegant design” infers a design that causes the architect to glow of pride, as it is realised to be both good and simple to all relevant stakeholders.
Beauty is in the eye of the beholder and therefore difficult to achieve. But don’t let that stop you.