I suspect the term “Keep it simple, stupid” was phrased as such in order to form the acronym KISS. I fiercely believe in keeping stuff simple. I could quote from famous people, such as Albert Einstein and Leonardo Da Vinci, who both realized the advantages of keeping stuff simple, but instead I’d like to quote from a dude called John Gaule, as his quote seems more relevant in relation to software development.
A complex system that works is invariably found
to have evolved from a simple system that works.
I have been told that a characteristic of my blog posts is that I over-simplify complex things. I took that as a great compliment. However, most of what I write are things that people already know, but maybe they’re not really aware of it. This post is an exception to that. I know many software developers that do not agree to keeping things simple. They try to think of just the right pattern, the most optimized way of doing something, which is all very good and fine, but if no one gets any benefit from it, why do they do it?
I can answer that, but first let me explore the question by quoting again, this time from the very fascinating George Bernard Shaw.
Some men see things as they are and ask why.
Others dream things that never were and ask why not.
While I think this is generally an appealing thought, it is sometimes appalling, depending on the context. Well, maybe not appalling, but thought it would sound kind of neat, next to appealing. Anyway … specifically in software development it is important to think “why” before implementing some elaborate pattern or using some theoretically very flexible component, with features that we will never actually use. If someone argues “why not”, I think it’s very appropriate to revert the question to “why”. If it’s not needed, don’t do it. You ain’t gonna need it!
And now the answer
If some fancy pattern is not needed, does not benefit anyone, takes time to implement and – worse, takes time later to understand and fix if something goes wrong, why is it that a certain type of software developers still insist on doing it?
The answer is simple: They like it!






No comments yet.