The Complexity of Simplicity
Bryan Cantrill:
I actually view the primarily role of a technical education, in computer engineering or in computer science / software engineering, is giving you humility that anything works at all […] that once you understand how extraordinary it is for a machine to work at all, you’re humbled.
More 👏 humility 👏 please.
Cantrill makes a good point that “complexity is contagious”. It doesn’t merely accrue, it can go viral and spread to everything around it when not properly managed.
When simplicity in the abstraction is a non-goal, you don't know what to say “No” to.
When constructed systems are done well, there is someone at the helm, or a group at the helm, or unifying principles, that allow them to know what to say “No” to and give them permission to say “No”.
New software is so hard because people aren’t ready for it. No matter when you ship it:
The most calcified software of all: the software in our minds.
Which is why:
The biggest problem for a revolutionary system is to stay funded.
When you’re drowning in complexity, just know that it can get better — it will get better! How do you know that? Because revolutionary ideas can change the abstractions we build on.
when you are mired in accreted systems, that is when revolution systems form. That is a solace we can take when we are in extremely complicated, accreted systems.
It’s very complicated to make things simple — and it’s very simple to make things complicated.