Friday, June 22, 2007

Role of users in Software Life Cycle

Users are the integral part of the Software Systems because in the end software will be used by them. As a developer and tester will work on some project and then move to the next project, but the users will use it frequently. If we are doing the testing of ATM software then after making and deploy our role will be finished but the users will use it forever.

I always stick to the definition of the Tester given by Ron Patton in his book “Software Testing” :-

“The goal of the Software Tester” is to find bugs, find then as early as possible, and make sure they get fixed.”

I would like to add one thing in this is that tester is the representative of the users. Tester has to think and act like end user while testing the product. Testers are closest to users in the organizations.

Users don’t like the break or crash in the applications. So try to think about the negative testing. I know this term ‘Negative Testing” is somewhat confusing. You can refer to the Pradeep Soundararajan famous blog for further understanding of this term.
http://testertested.blogspot.com/2007/04/negatives-of-negative-testing.html

These days I have seen the companies thinking toward the early visibility of the users in the projects. I am happy my company is working toward it. My company try to bring the customer into the picture from the early point of view. It is possible due to the fact that my company work on Metadata driven approach(MDA).

In last I would like to say we cannot ignore the users in the Software Development life cycle. It we (especially testers) think like users we can deliver the good quality products.
m
Regards and Thanks
Mukesh Dhingra
"Testing a product is a learning process."

4 comments:

Anonymous said...

Hi Mukesh,

You are very rite at this point that end users play a vital role in any project. The idea is very true that to achieve perfection, tester has to think and act like a user.

Nice to read ur ideas.. Keep posting.


Regards,

Rajat Sabharwal.
Associate SQA

Pradeep Soundararajan said...

@Mukesh,

If testers did not know that thinking like end users can help them to do a better testing, I am OK with it BUT the problem is most of the testers know that thinking like end user is important but they fail to think.

Let me give you an example: Once I went to an ATM and there was a lady trying to get some cash out of the system. It appeared to me that she might have not used such a system and she appeared to be worried about the way she can get cash. I am not sure if she might be able to read the English or Hindi text option available in the monitor. She asked me to help her and I did.

Do you think the testers would have mentioned this as a risk item?

If I were testing that product, I'd say "it might be a good idea to include a local language or a system that highlights the text and reads it for them or an option for those people who get the card to enable the voice when they put their card in the ATM. If none of these suggestions fit it, I might want to say this might become a usability issue to such users and I identify as a risk"

As you see, I witnessed an end user with a problem she had and my understanding of the usability aspect of an ATM got better and hence if I test, I might be able to bring in ideas. In case if I am asked to test a component that astronauts might use in space and I have no astronauts near me to ask questions or seek help, I might assume certain things and it might end up with a few bugs, up at space.

The Apple iPod that is one of the most successful product had it's UI design done by people at Frog Design. Frog Design employs artists and people who are psychological experts. While artists create a design diagram, psychologists comment on it and the artists come out with a better design.

This emphasizes the need for testers to learn psychology and you let me know how many testers around you know are willing to learn psychology and put the hard work that is required.

The problem is not that they don't know... the problem is they aren't willing to learn, practice and deliver because it requires hard work and they have been getting what they want without that hard work.

Ben Simo said...

Testers must not ignore the users' perspective while we test. Testers also need to consider the business' perspective. The products we test need to be useful to users but they also need to be profitable to the business -- whether that profit is monetary or something else.

Sometimes we testers can think too much about what the users want and not enough about the business needs. Users need to be happy and the business needs to meet its goals.

I once worked with a product manager that often said something like "Revenue is king. Liability is queen. Tell me how it impacts them." If we testers wanted a bug fixed or an enhancement added, we could not limit our reports and discussion to how the issue impacted the users. We had to also describe how it impacted the business.

We need to think like testers and we need to think of the business goals.

Ben Simo
QualityFrog.com

Mukesh said...

@Pradeep
"This emphasizes the need for testers to learn psychology and you let me know how many testers around you know are willing to learn psychology and put the hard work that is required."

You bring an very important topic. Everyone knows about it but no one wishes or tries to do it. Even if someone tries did not continue it for long time. Most of us are clouded with old fashinoed testing style, they are not willing to come out of this. They are not trying new things.
If we think on this issues we can provide a good quality of testers to the world.