Keeping it simple…?

Simplicity, Design Elegance and Architecture

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.

The architecture design process implicitly defined by the article is clever in its simplicity (no pun intended):

  1. Separate the solution concern into two (or more) logical concerns
  2. “Is the concern grouping and separation coherent?” Test each answer using the principle assertions
  3. “Is the concern grouping and separation optimal?” Test each answer using the principle assertions
  4. 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 etc.

The main criticism of the article is the exchanging 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.

A “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.

An “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, which is why an elegant design is so difficult to achieve. But don’t let that stop you.