Friday, November 8, 2013

Programmer's Diary: Just Good Enough


This is a repost from my old blog. Original post date June 8, 2013.

Some people are sloppy and they are doing too little. Others are perfectionists and they are doing too much. I think the best is to be somewhere in-between, to be just good enough and to create what is just enough. At least this is what I am trying to do each day.

But, doesn't "just good enough" means you are doing only the minimum necessary? Not at all. As any coach would say "it depends".

In most cases it takes the same energy to build something 80% perfect as it takes to build the remaining 20%. Closer you get to perfection harder it becomes to achieve advancement. I did no studies, it's just how I feel about what I do. Now, the question comes: "Is 80% good enough?" sometimes it is, sometimes it is not. If 80% satisfies 95% of the users of the product you are building, you did it. You may want to stop there and start a new product or a new feature. Let time and user feedbac guide you on the remaining 20%.

Other times 80% is not enough. If you build a car and you are unable to provide wheels, you are doomed. Nobody will buy your car. In that case you need some extra percents to achieve a minimum viable product.

The hardest thing is to find the 20% that is both difficult to create and also has little or no interest for the user. I have no recipe to solve the problem but frequent retrospectives on my own activity, feedback from others and some objective analyses can do miracles.

I am always trying to figure out where this good enough margin would be. Based on user feedback, or feedback from my colleagues, boss, wife, friends, etc I try to set for myself a little higher than expected targets both in my job and in my daily life. I always try to provide a little more and keep doing it in a consistent manner.

While this is mostly a good strategy I found that with higher quality comes higher expectations which in turn leads to even higher targets for my "good enough". And that's perfectly natural. What I find the hardest though is realizing when you are doing too much and have to take a step backward. Doing more and more each day will at some point hit your physical limits. When that happens you have to take a step back, take things easier for a while and adjust both your and your users expectations.

Only then, you can get back on track.