Fiona Charles’s workshop “We Can’t Know Everything – Promoting Healthy Uncertainty on Software Projects” at Let’s Test 2014 reminded me of a dusty old idea at the back of my mind…

Once when I was musing about what good has seven years and 2 degrees at the university done to me, I realized that one of the greatest lessons I learned was that I learned to doubt. I learned to be suspicious of quick and definite answers. I learned to deal with not knowing things for sure. I became conscious of how fallible I am.

What did I study that taught me this? I studied English language and literature.

I started out along with a bunch of others thinking that we shall be really good at English, that we shall be experts of sorts. I ended up being an expert doubter scrambling for information from a variety of resources to have some degree of certainty in a specific and limited context. It’s what studying a language teaches you: usually the meaning of words is not straightforward and it tends to depend on context. “No wonder context-driven testing makes so much sense to me,” I thought.

I have discussed the feeling of constant uncertainty with my course mates and they have agreed that it’s one of the most persistent lessons they’ve learned. Conversely, we’ve noticed that it’s not a lesson other people have learned or willingly learn when it comes to language. If I’m asked to translate a word or a sentence, I can rarely offer up an immediate translation, and this is when people express their confusion. “It’s just a word” or “it’s not that complicated” is what I hear.

As a professional doubter, I beg to differ. I need to use several heuristics to determine what could be a suitable word, for example. What is actually meant (use rephrase as a method) and what is the specific context? What is the style? What is the register? Sometimes there may be a few words that look very similar in meaning but may have nuances in the contexts they’re being used. Choosing the right one from that set may take some additional research into the usage of the word. Eventually, I’ll have to make a decision and accept it that I may still be wrong.

That’s how I’ve been exposed to and conditioned by uncertainty in the unexpected event of my becoming a software tester. I don’t know if others have similar experiences from different specialties. Also, I still need to think about if I can find a way to translate parts of my experience into something that can help other people on the software projects.

I still have this question, though… Will long-term exposure to (a certain kind of) uncertainty help to deal with it or can there be short-term strategies that help as well?