Track Bugs for Everything, Not Just Software
If you’ve spent any significant time around software, you know what a bug is, but just in case you aren’t clear about it, it’s a bad piece of code that results in the software not working the way it should.
An important part of software development is having a way to consistent track bugs. Generally, there’s an identifier for easy reference, a short title, a more detailed description of the problem and how to reproduce it, the current status, and who is currently responsible for making sure the bug is headed towards a fix. All this goes in a database and becomes a kind of knowledge repository not only of the ongoing progress of improvement, but has interesting information about what customers do with the software.
Companies that actually test their software, track bugs, and spend time stabilizing the software before it’s put into production end up with a better product.
What about products and services that aren’t software? Why isn’t this process used for other things? Let’s imagine a bug in a non-software service:
ID: 234983
Title: Customer hold time exceeds five minutes on weekday afternoons.
Steps to Reproduce: Call company after 2pm but before 5pm any weekday. Select 1, then 3 for technical support. You’ll hear two rings, then a voice will pick up telling you about unusually high call volume and asking you to hold. The music will begin and in ten seconds, the voice will come back and give an estimated time for an answer. In over two dozen tests, this has never been less than five minutes and has been as much as thirty.
To me, hold time over five minutes is a bug in the customer service operation. Unfortunately, it’s unlikely there’s any way for the customer to file a bug, track progress, and get a resolution. Why aren’t these kinds of bugs handled the same way a software company handles bugs in their code?
You can apply the concept to your improving yourself. There’s no reason you couldn’t track bugs for things that have nothing to do with a product or service, or even with anyone else. Bug tracking is simply a method of identifying problems in a systematic way in pursuit of higher quality. Let’s consider another one:
ID: 2309
Title: I fail to practice guitar for the three days prior to my lessons.
Steps to Reproduce: Go to guitar lesson. Monitor practice time after the lesson. In days one and two, practice runs about thirty minutes each day. Days three and four average fifteen minutes. Days five, six, and seven (the day of the next lesson) will include no practice.
Identifying, describing, and tracking the problem force the problem into your face and help you understand it. From there, you are more likely to fix it. You can definitely resolve it. Many bug tracking systems for software include a variety of resolutions of which Fixed is only one. Other kinds of resolutions include Duplicate, Not reproducible, and a very important resolution option, Won’t Fix.
Another feature of many bug tracking systems is some form of priority level. At Microsoft, we tracked both severity and priority. Severity would be from 1 (Total application failure) to 4 (Cosmetic.) Priority ranged from 1 (Must fix before release) to 3 (Fix only if time permits.) The bug tracking system I use today with clients has seven priority levels with very descriptive descriptions like “Hurry up, people are waiting” and “Do when practical.”
Applying some level of priority (and maybe severity) lets you sort the bugs you track during a process called triage. Maybe the guitar practice bug doesn’t rise to the level of priority that you want to actually take the time to fix it compared to other things. You can decide to resolve it with Won’t Fix or you can just leave it on the list until you decide the priority is higher or higher priority items are all resolved.
Tracking bugs doesn’t have to be complicated or require an expensive bug tracking system. You could use index cards or a list on a piece of paper. Slightly higher tech would be a spreadsheet, such as with Excel or Google Apps, which allows for sorting quickly and easily. Like with most anything, find something that provides only what you need, but as much as you want.
Track bugs on everything and everything will be of higher quality. Not just your software.