Laws of Software Engineering (@SoftwareEngLaws) header
Laws of Software Engineering (@SoftwareEngLaws) profile picture

A guide to the patterns that shape software systems, teams, and decisions, by @milan_milanovic.

Joined December 2025
Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)Photo by Laws of Software Engineering (@SoftwareEngLaws)
Every senior engineer learned these the hard way. Conway's Law. Brooks's Law. Hyrum's Law. 63+ principles that shape every system, team, and decision. One book, so you don't pay the same tuition. lawsofsoftwareengineering.co…
1
4
125
Tesler's Law (Conservation of Complexity) Every application has an inherent amount of irreducible complexity that can only be shifted, not eliminated.
1
8
Gall's Law A complex system that works is invariably found to have evolved from a simple system that worked.
1
12
Brooks's Law Adding manpower to a late software project makes it later.
1
14
YAGNI (You Aren't Gonna Need It) Don't add functionality until it is necessary.
1
1
23
The Boy Scout Rule Leave the code better than you found it.
1
1
16
Hyrum's Law With a sufficient number of API users, all observable behaviors of your system will be depended on by somebody.
1
1
19
Premature Optimization (Knuth's Optimization Principle) Premature optimization is the root of all evil.
1
2
88
Conway's Law Organizations design systems that mirror their own communication structure.
1
2
41
Microsoft found that about 20% of bugs in Windows and Office caused 80% of all crashes One percent of them caused about half the errors Stop treating the backlog as a queue. The vital few go first
1
2
98
Microservices were going to fix scaling, then teams drowned in hundreds of them, and now we use them where they fit We overrate a technology in the short run and underrate it in the long run. The trough is where the useful ones mature
1
2
62
Goodhart says a measure stops working once it becomes a target Gilb says anything worth quantifying can be measured somehow Both hold, so metrics need replacing rather than defending Pick a rough number, watch it move, swap it when it gets gamed
1
2
48
"All models are wrong, but some are useful" George Box said that about statistics, and capacity planning proves it every quarter The model says the database does 10,000 queries per second. Production says 5,000, and production does not have to justify itself
1
2
36
Ten bugs in the first release, all of them in login A few releases later every login test passed and we called that quality Then messaging shipped with no new tests and users found the crashes for us A suite that never changes stops finding anything
1
2
35
An analytics platform is three things Something that ingests data, something that computes statistics, something that writes reports Build those in Python and you have 90% of the solution at a fraction of the licence fee The decomposition is free. The licence was not
1
2
37
Software that reflects the real world cannot be finished The requirements move, the code moves, and every move adds complexity Lehman started counting in 1974 and reached eight laws by the 1990s. Adding a feature in year 25 takes longer than in year 5
3
2
4
342
Stop asking how to make this work What would make this fail? Who is the one person whose absence stops everything? Netflix answers questions like that by killing their own servers on purpose
1
1
35
I replaced a 500-line plugin architecture with a 50-line script The architecture existed for requirements that never arrived 450 of those lines were written for nobody Make it as simple as the problem allows, then stop
1
4
53
"The network call is basically free" I believed it because on my laptop the network was a function call. So the cache fetched from a remote node on every lookup There are eight fallacies like this one, and the one that gets you first is that latency is zero
3
1
4
590