Recently a friend of mine shared this list of laws in software development from Tim Sommer.

If you are a CTO, VP/Director of Eng., or Principal Engineer you might be already familiar with them. For those who don’t (and don’t want to look bad in a conversation about them), here is a quick summary -of my favorites-:

Murphy’s Law: “If something can go wrong, it will.”

We need to move data from one MySQL server to another, what can go wrong?

Brook’s Law: “Adding manpower to a late software project makes it later.”

Let’s hire a senior engineer; he would probably ramp up in our 10-years of development platform in one day.

Hofstadter’s Law: “It always takes longer than you expect, even when you take into account Hofstadter’s Law.

I used to have a boss that claims he can build a CRUD app in zero time. That’s correct, zero time.

Pareto Principle (80/20 rule): “For many phenomena, 80% of consequences stem from 20% of the causes.

I can’t count how many times I overlooked this rule.

Linus’s Law: “Given enough eyeballs, all bugs are shallow.

Don’t ship something without QA, and don’t be the QA person.

Moore’s Law: “The power of computers per unit cost doubles every 24 months.

Which causes lazy developers.

Wirth’s law: “Software gets slower faster than hardware gets faster.

Fortunately, we can buy more hardware for cheap.

Knuth’s optimization principle: “Premature optimization is the root of all evil.

Try to say “we need a refactor” in an overdue project meeting.

Leo Celis