I do code to earn my bread & butter. I have observed that I keep on refining/refactoring the code until everything becomes so customizable that it gets too complicated to understand at first sight. I have seen people who just do the work. They do great. They almost never drive themselves crazy for just a freaking line of code which doesn't seem right to them.
The point is to understand the 80-20 principle (Pereto's principle). 80% of work is done in 20% of time but the rest 20% takes the 80% of time to complete. This principle is amazingly true. Notice the time spent on each activity, even the trivial ones. We tend to spend a lot of time on the 'finishing touch'. And if you are not doing so then you are already on your way of learning the art of time management. The art is to cut the rest 20% of work at the point where you can just say you have completed your task. (Say at 90%... you saved 40% of total time just at cost of 10% of work.)... Well it’s easier said than done... :)
In fact, I fall in the category of those pigheaded perfectionists who consume whole 80% of time, still reach to 95% then again waste 20-25% of time & even after that believe there is something left to be done. And this last portion of work which I do really looks like a Monalisa hung on bathroom’s wall. It was really not needed. It doesn’t actually blend with the quality of rest of the things in place.
I do really waste a lot of time. I just can’t understand that why I complicate things so much. How do I convince myself that 90% is enough and is more than what is usually expected or done? Will write something more on the same topic, some other perfect day.