Laws of Software Engineering
A working set of ideas for software practitioners at every level, sorted into six tiers by how solid the evidence is.
Tiers
- Laws - proved by maths or strong, repeated evidence
- Principles - design rules that work in most situations
- Patterns - regularities we keep seeing, useful for spotting problems
- Practices - ways of working, repeated until habit
- Sayings - sharp phrases that make you think
- Frameworks - ways of seeing the whole picture
Clusters
The tiers sort entries by how strong the evidence is. The clusters cut across the tiers and group entries that work on the same concern.
- The Adoption cluster - Why technology arrives unevenly, and what to do about it.
- The Measurement cluster - How to measure without breaking the things you measure.
- The Improvement cluster - How systems get better over time.
- The Distributed Systems cluster - The mathematics of what is possible across a network.
- The Interface Contracts cluster - What you promise, what you accept, what your users come to depend on.
- The Team Design cluster - How to organise people for software work.
- The Culture and Incidents cluster - How organisations learn, or fail to, from what goes wrong.
- The Systems Thinking cluster - Ways of seeing systems whole.
- The Lean Product cluster - How to build the right thing.
- The Code Design cluster - How to write code that survives change.
- The Brooks cluster - One author whose work shapes most of the field.
Also
- The Fallen - concepts considered and not included