Merge pull request #9 from dwmkerr/feat/teslers-law

feat: added tesler's law
This commit is contained in:
Dave Kerr
2018-10-04 23:44:24 +08:00
committed by GitHub

View File

@@ -9,6 +9,7 @@ Laws, Theories, Patterns and Ideas that all developers should know about!
* [The Laws](#the-laws)
* [⭐⭐ Conway's Law](#-conways-law)
* [⭐ Hofstadter's Law](#-hofstadters-law)
* [⭐⭐ The Law of Conservation of Complexity (Tessler's Law)](#-the-law-of-conservation-of-complexity-tesslers-law)
* [⭐⭐⭐ The Unix Philosophy](#-the-unix-philosophy)
* [⭐The Spotify Model](#the-spotify-model)
@@ -41,6 +42,16 @@ See also: 'The Spotify Model'.
You might hear this law referred to when looking at estimates for how long something will take. It seems a truism in software development that we tend to not be very good at accurately estimating how long something will take to deliver.
### ⭐⭐ The Law of Conservation of Complexity (Tessler's Law)
[The Law of Conservation of Complexity on Wikipedia](https://en.wikipedia.org/wiki/Law_of_conservation_of_complexity)
This law states that there is a certain amount of complexity in a system which cannot be reduced.
Some complexity in a system is 'inadvertent'. It is a consequence of poor structure, mistakes, or just bad modeling of a problem to solve. Inadvertent complexity can be reduced (or eliminated). However, some complexity is 'intrinsic' - is is a consequence of the complexity inherent in the problem being solved. This complexity can be moved, but not eliminated.
One interesting element to this law is the suggestion that even by simplifying the entire system, the intrinsic complexity is not reduced, it is _moved to the user_, who must behave in a more complex way.
### ⭐⭐⭐ The Unix Philosophy
[The Unix Philosophy on Wikipedia](https://en.wikipedia.org/wiki/Unix_philosophy)