I used to give a talk at trade shows and seminars called Bugoholics Anonymous. I'd start with "Hi, my name is Martin, and I'm a bugoholic." The audience would invariably respond with "Hi, Martin." I'd apologize for the lack of a coffeepot (unless there actually was one in the room), and go on to talk about how I had no power over bugs, but bugs had power over me. Then, of course, I'd present Then, of course, I’d present a twelve-step program for learning to deal with bugs. The talk always went over well, and often filled the venue. It wasn’t just for the entertainment value, though.What was the serious content? First, that errors in software are inevitable: even if the software is perfect when it goes out the door, the environment will change, and break assumptions that you hadn’t even known were changeable and hadn’t realized that you’d built into the software. At the time, a commonly broken assumption was “memory pointers can’t change.” In 16-bit Windows, memory pointers could change if they weren’t locked, and the best practice was to unlock memory you weren’t actively using to allow Windows memory management to work. The second piece of serious content in that talk was that you should welcome bug reports, not fear them. A good tester is a pearl beyond price. A developer who views each bug report as an opportunity to improve what is inherently imperfect code is going to be much better at debugging than one who views each bug report as a personal insult that has to be caused by user error, or as the saying goes, “PIBKAC.”Do you believe that your code is perfect? How do you react emotionally to a bug report? Software Development