Friday, August 8, 2008

Goin' on a Bug Hunt (but I'm not afraid)..

A great technique to schedule regularly in any home-studio is a bug hunt. Take stock of every piece of hardware/software that you have, and write down a few things about it. The list should include information like make/model, serial number (good for insurance purposes - in fact this list should then be stored away from your studio, preferably in another building or a safety deposit box), and any problems with it's functionality or how it's currently setup (is it production-ready, or is it tucked away in a drawer or case in the closet). Go through, classify each problem (bug) as: urgent, pretty important, somewhat important, just annoying, a potential issue, would be nice if... , or doesn't really matter.

It's good if the list is actually divided between hardware and software, as they involve very different bug fix methodologies. Some people are very good at fixing hardware bugs, but have no clues when it comes to a software problem - others are the exact opposite. The next step for the bug list would be determining the source of the bug; this can't always be done terribly easily, but often the harder to find sources are more educational to the bug hunter (you), revealing information about how a piece of your studio operates under the hood - always useful information.

Once the source of the problem is found, the next logical step is to evaluate how easy it would be to fix; will it cost thousands to repair that circuit in your house's wall, is it merely a loose cable that a quick solder would fix, is it a fundamental code structuring error, is it a software bug that's been fixed in newer versions, etc....? The cost of repairs should also weigh into your mind at this point as some broken equipment just isn't worth fixing, often because it's not something that would be used if it were fixed, or because a repair would cost more than buying a newer (possibly better) model. For those with hardware problems, and little knowledge of home repair, most music stores would be happy to trouble shoot it with you. For those with little software experience, many pro coders will offer free troubleshooting on the appropriate forums, mailing lists, and IRC chat rooms.

In most circumstances a large portion of the bugs you find will be readily fixable, but there will inevitably be a couple bugs that just can't be easily squashed. Sometimes the bugs are inherent to the product (a microphone with a bad response curve could be said to have a bug). I don't consider those to be a lost cause because though identifying the source of them, and realizing that it can't easily be fixed, you're educating yourself in regards to your studio's weaknesses. In future projects, you'll know where those bugs are and you'll be able to skillfully avoid them rather than running headlong into them at the last minute.

This process is also lends itself to a reorganization/cleaning of your studio. You may stumble across a piece of hardware you've forgotten you had, or realize that a particular piece of software that never booted properly before now is working great. Lastly, if you come across any bugs in open source software (or closed source for that matter), you should help the community by reporting them - even if you've already found a fix (report that too!) or have no idea if it's even possible to be fixed - the software developers will be grateful for the bug reports.

The only downside to this process is the time it takes (but I'd argue it actually saves you time in the long run).