'Customer service and karma department, God speaking'
WHICH BUG TRACKER would God use?
It is one of the sillier questions I've asked. In computer programming, we use special programs to keep track of the problems (bugs) we have to fix, because we are not gods. Humans make mistakes writing code, and our memories fail when we try to remember the mistakes to fix them later.
Still, the joke has come up around the lunch table: The imperfections of the world exist because God's not using a bug tracker. Prayers would be feature requests, bug reports or inquiries. "Please help me get this job." "My dad is sick." "Why, God, why?"
Would God want to write the whole bug-tracker from scratch? Well, of course: Anything humans made couldn't possibly work at the scale of billions of users. Would it be bristling with features, or would it be elegant and Apple-esque? Would God track mostly internal maintenance tasks or customer service requests?
The hypothetical falls apart when I poke at it, idly, in the moment before I open the bug tracker at work and look at my cases. Most of the programmers I work with take it cheerfully when I find a problem in something they wrote. But once in a while, someone's prickly.
Here's one that just got assigned back to me. I opened it to report an error and included the steps he could follow to reproduce the problem.
The developer looked at it, presumably changed some code, and marked it "Resolved — Fixed." He assigned it back to me to check whether the problem still happens.
It's so much easier when it's fixed. Then I can just close it. If the bug's not fixed — if I'm reactivating it, again — then I'm saying something unpleasant: "Not only is there an error in your code, but you failed to fix it when I pointed it out. You think you've done your job. I think you haven't."
And today, I have to reactivate it, because I'm following the reproduction steps, and like clockwork the error pops up again.
What should I write in that little text box as I assign it back to him?
-"What did you expect? Did you even test your fix at all before washing your hands of this?"
-"I'm sorry to have to bring this to your attention. Please think of me as a mirror, as the rippling surface of water, clearing as you add features and fix bugs, but always reflecting the inherent imperfections of a fallen world."
It's hard. Usually I don't care about treading delicately. But a few weeks ago, he and I couldn't reproduce a bug I'd reactivated a month back, and he accused me of lying.
I was incredulous and he said he was joking, but I don't think he was.
"I remember a little after I met you, and I said something defensive and then apologized. And you said that I needn't be defensive, because no one at our company doubts my intelligence or abilities. I clung to that reassurance for days. Do you doubt it now? Or just my integrity?"
"It's shocking how painful it is to me for you to question that I've found an error. Is that how painful it is for you when I say there's a bug in your code?"
(It probably wouldn't work to include the entire text of Ellen Ullman's novel "The Bug" in that little text box. It's about a female tester trying to help a prickly male developer fix an intermittent bug — relevant and recommended.)
"As Oliver Cromwell said: 'I beseech you, in the bowels of Christ, think it possible you may be mistaken.'"
"Have you considered our software development process in the light of the traditional Hindu/Buddhist karmic cycle? A bug starts at a low level, then has cycles of resolution (death) and reactivation (rebirth). Each turn of the wheel gives it more wisdom, brings it closer to the nirvana of closure and brings our product closer to a new
release."
I consider all the things I can't say and will never successfully convey.
I type a quick note on the order of, "Do I have access to the version where this is fixed? In my version the repro steps still work." I click OK. I get some herbal tea. My mortal flesh gets a little fluid to keep it going.
The computers whirr, always working perfectly, always incorruptible, until they're not.
Sumana Harihareswara writes for Bay Area Living each week. You can write to her at sumana@crummy.com.
Would God want to write the whole bug-tracker from scratch? Of course: Anything humans made couldn't possibly work at the scale of billions of users. Would it be bristling with features, or elegant and Apple-esque? Would God track mostly internal maintenance tasks or customer service requests?