Skip to main content

Software Engineering Laws

Hyrums Law

  • With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.

Postels Law

Laws of UX

  • Be liberal in what you accept, and conservative in what you send.

Hickโ€™s Law

  • The time it takes to make a decision increases with the number and complexity of choices.

Law of Prรคgnanz

  • People will perceive and interpret ambiguous or complex images as the simplest form possible, because it is the interpretation that requires the least cognitive effort of us.

Teslerโ€™s Law

  • Tesler's Law, also known as The Law of Conservation of Complexity, states that for any system there is a certain amount of complexity which cannot be reduced.

Brooks Law

  • 9 women can't create a baby in one month
  • "adding manpower to a late software project makes it later".

Conway's Law

  • Organizations, who design systems, are constrained to produce designs which are copies of the communication structures of these organizations.

Moore's Law

  • number of memory doubles every 2 years

Wicked Problem (Horst Rittel and Melvin Webber 1973)

  • Problem needs to be solved at least once or part of it, and then solve it again for a more stable solution

Rule of Three

  • Three strikes and you refractor - Martin Fowler

Beyonce Rule - Google's CI Law

  • "if you like it put a CI test on it"

Chesterton's fence

  • if you cannot determine/explain why a 'hack' is in place you have no right to refractor it

Hofstadter's law

  • It will come as no surprise to anyone who has ever hired a contractor to learn that everything takes longer than you think, even if you know about the planning fallacy.

Design - Steve Jobs

  • Design is not just what it looks like and feels like. Design is how it works. โ€”Steve Jobs