Daniel Rosendorf bio photo

Daniel Rosendorf

Software developer/engineer by day, husband and father of three by night. Twitter Google+ XING Github Stackoverflow

The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore simplicity should be a key goal in design and unnecessary complexity should be avoided

Wikipedia KISS principle

Today I realized that I wasted almost two days worth of work because I tried to solve problems I did not (yet) have. KISS as defined by the quote above is about keeping things simple, but in my understanding it is also about not doing things that you really do not need.

My problem

I tend to see problems where no problems are. To be more specific, I start to implement a solution to a problem at hand and almost immediately I start to think about future problems that my solution could solve as well. But in the worst case this distracts me that much from the actual problem that I start to lose focus. In this concrete example I’m talking about I worked 12 hours and the final solution did not solve my problem because I missed some details of my initial problem … 12 hours wasted!

The solution

Simple: Focus on the real problem. Ignore anything else that might come up. KISS. If there are future problems where the solution could come handy, I will see it, adapt the initial solution and maybe get something more generic out of the code, but first comes the real problem.

But the funny thing is …

… I’m not actually a fan of generic solutions. Most of the time I actively oppose solving problems that do not yet exist when one of my coworkers asks me for advice. Yet I still fall into this trap. Why is that? I don’t know (that topic is for another post), but mark my words: From this day on I shall focus on the problem at hand and only on the problem at hand ;-)