On my daily reading of Hacker News>, I came across the article Importance of Side Projects which points out the benefits of working on a side project of your own. It was a very interesting reading to me as I’ve been working on side projects for over a year.
I spend most of my time developing software on IBM Mainframes for one of Canada’s top insurance companies. Being able to put COBOL aside and delve into Ruby or Ruby on Rails feels like a well deserved reward. Writing code in a language with premises and best practices far away from COBOL is enough to give me a break and keep my craftsmanship skills on edge.
One of my University teachers said that the most important thing we would learn in our academic years was how to build knowledge, how to analyze and synthesize what we know and come up with new ideas. It was a Critical Thinking class for Computer Science graduates and he pointed out that six months after we graduate most of our knowledge would be obsolete so the best he could do for us was teach us how to learn.
Side projects are a way of keeping up-to-date with new technologies, concepts and techniques we want to experiment with. You can try things you cannot usually try in your daily work—either because they are too risky or not mature enough—without worrying. You can always start again.
The last suggestion in the “Importance of Side Projects” post, Complete Your Side Project, reminded me of another post: The Stewart Method: How Not To Suck. It is a short and practical post which has only two tips to help you in shipping your side projects:
1.Write code for your project everyday</li> 2.Release a project every week</li>
Remember the three axes of software development: time, quality and scope. If you want to ship every week, scope is the only we can change. Now all you have to do is create a list of the most crucial features you’ll need to have a viable deliverable and start knocking them down starting from the hardest ones, little by little, coding every day.
Don’t wait until you have time. Make time.
Figure out what you want to have finished in a week, and start today. #projectaweek