Simplicity as a prerequisite for reliability

📄 wiki page | 🕑 Last updated: Oct 1, 2022

Simple is not easy, easy is not simple. Let's first get that out of the way. People are often equating easiness with simplicity, but they are very different words.

Rich Hickey goes more into detail about this in his presentation. If you haven't already, check it out (I don't agree with everything he said, but it's a good presentation, definitely worth watching).

Most often, achieving simplicity is the hardest thing to do in software development and usually, it requires an enormous experience.

Simplicity is an extremely important, probably the most important, aspect of software development. As Edsger Dijkstra put it, "Simplicity is prerequisite for reliability".

If your design is not simple, the whole thing will eventually become fragile, unreliable, and start to fall apart.

Unfortunately, complexity sells much better, and together with cargo-cult programming and resume driven development, this is one of the roots of the modern software development mess.

Comments and suggestions

You can use this form to submit a suggestion or a comment.

If you find this site useful, please consider supporting it. Supporters also get access to some extras.