A Composite Model for Software Quality Assurance


activities and individually control them to have better control over the entire process. For example, the configuration management process comprises various activities such as identifying and maintaining configuration items, baselining these items at appropriate stages, maintaining baseline records, and configuration status accounting. Once these activities are identified, the individual compliance of these activities can be periodically monitored to ensure compliance to the overall configuration
management process.

3. Compliance monitoring
A measurement of compliance is essential to monitor and control these activities. A simple approach to compliance monitoring that I use is given in Figure 2. The identified key activities of the key processes are monitored for their timely compliance. Attributing a numeral to the status of completion of these activities provides a way to see the measure of compliance; for example, attributes such as 1 (for completing on time), 0 (for not completing), and 0.5 (for completing with delay).


Figure 2: A simple spreadsheet to measure process compliance

In this approach, various key processes are broken down into key activities and a compliance rating can be obtained at any point. A weighted factor is arrived at for each of these key processes based on the importance and criticality of these individual processes to overall business performance. The overall process compliance rating is obtained by measuring the weighted average of the individual process compliance

4. Assessing the variation
Variation is an enemy to process compliance and to process maturity. It is essential to assess the variation to understand how far the process has deviated. Once the extent of deviation is known, the cause of such variation is analyzed to take proper corrective measures so that the variation can be eliminated or minimized.

5. Identifying key parameters
Key parameters are either process measurements that characterize the process, or product measurements that characterize the product. The identification of such key measurements is critical, as suitably identified measurements give the required amount of visibility, so that the process is well controlled and the product is well built. In the case of development and project management processes, the effort, schedule, and number of defects are typical examples of such measurements.

6. Measuring key parameters
It is important to measure the key parameters and represent them in numbers. According to Lord Kelvin, "When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind. Then how do you control it?"It is a real challenge to quality professionals to devise the right mechanism that measures the identified key parameters with accuracy. Various tools and mechanisms such as timesheets for weekly activity reporting, project trackers for schedule tracking, and defect loggers for defect tracking and defect management, are used for this purpose.

7. Metrics analysis
The absolute measurements described above give "eyesight" into the process; however, they do not directly give you control over the process or over quality. Such metrics are derived from comparing with expected or estimated measurements. Such metrics, or compliance ratings, are used to control the process that results in process maturity and product quality. For example, once the defects associated with reviews and testing at various development stages are measured, the metric "Defect Removal Efficiency" can be calculated. By setting targets or statistically controlling this metric, one can analyze and take corrective action when an out-of-control situation is found. Such corrective activities are detailed later in this article. Figure 3 provides a typical defect removal efficiency of various development stages in a project.

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.