summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Kerr <dwmkerr@gmail.com>2018-10-04 23:44:24 +0800
committerGitHub <noreply@github.com>2018-10-04 23:44:24 +0800
commit7f6c23c67abcc3b7299fe8954fbf5449797cb35e (patch)
tree6d561135981d67a4e244f6b29b42d9b84a852cf2
parent839b51ce767d3e485c47a3bd27e9caf719bcb318 (diff)
parentecf4d44aa920308a89013169ac6005e14c9ed791 (diff)
Merge pull request #9 from dwmkerr/feat/teslers-law
feat: added tesler's law
-rw-r--r--README.md11
1 files changed, 11 insertions, 0 deletions
diff --git a/README.md b/README.md
index c4e9eca..2ff38f4 100644
--- a/README.md
+++ b/README.md
@@ -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)