Sounds easy, right? Find a bug, fix a bug.
Well, if it was that simple, we won't have any bugs left. But when we hit one, the bug queen sends two more instead. Bugs keep coming at us, and we're getting squashed.
We need to turn the tide.
In this session, we'll take a holistic look at fixing bugs. We'll start with where bugs come from, and where they are likely to appear (and invite their friends). That affects our planning efforts, and architectural and design decisions.
Then it's off to the hunt. We'll talk about reproducing the bug, and defining what we want to actually fix.
We'll then discuss prevention methods of writing characterization tests, so we don't break working code. We'll then, discuss how to pick the right test for reproducing the problem, using the Saff Squeeze technique. Once we have a failing test, we'll do the right thing (TDD), and finally fix the damn bug. Then, some refactoring, preparing for the future, and possibly writing a bit more tests so we can sleep better at night.
Unfortunately bugs aren't going anywhere soon (I'll tell you why), but we have a couple of tricks up our sleeve to make the swarms smaller.