LEAP - Style, Sense, and Simplicity

Simplicity in System Architecture and Software Design

Triple Essence: Strength, Utility, and Beauty

What properties should we expect of a good design? The influential ten-volume de Architectura, by first century BC Roman architect Marcus Vitruvius Pollio, suggested that all constructions should possess "strength, utility and beauty". Sir Henry Wotton (1568‑1639) quaintly changed this to, "commodity, firmness and delight."

In system architecture this can be translated into Style, Sense and Simplicity. In order to balance these tree qualities in system design the system architect should master Aristotle's pathos, logos and ethos.

 

Trinity

Architecture style sense simplicity
Terra (earth) pyro (fire) aqua (water) aero (air)
Plato (427-347 BC) beauty truth goodness
Aristotle (384-322 BC) (Rhetoric) pathos (emotion) logos (reason) ethos (ethics)
Vitruvius (ca. 60-20 BC) (de Architectura) venustatis (beauty) utilitatis (utility) firmitatis (strength)
Sir Henry Wotton (1568‑1639) delight firmness commodity

Complexity

The inherent complexity of a software system is related to the problem it is trying to solve. The actual complexity of a software system is related to the size and structure of the software system as built. The difference is a measure of our inability to match the solution to the problem. [KH99a]

Minimalism

The minimum could be defined as the perfection that an artefact achieves when it is no longer possible to improve it by subtraction. This is the quality that an object has when every component, every detail, and every junction has been reduced or condensed to the essentials. It is the result of the omission of the inessentials. [JP98]

Sufficiency

A more pragmatic and minimal design style does not mean writing code that hugs its assumptions so closely that only major surgery will separate the two in the event of change. It is not about hardcoding everything: it is about both sufficiency and finding the right amount of space between the elements of your solution, offering the right amount of slippage or wriggle room. The challenge of design is in seeking and maintaining local minima of sufficient simplicity with sufficient generality that the integrity of the design is not easily disturbed, and the energy required to adapt to change is proportionate to the degree of change. [KH02]

Speculative Generality

Brian Foote suggested this name for a smell to which we are very sensitive. You get it when people say, "Oh, I think we need the ability to this kind of thing someday" and thus want all sorts of hooks and special cases to handle things that aren't required. The result is often harder to understand and maintain. If all this machinery were being used, it would be worth it. But if it isn't, it isn't. The machinery just gets in the way, so get rid of it. [Fowler1999]

Chain reaction simplification