Difference between revisions of "Informal laws"
From apm
m (→External links) |
(Added: Greenspun's tenth rule; Fundamental theorem of software engineering -- in new subsection === Coding ===) |
||
Line 9: | Line 9: | ||
---- | ---- | ||
* [https://en.wikipedia.org/wiki/Goodhart%27s_law Goodhart's law] – Generalization by Marilyn Strathern: '''"When a measure becomes a target, it ceases to be a good measure."''' | * [https://en.wikipedia.org/wiki/Goodhart%27s_law Goodhart's law] – Generalization by Marilyn Strathern: '''"When a measure becomes a target, it ceases to be a good measure."''' | ||
+ | ---- | ||
+ | === Coding === | ||
+ | |||
+ | * [https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule Greenspun's tenth rule] – "Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp." <small>(there are no nine preceding rules)</small> | ||
+ | ---- | ||
+ | * [https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering Fundamental theorem of software engineering (FTSE)] (David Wheeler) <br>"We can solve any problem by introducing an extra level of indirection." – With it's extension! ... <br> "Except for the problem of too many layers of indirection." (humorous but serious) | ||
== Principles == | == Principles == |
Revision as of 08:25, 19 August 2021
"Laws"
- (weak) Linguistic relativity, aka Sapir–Whorf hypothesis – "Linguistic categories and usage influence thought and decisions."
- Conway's law – "Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure." — Melvin E. Conway
- "Drexlers law" – "What we can do depends on what we can make."
- Goodhart's law – Generalization by Marilyn Strathern: "When a measure becomes a target, it ceases to be a good measure."
Coding
- Greenspun's tenth rule – "Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp." (there are no nine preceding rules)
- Fundamental theorem of software engineering (FTSE) (David Wheeler)
"We can solve any problem by introducing an extra level of indirection." – With it's extension! ...
"Except for the problem of too many layers of indirection." (humorous but serious)
Principles
- Form follows function – When the shape of an object primarily relates to its intended function or purpose.
This is usually the result when designing at the limit of what's possible under tight constraints.
When the limits imposed by physical law leads to the emergent discovery of the shape of a technical artifact.
- Design for manufacturability (DFM) – The general engineering practice of designing products in such a way that they are easy to manufacture.
Musk's 5 step design process:
- (1/5) Sanity check specifications / requirements. Do they even make sense?
- (2/5) Delete / add-in part of the process. – "The best part is no part."
- (3/5) simplify / optimize
- (4/5) accelerate cycle-time
- (5/5) automate
Avoid doing the whole sequence in reverse.
Related
External links
- Youtube - Musk's 5 step design process: Starbase Tour with Elon Musk (PART 1)