I don’t know about you, but I always found that doing something for yourself is sweeter than doing it for a job. It’s probably like the taste of a Coke in a can and the taste in a glass bottle, you never know if it’s real but you know which one you prefer. However, there are real reasons behind this feeling. In your company you must do stuff. You have to execute tasks. Even if you are not in the mood, you will need to talk to other people and you probably will be judged on your work. Furthermore, you will have to do all this the way your company want, with deadlines, probably some pressure, etc. It doesn’t matter if you are in a good team or not, you will regularly need to fight for what you believe in.
Developers are often peculiar persons. They’re emotional, proud, they have strong opinions about everything, they are often attentive and most of the time they are passionate. I am myself quite dependent on the advice of other developers and on the appreciation of my work by someone else. If, in general, that is the kind of character that generates a good dynamic and innovation in teams, let’s be honest, sometimes you just want to get this damn task done, using YOUR favourite technology and at YOUR pace. Screw pragmatism. It’s not selfish, it’s just like going to the gym to blow off some steam. It allows you to handle the next day with a smile.
Personally speaking, that’s the main reason why I love to work on side projects. When I am curious about a new piece on software or when I just don’t want to take too much precautions, I can easily express myself without pressure or being ashamed of anything.
There are almost no downsides to side projects:
- It allows myself to unwind
- I learn something
- If I don’t, that allows me to practice and stay in good shape
- Finishing things makes me feel good
- If I make it open source, with luck, I get advice, validation of my work
- Why not work with someone else?
- And, hey, that could not harm the resume, right?
I don’t say you should replace your family and social life to bring your work at home. But if you are in this job because you like to solve problems, then side projects are probably great for you.
It’s a good feeling, from time to time, to start building something and to never finish it. Or to finish a project started years ago. There is no shame in learning only the first functions of a new language and stop being interested in it. If I want to properly work with open source libraries and take the time to open source my work, that’s brilliant! If I want to choose the not-future-proof tech on my next small project it doesn’t matter. In the meantime, I will have written cleaner code, probably learned a new database system or used a new service (thanks to serendipity) and tried a new concept. And once in a while, I will build useful stuff or meet new people.
In fact, you can apply this behaviour to any project you have. As a known brand phrases it: Just Do It.
I don’t want to give any lessons to anyone. I just wanted to say that the side effect of side projects is that: it makes me happy.