One small thing that we miss sometimes is the need to keep in mind the end user of the software products we build or the existing products we service. Our client would not in all cases be the final user of the products – for example say our client is into building games in Facebook. He can play the games but the reason he is building this game is to sell it as a business, in that case the end user would be someone we do not know. If we keep this end user’s need in mind and build an application which will delight him once he uses it – we can pat our backs and feel good that we delivered a good “quality” product.
Author – Atma Prakash Ojha
” Quality ” – What does this term mean ?
Most of the time we make “quality” synonymous with “CMM” or “ISO” or some other industry accepted certification. The point is these are certifications by independent bodies to let others know that we have certain level of expertise/standard but without these too we can be good. How many of us are certified in the current technologies that we work in ? Does that mean we are not good – NO.
I will not define quality here but rather through some examples try to explain what it is.
You and your friends are planning to go out for dinner to a good place and out of 4-5 options you short list you zero in on 1 option and go there – right ?
Lets analyze what all parameters you would have used to decide on any one particular restaurant.
1st food should be good.
Meaning – you want that the “Quality” of the food should be good. Here quality means two things – first the stuff used for preparing food are fresh and good – no stale or sub standard stuff is used . Second the taste of the food should be good.
If I draw a co-relation to what our situation is – first our client would expect that the technical competence we have is good – that our people are very good in the areas that they work in. Second is our people have enough aptitude to understand the business of the client,i.e his requirement , and code accordingly. Difference here is – some people might know a technology theoretically – every syntax and options available but cannot comprehend a real life business scenario and put it into coding.
2nd thing that you evaluate about the restaurants is the ambiance – it should be good to eat and enjoy.
Here quality means quality of the place. The seating arrangement, the waiters, the plates used for serving etc – everything which is not your primary need (food) but something which will make you feel good and nice.
In our case – This would mean having good communication skills, so that the client feels comfortable talking to us. Communication skill has two main areas – Verbal and Written.
Both of these should be good in us to be a true professional – someone with whom people would love to deal with.
With these 2 things you would have decided to go to a particular restaurant. Imagine there comes up another place in town which in addition to all these also does the following. It discusses with you about your mood and the reason for the outing and accordingly serves food or decorates the place. This would delight you to such an extent that you may always want to go to that place.
In our case – we can check with our client who our end customers would be and accordingly make the product suit their need. For example say our client is building a social networking site for senior citizens ( retired government officials, army personnel, etc ) . Then in such a website having bigger buttons will be good, or building an application in such a way that it is not too deep rather is more horizontal in terms of page spread, i.e to get to a page too many links are not followed – every parent page should have maximum 3 level below pages not more.
Imagine we actually giving such suggestions to our client and implementing it in the final product. Not only our client but our end user will also be impressed to a point where they might just want to work with us for ever.