08 October, 2009

Get your Context Right

Once upon a time, there lived a beautiful Princess. The Supreme Commander of the kingdom lusted on the Princess, while she fell in love with one of the greatest warriors of her kingdom who trained soldiers for war. She admired him for his bravery and courage. This resulted in a battle between the commander and the warrior on a tall mountain which is 10 times bigger than Mount Everest. After a futile attempt to kill the warrior, the commander took revenge by piercing a dagger in the Princess’s heart. She lay motionless at the edge of that mountain while the warrior killed the commander. The warrior runs towards the Princess to say that he loves her…. something that he never confessed to her until that time though he loved her. And the Princess dies and slips from the edge of the mountain. The warrior sees the Princess falling down, runs back a few steps and jumps from the mountain hoping to reach out to her. He somehow manages to go close to the falling Princess, but not close enough to catch hold of her.

I was fully involved watching this scene in a multiplex theatre when my niece shook me up with a question. ‘Did you know that the warrior can never reach out to the Princess if he jumps with an initial velocity 0?' I was like 'What? Why do you think so?' She said ‘The dead Princess slipped off with an initial velocity 0 (inertia of rest). However, the warrior went running and jumped off the mountain with a certain velocity say ‘X’ (inertia of motion)'.

She continued ‘If the warrior jumped with initial velocity 0, then the distance between him and the dead Princess would be same until the Princess reaches the ground. If the warrior jumped with an initial velocity ‘X’, then the distance changes and he will be able to get closer and even reach the Princess’. It was a truly ‘WOW’ moment. I am pretty bad at physics thanks to my teachers who only forced and tortured me and my class mates to learn formulae by rote and vomit it in exams. It is also my mistake that I never questioned what I was taught (shame on me!).

Imagination, Analogy, Practical thinking is infinite. This experience left me thinking for quite some time. As a tester, I set a mission for myself to ‘Test whether the warrior catches hold of the Princess’s hand and report my observations’. Just like any movie buff, I got busy watching the warrior reach out to the Princess. What if I did not know anything about initial velocity? What if I did not know under what circumstances the Princess fell off the mountain? What if the Princess jumped at her own will? What if the warrior suffered a shock, died and then slipped off the mountain. I would end up watching them falling until they reach the ground without focusing on my mission.

It is important to understand the context be it testing or problem solving or even a crime scene investigation.

1. What problem is the application intended to solve?
2. How will the application be used in a real world?
3. Who is the target audience for this application?
4. What is the environment/platform in which the application will be used?
5. Where does the application stand with regard to competitor products catering to a similar target audience?
6. What is the expected scalability for the application in the near future?
7. What kind of performance is expected of the application?

Without knowing answers to many more questions like these, testers can only do superficial testing leaving out critical defects in the application intact. Imagine the plight of the customer who buys this application?

We talk about getting laid off in our organizations. We do not talk about why the organization laid off or even shut down the entire office. We ask about why the organization did not retain people with the profits it made the last to last before year(correct me if this phrase is wrong). We do not ask why the customers did not buy the application. We need to provide the application the way the customer wants it, not the way we want it to be. If we do provide the way we want it to be, it will be with us. It will never go to the customer and by god's grace(sales/marketing) even if it does, it will come back to us. Do we want the application to come back or the appreciation?

Get your Context Right,
Parimala Shankaraiah