Thursday, May 20, 2010

Delivering Quality

Software Development has gone through a lot of transformation over the last few decades. Many practices have evolved. A lot of metrics have been collected. Project Management software’s have been used to plan and track the project execution. Many new practices have come and gone by. New Practices keep on coming. A lot of change has happened in the lifecycle area. Agile is the BUZZ word at this point in time. The question is, has the industry delivered quality consistently? I am sure many one of us will come up with an answer “NO”.

There could be various reasons for not delivering “Quality” consistently. The industry has grown at astronomical pace. This has led to the lack of maturity in the practices. The industry will mature one day. The implementation of projects will become more predictable. What should we do in this transition phase – Maturing Software Industry? I have learnt a simple principle which I would like to share with you.

The software best practices are meant for delivering consistent quality. The principles are known to all. This is not a rocket- science. But most of us have struggled in implementing them successfully and thus couldn’t reap the benefits. I suggest here with a two phase formula for a quick result:

1. The Long term success & Consistency: The best answer would be obtained by following the best practices in requirement management, design, implementation, testing and deployment. I wonder if programmers shall ever be able to develop a set of bug free codes. If it happens then the tester communities will be unemployed. This certainly will impact sagging job market of a country like US and growing Job market of a country like India. Thanks to the effectiveness of Programmers, the testing job has been growing. The developers should continue trying hard for bug-free codes which would eventually lead to elimination of testing work. Think; if they code perfectly and implement all functionalities flawlessly, then at the crack of dawn our dreams shall come true. Practice for improvement will lead to better and better development and reduction of cost. Elimination of testing is still a farfetched thinking.

2. Deliver best to the customer in short term: Since the elimination of testing work or reducing the same to minimal is much more than a dream. We need to have some mechanism which produces better results. This may not be a very cost effective solution. But I have seen this helping win back the customer’s confidence. Unless we win customer’s confidence, work will not continue. Therefore, for point 1, – it is essential to keep going. The suggestion here is to divide the project team into Two teams
a. Development Team
b. Independent Test Team
The test team should be fully empowered and given independence. The team should report at a much higher level than the Project Manager. All testing best practices should be followed. I’m a witness to this and have seen this giving the best results. It helps in filtering the defects before it goes to customer. You have to incur additional cost to fix the bugs. But you are buying the customer’s confidence in the absence of best quality development. Unfortunately, many companies are doing this and striving for near flawless development. This is the right strategy to endure in today’s software industry.

I have noticed tremendous resistance by line managers to implement independent testing in each and every case. Such practices give a pseudo feeling of loss of authority. People tend to forget that “deferring problem” is not solving the problem. I have seen some techniques like Coaching; Training in testing, vigorously implementing this practice will help a lot. You may decide your own way to tread the path to success.

Create an Independent Test organization, carve it out from total project and implement. You will enjoy customer blessings. If you keep on doing point 1, you will continuously keep on improving profitability over the years.
Peter Drucker has rightly said, "The single most important thing to remember about any enterprise is that there are no results inside its walls. The result of a business is a Satisfied CUSTOMER."

This shall help in delivering Quality consistently.

No comments:

Post a Comment