Sunday, July 27, 2008

Software - A game of questions and answers

"The most serious mistakes are not being made as a result of wrong answers. The truly dangerous thing is asking the wrong question."
— Peter Drucker

"Testing is a questioning process in order to evaluate software" - James Bach

"Computers are useless. They can only give you answers." - Pablo Picasso

"One who asks a question is a fool for five minutes; one who does not ask a question remains a fool forever." - A Chinese proverb

Other day I was discussing with one of my colleague … somehow our discussion went about interpreting in simple terms the whole “game” of software development and testing. Here is what and how ended up in agreeing on the “simple” model to describe software and software lifecycle …(not SDLC but SLC)

Software development is about coming up with answers (and demonstrating those answers with an example) to the questions raised by testers, end users and other stakeholders.

Software testers ask questions about claims and capabilities of what software is supposed to do, take the questions to developers and project mangers and ask for answers.

Project manager or project sponsors scan these questions and pick up those that they think are worth “answering”, prioritize them and pass on the developers for providing answers and ways to demonstrate the answers. Before releasing the software to testers, developer do some question-answer session with buddy developers and leads (peer testing, unit testing and code reviews)

Developers then get on mission to analyze questions and develop/construct answers in the form of capabilities in the software and “release” to testers to check to see the answers are “satisfactory”. When developers do not get answers or feel that it takes relatively long time to find the answers – they turn to project manager with their analysis as why answer can not be made available immediately. Project manager then takes the decision of “deferring” those “unanswered” question to be taken up in future releases.
At times Testers, act on behalf of end users and other

Testers verify those answers and check to see they are OK … some times there will be follow-up questions or new questions (regression bugs/issues) and they are routed to developers via the project manager. This cycle repeats until there are new questions to be answered by the developers.

So … as long as there are questions to be answered about software … there will be the need of developers (who will provide answers) and there will be need of Project managers (to prioritize and check which questions need to be answered) and hence a software development project …

Guess what … it is software testers who drive the whole thing by asking relevant and important questions about software – about it’s claims and capabilities …

So … as important trait of a tester is to practice asking “good” questions …



Anonymous said...

Hi shrini,

I really liked the conclusion that it is the software testers who drive everything....

Keep on posting interesting topics like u have been doing.

A big thums up to u....

Anonymous said...

In my office, there hangs on the wall, a fairly large question mark. I test on several projects in the company I work for. I am usually told to just "ad hoc". The reason I am fairly successful at finding important defects with this type of testing is because I ask questions. Of the software, of myself, of the test lead, and of the developers. On occassion, it has even been to the folks in documentation and marketing. I generally will choose a path through the software and if there comes a place where the logic dictates one thing and the program does something else... I want to know why. If the help files say one thing and the program does not line up, I want to know why. The same is true if I am testing outside of my own domain knowledge. I will question what the customers use of the product will be either through research or other sources. Questions do indeed drive testing in my book.

Bhargavi M said...

The truly dangerous thing is asking the wrong question."
— Peter Drucker

I feel this is could be true. Asking a wrong question might affect many factors. Some of them which I can think of are like relationships, it may lessen impression on a person, time factor and it may also affect the future questions that come from the same person.

But, one question which bothers me is:
How can we know that he question is "Wrong"?
Sometimes it can be judged by ourselves.
Sometimes we won't be able to know unless it is asked and the other person express about it.
Sometimes what is judged by ourselves might be wrong,when the other person thinks what is right to me is wrong to him and vice versa.
To me, although some questions can be judged by ourselves, but still there are questions that can be known that they are right/wrong, good/bad only when asked.Once we come to know that is a wrong question, it could be a learning for future. Isn't it? ( now also, I judged and asked this question to you. But I don't know how you feel about it? )
This is one of the way I think that one can learn about a good question (which is important to ask).
When I face such situations, I try to explain more clearly what I mean to say, why I had to ask such question and what had triggered me to ask such a question. Also asking what are the other good questions that could be asked helps. This worked in my case until now. When things are clear from both sides, I think there is less chance of problems.
Like to know your views on this.

-Bhargavi M

Inder P Singh said...

That is right. An important characteristic of a tester is being inquisitive and asking many good questions.

Inder P Singh