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 knowRead more.
The principle of proximity aims to ensure that related design elements are placed together. Unrelated items, should be placed separately.Read more.
Cohesion is a notion in software construction that represents the strength of the dependencies within a component. Cohesion indicates howRead more.
Design for recovery means you take explicit measures in your software systems for unexpected situations. Recovery plays at every levelsRead more.
The principle of noise reduction in software systems makes software systems better by removing inessential parts and options, and/or makingRead more.
The principle of changeability defines the possibility to change the functionality of software components with as little as possible impactRead more.
In design, alignment is an aesthetic means to achieve unity and coherence. In software systems alignment applies in several areas,Read more.
Agile software development is an approach to software development under which requirements and solutions evolve through the collaborative effort ofRead more.
Affordance aims to encourage designs to be constructed in such a way that they enforce their intended function. So theyRead more.
The Cathedral effect
The Cathedral effect tells us that a high ceiling design is best suited for spaces where high level work isRead 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 isRead more.
In a design the constraints limit the options of a solution. The same is true in software systems. In softwareRead more.
Idempotence is a characteristic of operations that means that an operation can be executed multiple times, with the same resultRead more.
A system is designed to be as simple as possible (but no simpler – attributed to Einstein, it seems). LidwellRead 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 mostRead more.