Lately I’ve felt like Sisyphus. It’s a natural part of the process of software engineering, but it doesn’t change the feeling.
In every software project, after all the new code’s been written, focus shifts to resolving and removing the bug backlog. Of course fixing bugs is an ongoing part of the process, but you’ve always got the temptation of new work to keep you going. But on a given project, when you’re done with the new work, you’ve got to fix the bugs before you can move on to the next project. During this period, you live and breathe by your outstanding bug count, looking for the time when you hit the magical ZBB (Zero Bug Bounce). This is, without a doubt my absolute favorite part of a project – I absolutely LOVE this phase (I think it’s a hunter-gatherer thing). It is unbelievably satisfying to find the 18 month old bug that’s been wreaking havoc throughout the system (that happened last week).
Having said that, while you’re trying to get to ZBB, the testers in your organization are constantly finding new bugs. The good news is that you’re not writing new code, so you’re hopefully not introducing new bugs (it happens, but bug fixes tend to have fewer bugs than the original code). But there’s a period of time when the incoming bug rate is higher than your bug fix rate. You work your bottom off trying to reduce your bug backlog. There are really three ways you can reduce your backlog. First off, you look at bugs and eliminate the duplicates (I found 4 dups in my bug backlog on Friday, for example). Second, you can investigate the bug and determine that the bug is actually in a diferent component and assign it to the new component. And thirdly you can fix the code.
All the while, while you’re trying to reduce your backlog, the testers are still finding new bugs. In addition, other developers in the organization are busy investigating their bugs, and as a result, they’re reassigning their bugs to you.
After a while, it all settles down – bugs get triaged appropriately, duplicates get weeded out of the database, the testers start running out of bugs to find (because you’ve fixed them), and eventually you start heading on the path towards shipping your product.
But right now, it’s Sisyphus time – my incoming rate is as high as or higher than the fix rate. It doesn’t seem to matter how many bugs I resolve per day, my outstanding bug count seems to go up. The other day, I resolved ten bugs during the course of the day, and at the end of the day I had the same outstanding bug count as I did when I came in.
I’m working as hard as I can, but against the outstanding bugs metric, I’m not quite keeping up. This can be an incredibly poisonous situation to be in, because you can’t ever relent on the pace. If you slack off at all, then your all important bug total will explode and you’ve got still more work to do.
The good news is that it’s temporary. As I said, it settles down in a while, and the incoming rate will start drop below the fix rate.
Right now, on the other hand, I feel like that guy sitting there rolling the ball up the hill, never to see it hit the top. I know I’ll get it up there, and I’ll be able to stand at the top knowing that I’ve really achieved something.
So I go into the office every single weekday to push that dad-blamed rock up the hill again. Who knows, maybe I’ll make it over the top this time!
Edit: Changed some text to remove some negativity.