Monday, May 25, 2009

Building Quality

Quality has to be built into the product or service with each step in the lifecycle, from inception up to deployment to the live environment and continuing on with excellent customer support. While this seems quite obvious and elementary, more often than not the burden of quality falls entirely on testing before release to production. In other words, typically quality is attempted to be “tested into” the product as opposed to built in from start to finish.

You cannot “test” quality into anything.

Let me repeat that. You cannot “test” quality into anything.

At the most you can unearth defects while testing and put a stop the release on hold but you cannot infuse quality into the product at the QA stage.

The only way to build quality into a product or service is to ensure that each and every step in the inception, creation, delivery and support of the product is performed correctly and to specifications. You cannot have poor strategy, poor design, poor development and then attempt to sort it out by placing enormous pressure on the QA team. However, this is what happens 90% of the time. In my own personal experience in the past, I have very often been in this situation as part of the quality assurance team. We would inevitably find ourselves testing like crazy just before a release with defects being uncovered left and right and unplanned rework and retesting being setup that played havoc with schedules and sleep cycles. I believe that it is a combination of lack of awareness of the right methodology and the characteristic of human nature that “likes to wait till the last minute before kicking into high gear” that is responsible for this situation at so many organizations. Mostly, though, I think that it is a lack of awareness and a stubborn refusal to implement the correct methodology that causes this strange predilection towards “testing” quality in to a product or service.

Let us consider the correct way to manage the design and delivery of a product or service with quality being built in properly. The figure below shows the various stages in the lifecycle along with key steps that must be undertaken during each stage to ensure quality (as always, click on the image for a larger version).

As may be observed, customer involvement and approval occurs at every stage of the lifecycle including inception. If any issue is found during the customer interaction and review at each stage, the problem can be addressed and resolved at that stage itself. The error usually made when the correct methodology is not followed is that the customer representatives see and experience the product at the time of release to the live environment. At this point, if there is an error or deviation from customer expectations, it is too late to make any sort of meaningful correction. If corrections are made, they usually cost a great deal and cause severe schedule overruns. With customer opinion and feedback being received right from the beginning, errors and potential problems can be sorted out straight away at greatly reduced cost and effort expenditure. And when the testing stage is reached, a much more mature and stable product will be brought in for testing resulting in fewer defects being uncovered and less rework required.

Clearly, quality has to be built in to a product or service with each step that is performed. Any attempt to create quality by simply performing large amounts of testing prior to release is absurd and infantile. It is quite puzzling that so many organizations stubbornly insist on carrying on with this erroneous approach.

No comments:

Post a Comment