Entrian Solutions
 

“It works for me”, or, “How does it know a developer’s using it?!”

Sunday, November 30th, 2008 by

We all know that software never goes wrong for its developers.  “It works for me,” they always say.  Here’s a story of how that sometimes goes to extremes.

“Hi Richie, I’ve got a problem with the ActiveX plugin.”  It was Brett, one of our consultants, working on a solution for an important customer.  Inevitably, I couldn’t reproduce the bug.  “Come to my office and I’ll demonstrate,” said Brett.

The bug was that clicking a link didn’t work – nothing happened.  Sure enough, Brett clicked the link and nothing happened.  “Can I try?” I said, wondering what I’d been doing differently on my machine.  The link worked perfectly.  “What?!”  Brett tried – nothing.  I tried – it worked perfectly.

So we thought, it is working every other time?  Does it matter where the focus is when you click?  Does it matter whether you’re standing up when you click it?  (Stranger things have happened!)  Everything we could think of had no effect – it always worked for me; it never worked for Brett.

“Hey, Dave, come and have a go at this!”  Dave was another consultant.  Needless to say, it failed for Dave.  Probably it would have worked if he’d been a developer – these things never fail for developers.

I’m not sure what it was that made me think of this, but I wondered, what happens if I press-and-hold the link before releasing it?  It failed.  Yay!  I’d made it fail!  The next job was for Brett: “Click it as fast you can.”  And it worked perfectly.  My natural clicking action was a bit faster than the others – clickrelease – whereas the others were a bit slower: click-tiny-pause-release.

So, the bug: When the link was clicked, a timer would start.  The timer had nothing to do with the link – it was starting when it shouldn’t.  The timer would fire one tenth of a second later, and take the focus away from the ActiveX control.  If the whole mouse-button-down-mouse-button-up sequence happened in under a tenth of a second, the link would work.  Any slower, it would fail.

So we trained the important customer to be really really quick with the mouse, and the money rolled in.  Or did we fix the bug?  I forget.

2 Responses to ““It works for me”, or, “How does it know a developer’s using it?!””

  1. danio Says:

    That’s a good one – can be a real PITA to figure these kind of things out.
    Reminds me of when I used to work in tech support. One of the users couldn’t log in to the application. I dialled up to remote control, got him to tell me the password and could log in fine. Got him to do it and it failed every time. Made him type his password in really carefully listening for key clicks – still no dice.
    Then for some reason I got inspiration – asked him to read his keyboard letters out to me – middle row went
    A S D F G J H K L
    Some joker had swapped the key tops round on the H & J keys, and the poor user was doing hunt and peck typing so he never realised…

  2. Richie Hindle Says:

    @danio: Good story!

    I work with a scarily clever guy, and one day one of my colleagues discovered how to a) spy on his screen, and b) remap his keyboard. So he swapped the top two rows: QWERTYUIOP[] became ASDFGHJKL;’# and vice versa. This guy’s typing barely faltered – he just remapped his brain and carried on regardless.