joeyh

puzzling puzzle

joeyh at

Wish I could understand why, when someone is reporting a really strange problem, I can get 100% puzzled by it and stuck. But then, if I manage to reproduce the same problem, I can always quickly figure out the root cause and fix it.

It's often a night and day difference, I can go round and round with a user for hours trying to understand what they did, but once I reproduce the problem, I can have it fixed in minutes.

It's something to do with bandwidth, and limited information, and communication difficulties, and confirmation bias, and.. I don't know what all.

Being able to diagnose and fix reproducible problems is a good skill. Being able to coax reproducible test cases out of users is a good skill. But I feel there's something here I could be better at.

(Users could also be a lot better at reporting bugs and reliably communicating of course..)

Olivier Berger likes this.

Show all 6 replies

Sometimes I barely go around the debugging loop at all, once I have the problem reproduced. I find myself immediately forming a hypothesis, and testing it, and I was right on my first try, and now I understand the problem.

Maybe part of it is that, if I've managed to reproduce the problem, I've collapsed the solution space significantly, just by observing it in a controlled, known situation.

It might have something also to do with perception as well. Words on a screen are words on a screen, but if I had to interact with the system to get the error message to come up, I might perceive it differently than if the error message was shown to me by someone else.

joeyh at 2015-03-27T21:55:13Z

it's all about reproducability. "it's broken", "it doesn't work" emails are so infuriating for that reason: "i'd love to help you, but i just *can't*!" it's not as if we're going to go around the ship pulling random ropes and punching holes through the hull to fix bugs by brute force...

i mean that can be part of a test suite, but that's a different thing.

also: TDD. i wish i discovered unit tests when i started programming (well, to be fair, they barely existed at all). i feel that a lot of the bugs i find are just some stupid mistakes i made that could have been caught with proper tests. it also helps clever devs (who, yes, even then, can't always file proper bug reports) help you reproduce issues properly.

but yeah, sitting next to the person is awesome. the folks at Freeswitch often just call people on the phone or invite them in a phone conference as  compromise. :)

The Anarcat at 2015-03-28T14:01:56Z

+1 for TDD reducing the frequency and scope of these kinds of things for me, at least with the non-functional languages I've worked with (as @joeyh has heard me opine previously). Maybe the thing worth getting better at is asking folks who can't report a bug very precisely to make an appointment to show you. You'd have to go into town, and they'd have to prepare to reproduce the bug.

Amitai Schleier at 2015-03-28T16:02:59Z

(Show you via acreen-sharing or -casting of some sort, presumably. Could have made that clearer.)

Amitai Schleier at 2015-03-29T00:14:24Z