This page gathers my collection of universal principles for the design and construction of software intensive systems, as Booch calls the IT stuff we create.

The 80/20 principle
(Part of my collection of Universal Principles of Software System Design) Also known as the Pareto principle. A well know
Read more.
Proximity
The principle of proximity aims to ensure that related design elements are placed together. Unrelated items, should be placed separately.
Read more.
Cohesion
Cohesion is a notion in software construction that represents the strength of the dependencies within a component. Cohesion indicates how
Read more.
Recovery
Design for recovery means you take explicit measures in your software systems for unexpected situations. Recovery plays at every levels
Read more.
Noise reduction
The principle of noise reduction in software systems makes software systems better by removing inessential parts and options, and/or making
Read more.
Changeability
The principle of changeability defines the possibility to change the functionality of software components with as little as possible impact
Read more.
Alignment
In design, alignment is an aesthetic means to achieve unity and coherence. In software systems alignment applies in several areas,
Read more.
Agility
Agile software development is an approach to software development under which requirements and solutions evolve through the collaborative effort of
Read more.
Affordance
Affordance aims to encourage designs to be constructed in such a way that they enforce their intended function. So they
Read more.
The Cathedral effect
The Cathedral effect tells us that a high ceiling design is best suited for spaces where high level work is
Read more.
Aesthetics in software systems
Beautiful things are easier to use. We can also apply this to technical designs. This often surprises a non-technical audience,
Read more.
The Lindy effect and technology
Stuff that has been around for x years, can be expected to remain around for another x years. That is
Read more.
Constraints
In a design the constraints limit the options of a solution. The same is true in software systems. In software
Read more.
Idempotence
Idempotence is a characteristic of operations that means that an operation can be executed multiple times, with the same result
Read more.
Simplicity
A system is designed to be as simple as possible (but no simpler – attributed to Einstein, it seems). Lidwell
Read more.
Universal principles of design – applied to information technology?
Stumbled upon Universal Principles of Design by William Lidwell. Besides being a nice read, it’s interesting to see how most
Read more.
Close Menu