Get your FREE 30 page Developing SOLID Applications guide!

Why Tracking Bugs In Personal Projects Matters

Out Of Date Warning

Languages change. Perspectives are different. Ideas move on. This article was published on December 9, 2009 which is more than two years ago. It may be out of date. You should verify that technical information in this article is still current before relying upon it for your own purposes.

A lot of time and effort goes into designing processes for development projects when the projects are professional or work-related projects. We spend hours investing in version control, bug tracking, specification design, and process.

But what about our own personal projects, that we do either for money or for fun? Too often, it seems like these development practices are abandoned, especially with regards to the use of a bug tracker. I know I have personally been guilty of failing to use a bug tracker, even though I use things like Subversion and develop specifications. It’s easy to forget, but important to remember. Here are five reasons why our personal projects should utilize a bug tracker.

These are personal anecdotes from coming back into the “bug tracking fold” after being away for a while.

1. Our minds are imperfect repositories of information.
As we work through personal projects, there’s often a much more intimate relationship between ourselves and the product. This often leads to the feeling that bugs and necessary features no longer need to be logged in a bug tracker because we’ll remember them. The reality of the situation is that we cannot remember everything we need to remember. Details will be forgotten, unless we use some sort of a system to remember them later on.

2. Bad development practices can form.
When we opt not to use a bug tracker in our own personal projects, we get into the habit of writing code without one. This is a poor habit to get into, because it is one that will affect us when we go to our jobs. The truth is that habits are easy to form, and conflicting habits will always be resolved to the most lazy habit, because we’re human.

3. It makes it harder to force ourselves to use bug trackers for private paying clients.
Most developers I know have a few private clients that they work with who are not connected to their employer. It is crucial that we employ the same level of process and use the same development practices with our private clients as our employer’s clients, because these clients are still paying for our services and deserve our best work. The problem is that if we have let ourselves slip on the personal projects, we will find it increasingly hard to keep bugs filed for private clients. This will lead to a lower quality product, which is less than optimal.

4. Predicting time to completion becomes more difficult.
When you’re at work, it’s easy to plug on and complete a project – it’s what you’re paid to do. But at home, for personal projects, it’s much harder to plug along without some assurance that the project is nearing completion. Having a task tracker lets you see the things that have been done, making personal projects easier to manage and making it easier to see how long it will take to finish something (which is a reward in itself).

5. Seeing progress being made is that much more difficult.
Along with predicting when it will be finished, using a bug tracker also makes it possible to see how far along you are in a project. I know that when I create tickets for everything in a project, I can easily feel good that I closed six or seven of them; I feel like I’m making progress and I have statistics to show for it.

Learning design patterns doesn't have to suck.

Design patterns open a whole new world of possibilities. So why are you avoiding them? This brand new book will help you finally understand these wonderful programming techiques!

Learn design patterns TODAY »

Ben wrote at 12/9/2009 3:49 am:

Definitely a good idea – what bug tracker do you use?

Shaun Farrell (@farrelley) wrote at 12/9/2009 6:28 am:

Yes, it’s a great Idea! I do this with all my personal projects. Jira is good fo $10 but I have been using mantis with the mylyn connector for eclipse. the integration with svn and everything else is great!

I mainly use this as a reminder system. What features I need to develop and If I find something else I put it in the tracker. Keeps things going and this way I don’t forget features in the end.

Robert (@robertbasic) wrote at 12/9/2009 6:31 am:

Couldn’t agree more.

A bug tracker is a must have on every project, personal or not. I started a few personal projects, hacked away on them for 2-3 nights, made progress, couldn’t work on them for a couple of weeks and when I turned back to those projects, I didn’t know what was my first idea, what I wanted to achieve, what have I done already so one option was left – leave that project on the hard drive to collect the dust. I just couldn’t remember what was I doing. With a bug tracker (that has a wiki, milestones, tasks, bugs…) it’s so much easier.

Brandon Savage (@brandonsavage) wrote at 12/9/2009 8:07 am:

Ben, I didn’t want to make a recommendation per se, to avoid looking like I was shilling for a particular system. But since you asked, I use Jira; I bought it with their $10 special because I’ve used it before, and I love it.

Part of why I want to write some of these tools in PHP and release them as open source is there seems to be a disconnect between awesome software like Jira and free software, in terms of quality. I think things ought to be awesome AND free; Jira’s license only allows you 10 users, and their next step up is $1,200 more.

Stephen Cox wrote at 12/9/2009 8:33 am:

Most big tracking systems are way over kill for what I need for personal projects. I’d like something written in PHP, that’s lightweight and I can drop into any project.

Jamie (@JamieHolly) wrote at 12/9/2009 9:49 am:

I agree 110% that keeping up on personal projects through a project manager is a best practice. I use a custom one I wrote in Drupal to handle my personal stuff and clients. I’ve been slowly developing this for over a year now and it works great. It doesn’t have all the bells and whistles of JIRA or Trac, but for an independent developer it does everything I need, plus if I need more I can simple alter the code.

Hans wrote at 12/9/2009 10:57 am:

I agree, but would observe that you don’t actually /need/ a hosted solution. Specifically, using something like Mylyn for Eclipse accomplishes the basics of task management great (and does much more). Mylyn makes it easy to change to hosted options later too. But obviously any task manager would work … :)

JP (@jphpsf) wrote at 12/9/2009 12:00 pm:

If you are willing to install your own tracker on a machine you own, the usual suspects: trac, redmine, retrospectiva, …

You can also use github (public repositories are free, but you can use private also for a small fee each month), it gives you an issue tracker, wiki and git :)

Another one I wanted to check out is pivotal tracker, it looks pretty good. Actually, it’s not really a bug tracker but more a project management tool.

James (@tkstudios) wrote at 12/9/2009 10:23 pm:

Very true. Every now and then I lapse out of organized bug tracking and get so frustrated that I end of tracking down every single bug and listing them all in a frenzy… and then I look at the milestone’s progress and go “awwwww…”

You definitely lose track of progress if you don’t have a tracker as an indicator.

RE: comments, currently using Trac ’cause it comes with my git/svn host.

Bath wrote at 12/10/2009 2:17 pm:

I guess we’ll all agree with you.. As stephen related it, many tools are not scaled for a personal use.

Talking about FOSS, php, and lightweight, hosted-or-hackable : Could I mention indefero, a simplicity-oriented tool written in php. It likes both git, svn, hg.

A wonderful tool especially for a single dev, is fossil-scm. I do not have any experience with it but the concept is realy exciting. Personal and wiki, bugtracker, scm, in one binary, with a strong decentralized concept !

Alexandr wrote at 12/26/2009 5:58 pm:

TomBoy as software to keep notice, plans and bug reports – I sync it via ssh for all my computers. Sure I have different list for archived tasks for each project, build-in “link” functionality allow me easily make connections between notes.

and sure I use svn over ssh to track ALL my projects.

this cover my needs as developer. And hey, GPix and html2ps is opensource free software which is an good example how project leave under this simple environment supported by one developer.