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