5 Hours A Week

Priorities do change, but old habits die hard. The luxury of having more than 10 or 15 hours a week for my personal software projects is now history. To keep up means to adapt. In last 6 months I’ve embarked on a personal quest to protect the last development activities and to be able to stay up-to-date with the latest technologies. This is a practical review of what I’ve found out and what works for me (so far).

Plan ahead the software project you’re working on. With the right milestones it’s easy to track the progress and avoid unnecessary distractions. There are hundreds of ideas you can always implement later. But somebody has to use the software first. I started to make a list and every time a feature comes to my mind as something useful I do increase it’s planning priority. Review it once a week, during some dull activity (like daily commute to work), to asses if the features have real benefit for the productivity or project effectiveness - reprioritize accordingly. In most cases 99% of features end up on ‘one day’ list.

Pick the right tools, because it’s nothing more annoying than to wait 10 minutes for Maven to download all the packages, and 3 minutes for your container to start/refresh application. Actually, in last year or so, I’ve completely abandoned Java as a platform and after some surprising turnaround started using Ruby. While working on a automated processing backend for Le Bebe (czech only; website is run by somebody else) I’ve finally understood the real power of Rails. Now I’m starting to be Ruby addict.

Don’t do something you can buy somewhere else for a good price. Going back to the Le Bebe, I’ve only written the engine to automate the sales handling from a different sales channels. E-Commerce solution is nowadays so cheap, it’s better to pay $30 per month or so and get it as a service. Even when using Rails, I can’t really say I would be sane to value hour of my life for about $1.50 - given the service fee $30 per month / (4 weeks * 5 hours I have a week).

Document, Backup, Version everything. Yes, Planning for 5 hours a week software development activities can be challenging and in some cases I don’t get back to the project for as long as 2 - 3 weeks. With all what’s going on with my day job, I’m effectively starting to loose the track of the details after couple of days. Only now I’ve learned to document all my commits (Mercurial and BitBucket) properly, and document every single decision (Google Documents).