Bug Tracking: If You Aren't Using Doing It, Then Your Software Will Be Poor

I blogged around a month ago stating "Version Control: You're a Fool If You Don't Use It".

Whilst the comments to that posting were pretty much all in agreement, I got some emails/IMs that weren't as enthusiastic, and thought I was being quite bold and abrasive in my claim, well....

...I'm about to make another...

If you aren't using bug tracking software you will continuously, and consistently release poor software.

The simple fact is that you need a proper way to organise all the things currently wrong with your code. It also gives you a way to record enhancements you or your customers would like to see. NO, a list of emails doesn't cut it.

Companies I have worked for in the past didn't maintain any formalised record of bugs - again, NO a list of emails doesn't cut it. Looking back, we simply were nowhere near as productive as we could have been, and yes, as far as I'm concerned, we released crap software. Fact.

The last company I worked for, before founding Fuzzy Orange, I put in place both Subversion and Trac. I put them in place before I did anything else, much to the annoyance of management. Given time though, management discovered that by doing so we ended up with a much more stable, maintainable and performant product. Don't get me wrong, they still complained about new features not being developed fast enough - what's new - but the product had regained credibility whereas before there was countless server restarts per day because the software was. Crap.

By using Trac, I had given the development team a centralised and searchable system whereby, we could all see:

  • All the (reported) outstanding bugs
  • Progress of each bug
  • What milestones we were working to, and how many bugs/enhancements we still had to squash

For management, who had read-only access, they could see reports that told them:

  • What our milestones were
  • An estimation of when these milestones would be reached
  • A count of just how many bugs were in the system
  • How many bugs we had closed, and how many were closed in a given timescale

Again, a list of emails doesn't count. It doesn't give you the information you, or your fellow staffers need. You need a way to record bugs, prioritise them, assign them to developers, assign them to milestones, and you need a way to search them. So once again I will state, If you aren't using bug tracking software you will continuously, and consistently release poor software.

So, there is a question that needs to be asked. Why do software development teams operate without a bug tracker? And believe me, there are a lot who don't.

1) I'm a single developer, so I don't need one

This argument is given often, not just for bug tracking, but also when discussing version control. However, you're 100% wrong. Nope, no argument. You're plain wrong.

Even if you are the sole developer at a company, think of yourself as a development team that currently has a single person. This team may grow, and if you don't act now you'll just make life harder for yourself down the line. Additionally, using a bug tracker can allow you to track and prioritise your time and this will lead to you becoming more productive.

2) Don't have time to put one in place

Complete cop-out. You can have bug tracking software up and running in an hour.

3) All the bug trackers out there are way too complex

Then write your own. Create a single database table with the following fields.

  • Short Description
  • Date Created
  • Steps to Reproduce
  • What Should Happen
  • What Does Happen
  • Bug Owner
  • Who is it Assigned to
  • Is it fixed

Now just throw together a simple interface for this.

4) They cost too much

Absolute rubbish.

5) We don't have the expertise, environment, resources to put this in place

Then use a hosted solution such as CVS Dude to do it all for you.

There is no excuse for not having bug tracking software in place.


Version Control: You're a Fool if You Don't Use It

We've been having a right good old natter on the ScottishCFUG Google Group, in particular about why Version Control is essential to all software development.

One of the group members asked:

All that you mention sounds very cool but i want to see what benefits it can bring a sole developer.

A reply by Alan Williamson, in my opinion, was so important I wanted to repeat it here.

and there in is the trap that many lone consultants/developers face; stop thinking of yourself as a single entity, but as a member of a team that, at present has only one member.

Alan also followed this up by stating:

I really don't know how anyone can work without version control and still claim to develop software. Bold statement? yes, but i stick by it.

I agree 100%. Any software development company who is without Version Control is ... well, it is appauling. Not only are they putting their clients at risking by not taking their business and indeed livihood seriously, but they are also inflicting damage to themselves by not making themselves as proficient as they could be, but they are also damaging their own reputation... I look on any software development firm who doesn't use Version Control as one who shouldn't be in this business. Calling them amateur, well I think I'm being rather generous.

In the past, when I've been the client, one stipulation I've also insisted on being in any contract is that the company doing the work has a Version Control system in place. If they didn't, end of conversation.

Even as a sole developer you should be using Version Control.

So, just to finish up, here's a couple of reasons why you should be using Version Control. Feel free to add more by leaving a comment.

  • Provides a history of all changes
  • Recover accidental deletions
  • Helps co-ordinate new releases by deploying a build corresponding to a specific revision.
  • Supports development by X number of developers
  • Enables remote working if your repositories are public facing (and secure).
  • It's not just for code. You can store all your contracts, legal documents, staff policies in Version Control.


Scotch on the Rocks 2008