Simplicity as a prerequisite for reliability
đ Wiki page | đ Last updated: Oct 1, 2022Simple 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.
Ask me anything / Suggestions
If you find this site useful in any way, please consider supporting it.