As a programmer, you might get home and continue tinkering on your home projects – guess what, I bet it very much looks like what you do at work. For me at least, I do the same stuff at home as I do at work; I even run my own bug tracker and wiki at home on my own server, manage releases of projects, write documentation and take care of user feedback.
Recently, it dawned upon me that the work bit in what you do at work is only about one thing: Predictability. If you think about it, what’s the main difference between a bug report you send me at work compared to one for my private projects? It’s the fact that at work, I know I will have time to look at it and I can give you an estimate when it’ll be done – and that’s about it. If I get asked when my Python Clang bindings will be updated to the latest Clang shipping in Ubuntu, the answer is “as soon as possible” but you shouldn’t rely on this at all. I try my best to spend a fixed amount of time on my personal projects each week, but it’s really hard to commit hours to it – and that’s the main difference between work and “hobby projects” for me.
Oh and before someone comes with money argument – there’s plenty of private projects that make money, so I’m not taking this as the main difference. Money makes you a professional, but that’s all. I could very well have some ads on this page (and maybe I’ll put some down, eventually) and this blog would make money; would it become work that moment? No, unless I start devoting fixed amounts of time to it, with a predictable schedule and so on.
So next time you think about work, think about “how predictable is it?”. Because that’s what you should be, during the hours you sit around at the office. Doesn’t mean you can’t have creative solutions, but it means people you interact with you can work off the assumption that you’re going to spend a particular amount of cycles on your backlog every day and making forward progress. You can’t rely on me doing things at home in a predictable way, and that’s fine – because, you know, it’s fun, not work :)