Tuesday, February 15, 2011

Oracles and Interpretation

In testing we talk about oracles. Oracles are things that define the "should" of the application. The oracle (or oracles) tell us what an application should do, how the UI ought to look, how the application ought to perform, etc.

I like to think that the word "oracle" is based on the Oracle at Delphi (I don't know this for sure, but it's plausible). And like the Oracle at Delphi, how we interpret an oracle can be at least as important as what the oracle actually says.

Emperor Nero - the guy who fiddled while Rome burned, killed his mother, and generally wasn't the most civil rights oriented of emperors - went to the Oracle at Delphi. He was told:

Your presence here outrages the god you seek. Go back, matricide! The number 73 marks the hour of your downfall!

Nero seems to have thought this was great. He was 30 at the time, so he figured he'd have 43 more years ruling Rome and then die at the ripe old age of 73. Not too shabby!

Nero was killed just a few years later in a revolt led by a 73 year old man. The oracle was right. The interpretation was completely wrong.

Now, the Oracle at Delphi was notorious for this kind of behavior: they'd say something, someone would think, "oh no problem" and then get his comeuppance through an interpretation he hadn't thought of. See Shakespeare's Macbeth and the witches for another example.

We need to be careful about our modern oracles for the same reason. There's what the oracle says, and there's how we interpret it, and those may not be the same thing. Please, use oracles. Just be careful to check your interpretation occasionally.

1 comment:

  1. Very interesting article Catherine.

    My approach is to ensure I am not dependant on using just one oracle. That way I can clarify my interpretation against more than one source. If more than one oracle agrees with my interpretation I can be more reassured that I understood what was said.

    If all oracles disagree I can raise that as an issue so it can be clarified.

    many oracles and depend on the ones that agree. If they do not agree then I raise it has an issue.