Peter Marklund

Peter Marklund's Home

2007-05-01

Bug Tracking can be Bug Prevention

I've been deploying a couple of Rails applications for a client lately and things have been running surprisingly smoothly and there have hardly been any issues at all. In one of the more complex applications though a few bugs slipped through my testing net and were caught by the excellent Exception Notifier plugin by Jamis Buck. Now, the question is, how do we typically deal with bugs as programmers? If the bug is in production we rush to fix it, push the fix out, and hope not too many people noticed it, and then try to forget about the whole thing. What we should be doing though is ask ourselves why the bug occured in the first place, how we can categorize the bug, and what kind of process and/or tests can we put in place to prevent similar kind of bugs from happening in the future. Bug tracking is a gold mine for figuring out how we can raise the quality of our software and reduce the bug rate in the future. This may be common sense, but how many of us actually use this opportunity?

1 comment(s)

Comments

Senthil Nayagam said 2007-07-25 04:28:

My Team is building a Huge Application. Exception Notifier plugin is a great plugin. as a Manager I ensure every crash is reported, analyzed and fixed. I have few thousand mails which I have collected from exception notifier. I have sorted the bugs by controller model helper views gems libraries db (bad sql/connection/migration/ file(file not found/ file permissioning/file upload) nil class exception not properly handled browser specific errors each bug is potentially "how not to" program exercise :) we also do logging within application to know response time by for different actions. we have a bug/request tracking system where we have over 300 tickets handled in last 3 months. we have reduced the crashes and bugs by 95%(from Jan 2007) with nearly 2000 commits in a year, we have learnt a lot about Rails and programming practices. Senthil
--------------------------------------------------------------------------------