Thursday, January 05, 2006

Key Quality Concepts

Importance of Quality

After a thorough study of Quality in general and Software Quality in particular and scrutinizing The Definitions, we can arrive at the following conclusions about Software Quality and its importance in an organization's success.
  • Quality is conformance to product requirements and should be free.

  • Quality is achieved through prevention of defects.

  • Quality control is aimed at finding problems as early as possible and fixing them.

  • Doing things right the first time is the performance standard which results in zero defects and saves the expenses of doing things over.

  • The expense of quality is nonconformance to product requirements

  • Quality is what distinguishes a good company from a great one.

  • Quality is meeting or exceeding our customer's needs and requirements.

  • Software Quality is measureable.

  • Quality is continuous improvement.

  • The quality of a software product comes from the quality of the process used to create it. Hence the concept of Software Quality Assurance

  • Quality is the Entire Company's Business

Measuring Quality

One of the important things that needs to be ensured in Software Projects is that Software Quality should be measurable. The simple reason behind it is that if we cannot measure, we cannot manage. Following are the grounds based on which, quality can be measured:
  • Lines of code (LOC)

  • Quality
    • Defects / 1000 LOC
    • Mean time between failures

  • Effort (person-months)

  • Staff turnover: The number of employee departures in the last year divided by the number of staff members employed over the last year expressed as a percentage

  • Product metrics

    • Size: The final size or complexity of the software
    • Reliability: The time testedness of the developed software

  • Process metrics

    • Efficiency of fault detection
    • Ratio of faults detected during development to the total number of faults detected over the lifetime of the product

  • Fundamental metrics

    • Size (lines of code)
    • Cost (in dollars)
    • Duration (in months)
    • Effort (in person-months)
    • Quality (number of faults detected)
Quality Assurance

Quality Assurance, as discussed earlier, is process oriented, i.e. it is more concerned doing the right things than doing the things right. Any QA activity can be divided into three specific steps:
  • Analysis: Analyzing the process for it's pros and cons, based on a management approved procedure

  • Auditing: Noting down the results of the analysis on a regular basis

  • Reporting: Passing on the well documented QA reports to the higher management, so that it can take a proper initiative, build up on weaknesses while maintaining the strengths.
Following are the key Quality Assurance activities:
  • Process Definition & Standards

  • Formal Technical Reviews

  • Analysis & Reporting

  • Measurement

  • Test Planning & Review
Following are the goals of Quality Assurance
  • Provide management with the data necessary to be informed about product quality

  • Make confidence and be sure that product quality is meeting its goals
Quality Costs
  • Prevention costs

    • Quality planning
    • Formal Technical Reviews
    • Test equipment
    • Training

  • Appraisal costs

    • In-process and inter-process inspection
    • Equipment calibration and maintenance
    • Testing

  • Failure costs

    • Internal failure costs
      • Rework
      • Repair
      • Failure mode analysis

    • External failure costs
      • Complaint resolution
      • Product return and replacement
      • Help line support
      • Warranty work
The following diagram gives an overview of the contribution of various quality costs to the total quality cost depending on the quality level. Based on this, the optimal level of quality to minimize the quality cost is made.

Figure: Qualitative Variation of Quality Costs


Blogger David Longstreet said...

For those interested. You can download a free function point manual at

David Longstreet
Software Economist

1:13 PM  
Blogger john said...

COCOMO is an algorithmic software cost estimation model developed by Barry Boehm. The model uses a basic regression pattern.

8:47 PM  

Post a Comment

<< Home