The opening keynote at RubyConf AU given by Collis Ta’eed was about side projects, their benefits and how they can prepare us for the startup life. I don’t think that the startup part is the main goal, but having at least one project on the side is awesome.
If you code, you become a better programmer — it’s simple. Having side a project and working on it is another way of sharpening your saw. However, keep in mind that there are two types of side projects. One where you want to learn and the other where you want to ship. If you want to ship, don’t pick up a new shiny framework, but stick to the one you are strong at. Both types are perfectly fine, but have a different results. But even if you want to ship, there is a high chance that you improve your coding skills.
Apart from developer, you become a manager and a product owner and it’s an great position to be in. You will see the life from the other side of barricade and start thinking a bit differently. How much time does it take to finish this feature? Do I need to sort out some sweet sweet design? You might even have a couple friends working on your side projects with you and suddenly some team leading needs to be done. It’s the easiest way how you can try these positions and learn new skills. Priceless.
Finally, the most important thing for me is the satisfaction that I get from creating new things. The best part of programming is when I build magic castles out of thin air and if they are useful, it’s even better.
You can easily fall into the trap of gigantic scopes, hard features and too big projects. Try to avoid it as it leads to procrastination and abandoning the project. Work on small scoped features, and try to release something every session. If you release small chunks of work, you’ll be motivated to carry on.
If you are not yet in the habit of working on side projects, start with something small. Seriously. Set yourself a time budget. 8 hours is a good start and believe me — you can do amazing things in just 8 hours. You’ll be forced to focus on the core of the project and not the boring parts of the development.
Lastly make a habit out of it and stick to it. Set yourself a routine and follow it. The routine doesn’t have to be time consuming or anything like that. Find something that you are able to follow and do it. In couple weeks, you’ll see fruits of your labor and you might feel weird if you skip a session.
Every weekday before going to work I tinker for an hour on one of my side projects. Monday to Friday from 6:30 to 7:30 and it works perfectly for me. Even if it’s just an hour I usually get at least one meaningful commit or a small feature released.
Perseverance is the most important ingredient for your side project. Nothing happens over night and you need to be persistent.
Working on a side project is super beneficial for various range of skills. It’s an extreme fun that is gives you a great amount of satisfaction. And you never know, maybe one day your side project becomes much bigger than you expected.