Thursday, August 11, 2005

Please KISS (Keep it Simple, Stupid)

KISS (Keep it Simple, Stupid), I’m not a technology guru, poet or philosopher but I value this principle above all others.

I am very suspicious of people who waffle and give over elaborate descriptions that "I simply wouldn’t understand". Rather than question my own intelligence, I put it down to their inability to give simple answers to straight questions. I feel people often babble because they are trying to divert my attention from their ignorance of the subject matter! It is amazing how many experts there are these days and how few people in technical circles are brave enough to say "I don’t know". Socrates said something like "A wise man knows what he doesn't know" and this has never been more true.

Simplicity has been defined as "the absence of unnecessary elements", I don’t mind optional extras but they should be just that optional. My favourite software all has one thing in common, it does one thing and it does it well. I despair when I download some new package and see how much new complexity there is to cope with, IDEs seem to be particularly culpable in this respect and open source offerings are by no means immune from this...

When I can’t use a piece of software straight off, it isn’t because I am stupid or need training (I suspect it was designed this way deliberately?). This is not to say I am not willing to spend time learning new things; XSL, Struts, Hibernate, Maven and Spring for example all require a little time invested in tutorials before you can begin to feel the benefits. You only have to look to nature, each cell and leaf is a simple optimal offering, not without hidden layers of sophistication, repeated hundreds of times over to build something greater than the some of its parts.