One of the questions, I often get asked at job interviews is:
What is your hobby?
I would always answer, that I program as a hobby. I would follow up with a story I once watched on TV of a video game tester who would play video games full-time and then come home and play more video games. His reasoning was, the gaming he does at work was work and that the gaming he did at home was for his leisure.
I always felt a little bad with my reponse because perhaps it came off as a little pretentious but it was the truth. Like the gamer, I enjoy programming more outside of my full-time work. Through it I’m able to explore ideas and technology that isn’t used within my day job.
Tonight I started reading Getting Real, a book by Jason Fried and DHH of Basecamp. In it they shared an excerpt by Dave Thomas from his book, The Pragmatic Programmer. I thought the excerpt perfectly describes why I program for fun outside of my day job.
The Open Source world embraced this mantra a long time ago – they call it “scratching your own itch.” For the open source developers, it means they get the tools they want, delivered the way they want them. But the benefit goes much deeper.
As the designer or developer of a new application, you’re faced with hundreds of micro-decisions each and every day: blue or green? One table or two? Static or dynamic? Abort or recover? How do we make these decisions? If it’s something we recognize as being important, we might ask. The rest, we guess. And all that guessing builds up a kind of debt in our applications – an interconnected web of assumptions.
As a developer, I hate this. The knowledge of all these small-scale timebombs in the applications I write adds to my stress. Open Source developers, scratching their own itches, don’t suffer this. Because they are their own users, they know the correct answers to 90% of the decisions they have to make. I think this is one of the reasons folks come home after a hard day of coding and then work on open source: It’s relaxing.
Much like the open source developer scratching their own itches, programming for fun outside of my day work allows me make something the way I think it should be. No need to have meetings, go through long discussions or wait for feedback from those managing the project.
The app or project I’m working on gets built the way I see fit and I can move at my own pace with only myself being a speedbump.
This joy and freedom that programming for myself yields is why I’m building TinyWins. It is first and foremost, scratching my own itch on how I think a to-do app should work and it’s a joy to learn and make decisions on how the app should be made.