Difference between revisions of "Informal laws"

From apm
Jump to: navigation, search
(Added: Greenspun's tenth rule; Fundamental theorem of software engineering -- in new subsection === Coding ===)
(added link to Wikipedia page about "Clarke's three laws")
Line 10: Line 10:
 
* [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."'''
 
----
 
----
 +
* [https://en.wikipedia.org/wiki/Clarke%27s_three_laws Clarke's three laws]
 +
 
=== Coding ===
 
=== Coding ===
  

Revision as of 08:30, 19 August 2021

This article is a stub. It needs to be expanded.

"Laws"


  • "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.


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