There are two big hurdles to get through when starting on a bug before
I'm in a position where I can fix it. I think the bulk of the time spent
on most bugs is in getting through these two hurdles. If we could
somehow reduce the amount of time and energy I spend on getting through
the two hurdles, we can increase the speed that I can fix bugs.
Copyright
2008Flickruserfoxtongue
The first hurdle: what is the problem?
I think most people confuse the question "what is the problem" with
"what's causing the problem". These are two distinct questions. The
first one can only be answered by whoever reported the problem and this
hurdle is a communication hurdle. I spend a lot of time trying to coach
people into explaining the problem they have in a way that's coherent
and complete.
It's not uncommon to get bug reports along the lines of "something's
wrong and Miro doesn't work". I'm psyched someone has taken the time to
report the issue, but there isn't enough detail here for me to do
anything. In order for me to do something with this bug, I spend time
walking the reporter through giving me enough details such that I have a
good idea as to what the problem is. Because this requires communicating
back and forth, this can take anywhere from a few hours to a few weeks
to transpire.
Because it takes so long and requires me to ask 20 questions, I'm pretty
sure most bug reporters find this phase very frustrating. Some question
and answer volleys are really frustrating for me, too. I want to help--I
just don't know what the problem is.
Assuming we get past that hurdle, then the second hurdle comes into
play....
The second hurdle: what is the cause of the problem?
This hurdle is sometimes difficult because I can't reproduce the
problem. I may not have the right context (e.g. "Problem XYZ happens to
all people in Ecuador") or the right equipment (e.g. "Problem XYZ
happens to people using Windows XP SP2 with video card Foo"). I'll read
through code and work with the reporter to try to figure out the cause.
Sometimes it works and sometimes it doesn't. When it doesn't it's really
frustrating.
Most bugs aren't like that, though. I'm able to either reproduce the
context and equipment or I'm able to use a reasonable facsimile. Then
figuring out the cause is entirely on my shoulders and I can work
through it like I do most things: code spelunking, research, Google
searches, talking with co-workers, talking with upstream developers,
....
How can you help?
The following helps a lot:
use an email address that you respond to
be as specific as you can in your bug report description
attach your Miro log file
be patient with me when I ask my 20 questions to figure out what the
problem is
be prompt with responses--the longer it takes to turn around a
question and answer, the longer it takes to get the bug fixed
thank people who help get your bug fixed: other people who comment on
the bug providing additional details, people who worked on the bug,
people who tested the bug fix--it takes a community to build an
application
Guess what....
This isn't specific to me or Miro! This is true of all FLOSS
applications that you use: we're all working hard to build the best
applications ever. Doing the above helps everyone.