Taking a walk today with the dogs, a guy named Phil reminded me of a story about bugs. Phil dropped his Starbucks cup on the trail, and left me with a choice. I could pick up Phil’s trash or walk on by. Most of us would choose to pick up the trash, to leave the trail better than when we arrived.
How does this relate to bugs? Developers appreciate and relate to this analogy when talking about legacy bugs. This analogy came in handy when we launched a system that automatically assigned the bugs to developers. Sometimes, the system would assign a bug to a developer who had nothing to do with creating that particular bug. The bug had been in the code for some time, and the original developer could not be identified.
Using the analogy helped the developers feel better about fixing these legacy bugs. They are leaving the code better than when they started working in that area.
The system we used to automatically assign bugs was a static analysis package. Our script did a lookup on change control records for the file that contains the bug, and automatically assigned the bug to the last developer who modified that file. Sometimes, the tool would find a legacy bug (one that had been there all along, and not caused by this developer). Using this trash analogy helped the developers invest the time to fix the bugs they didn’t create.