- Ramkarthik Krishnamurthy
Working on side projects is fun. But side projects don't have deadlines. And when there are no deadlines, it is easy to procrastinate.
There is a very obvious kind of procrastination, like watching YouTube for 4 hours continuously or reading the news, or scrolling through Twitter.
Then there is the not-so-obvious procrastination. The kind that makes you feel you are still making progress but you are not. And these are the kind of yak shaving tasks that you have to acknowledge first so that you can manage them.
I'm going to keep this post as generic as possible so that it applies to any kind of side project you do and is not specific to coding.
1. New ideas
There are days you will not get any idea that is interesting enough to push you to start working on it. And then when you finally get an idea and start working on it, you get half a dozen more that are very interesting. When it rains, it pours.
You suddenly pause your work on the current side project and start thinking about this new idea, how to implement it, and how it can become a success, to the point it is almost tempting to stop working on your current project and start this one instead.
If you go through this, stop. When I think about these instances from the past and evaluate the different ideas I had retrospectively, I find that most of them aren't really that interesting or viable.
It's just a way to procrastinate.
If you get another idea, note it down and continue working on your current project. If you keep thinking about this same idea over and over for days, then it is something worthwhile and you should pursue it.
2. The perfect way
When you start a new project, you start with a very minimum list of things you need to do for the first version. Then, as you work on it, you do two things: 1. add more to the list of what makes a successful first version, and 2. you explore different ways to do the project to find the best possible way.
In the first case, it is obvious. So to stop going down that path, you need to be critical about the new items you add and really act as the gatekeeper. You can add them to version two.
In the second case, it is not so obvious. Sometimes it is good to explore different ways. You are usually not doing a side project only to see the output but to also enjoy the journey and learn new things. So in this case, there are times you want to explore better ways to do something. But at a certain point, you have to stop and make real progress. And this is the hardest part.
At the end of the day, you work on a side project to have fun. So go ahead and ignore all these if you have to. As long as you are having fun.