Hacker Laws
~4 mins read
All models are wrong, but some are useful.
tldr
Keep it simple
Don’t take down a fence unless you know why it is put up
The best code is no code
Do one thing and do it well
Test early and often
Anything that can go wrong will go wrong.
Leave it better than you found.
Keep it simple
-
The best code is no code
-
Simple solutions are more likely to be correct. Occam’s Razor
-
Do one thing and do it well
-
YAGNI
-
KISS
-
Nirvana Fallacy
-
Get end-to-end first
-
Too many options leads to decision paralysis
-
Premature optimization is the root of all evil. Donald Knuth
-
Decision time grows logarithmically with the number of options you can choose from. Hick’s Law
-
Humans can comfortably maintain up to 150 stable relationships. Dunbar’s Number
-
With a sufficient number of users of an API, all observable behaviors of your system will be depended on by somebody. Hyrum’s Law (The Law of Implicit Interfaces)
-
The technical boundaries of a system will reflect the structure of the organization. Conway’s Law
-
The Law of Demeter, “The Principle of Least Knowledge”
-
The Pareto Principle (The 80/20 Rule)
-
20% of a system creates 80% of its value
-
Ship it
-
Make everything as simple as possible, but not simpler.
-
There is a certain amount of complexity in a system that cannot be reduced. The Law of Conservation of Complexity (Tesler’s Law)
-
All non-trivial abstractions, to some degree, are leaky.
-
If all you have is a hammer, everything looks like a nail.
-
Chesterton’s Fence: Don’t take down a fence unless you know why it is put up.
Leave it better than you found.
-
The Broken Windows Theory: Visible signs of lack of care in an environment lead to further and more serious deterioration.
-
Get feedback early and often
-
Test early and often
-
Given enough eyeballs, all bugs are shallow.
Any sufficiently advanced technology is indistinguishable from magic.
Anything that can go wrong will go wrong.
-
Brandolini’s law: The amount of energy needed to refute bullshit is an order of magnitude bigger than to produce it.
-
It always takes longer than you expect, even when you take this into account
-
Work expands to fill the time available for its completion. Parkinson’s Law
-
Cheops law: Nothing ever gets built on schedule or within budget.
-
Adding human resources to a late software development project makes it later. Brooks’ Law
-
When a measure becomes a target, it ceases to be a good measure. Goodhart’s Law
-
We tend to overestimate the effect of a technology in the short run and underestimate the effect in the long run. The Hype Cycle & Amara’s Law
Stay hungry, stay foolish
-
Incompetent people think they are the best. The Dunning-Kruger Effect
-
Institutions will try to preserve the problem to which they are the solution. The Shirky Principle
-
People in a hierarchy tend to rise to their “level of incompetence”. The Peter Principle