Laws

Laws that apply to our industry (and others) are interesting to me, and I’m writing up here the ones that often come to mind. I usually forget the name, so writing them up might be helpful for remembering in future.

Parkinson’s Law

C. Northcote Parkinson’s law: Work expands so as to fill the time available for its completion. Similarly, in computing, data expands to fill the space available for storage, or tasks expected of a computer expand to fill the resources.

Related is William Stanley Jevons’s paradox (Jevons paradox): Making resource use more efficient leads to more using more resources, negating the perceived benefits. Computers get faster and get more memory, so our apps are written in high-level languages that use more resources to do the same thing, and then the experience is slow again.

Law of Triviality

C. Northcote Parkinson’s law of trivality, from which bikeshedding derives, is that within an organization or committee, people will more passionately argue about trivial matters than difficult, complex matters, naturally because that requires less thinking.

Conway’s Law

Melvin Conway’s law is:

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

Law of Leaky Abstractions

Joel Spolsky’s law states that every nontrivial abstraction leaks the details that it’s trying to protect you from. Worse still, if you’ve only learned the abstraction and not the level below it, you’re ill-equipped to deal with the leak anyway.