I found it so much easier for me to be productive when I’m at office, forced to work from 9-5 every Monday to Friday than to working at home on a side project where I don’t really have a fixed working hour.
Why is it so hard?
Few differences that I observe to be different between office and home and how I fix them:
You are mostly working alone at home.
Most of the side projects I’ve done is a lone project. Somebody (or me) started it and a developer is needed and I volunteer and boom, you are all alone. It could be a good thing for some people, but I find it very demotivating.
Well, most projects failed badly and I blame the loneliness that I felt during the project. I felt that I needed approval from another peer. I needed somebody else to say that, “Hey, it’s awesome”. Or, “hey, you can do this better by doing this”. You have peers probably scrutinizing your work all the time at office. But when you don’t get the scrutiny, you don’t feel confident.
But hey, again, you are the master of everything now. It’s your own project and you know best about everything. I need to constantly remind myself that “I’m a good programmer” and “it’s OK to make mistakes”. It’s easier to say than done, of course. But, it’s really normal to fail. Failure is how we learn to be better.
Another thing that might help is the online community. Go to forums, stackoverflow, or github. Share your works, and get feedback or get some peers to help you do the things that you are working on. It’s kind of popular right now, isn’t it?
You don’t have a fixed time at home.
When you are at home, you start working when you feel like working. But there is always a problem to start working. I found that the problem with me is that I am lazy. And the reason of why I’m lazy is because the amount of time that I need to spend working is infinity. Unlike at office, you have a finite working hour everyday. You know that you just need to work until 5 o’clock and after that you are free. And that kind of make you happy a little bit.
Do the same thing at home. Set the amount of time you are willing to spend on your side project. For me, the easiest way to do so is by setting a timer. In fact, I have a timer running right now as I’m writing this. Set it to one hour each, don’t make it too long. Just enough for you to finish a small task.
So many distractions at home.
You got so much freedom at home that you probably won’t start doing anything. That’s certainly not true. I’m supposed to be working on my side project right now, but instead, I’m writing this article. Let it be. It’s something productive anyway. Don’t feel bad about yourself. Do things that you enjoy doing. If the project never got finished, at least you’ve got some fun time doing something else. Don’t to be too harsh on your life. There is time for playing, and there is time for working. When the time for working comes, you will find yourself working.
You don’t directly get paid when working on a side project.
Well, this is probably the hardest part. Money, either directly or indirectly, is probably the greatest motivation of all. It’s really hard to do something unless you are certain that it will give you something back in return. And that something is normally money. But, for personal project, you are normally getting the money at the very later stage of the project. Probably after you’ve spend thousands of hours and bloods (and money).
That’s why you need to swift your motivation a little bit. Start by thinking that money is not what you are aiming for. Let the project be a “just for fun” project without shutting its prospect to shine and become a gold digger. In other words, only do project that you enjoy doing unless you get paid upfront.