Simplicity as a prerequisite for reliability

onethingwell

Nick | OneThingWell.dev

Posted on July 3, 2021

Simplicity as a prerequisite for reliability

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.

  • Simple (vs complex) - from "sim plex", literally: one-fold (i.e. not braided)

  • Easy (vs hard) - from "lying at, lie near"; familiar, near to our understanding

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.




Note: This is a snapshot of the wiki page from OneThingWell.dev Wiki, you can find the latest, fully formatted version here: onethingwell.dev/simplicity-as-a-prerequisite-for-reliability.

💖 💪 🙅 🚩
onethingwell
Nick | OneThingWell.dev

Posted on July 3, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related