Software Quality Management
Software Quality Management
This article gives an overview of Software Quality Management and various processes
that are a part of Software Quality Management. Software Quality is a highly overused
term and it may mean different things to different people. You will learn What is
Software Quality Management?, What does it take to Manage Software Quality?, Quality
Planning, Quality Assurance, Quality Control, Importance of Documentation and What
is Defect Tracking?
The definition of the ISO 8204 for quality:
“Totality of characteristics of an entity that bears on its ability to satisfy stated and
implied needs.”
This means that the Software product delivered should be as per the requirements
defined. We now examine a few more terms used in association with Software Quality.
Quality Planning:
In the Planning Process we determine the standards that are relevant for the Software
Product, the Organization and the means to achieve them.
Quality Assurance:
Once the standards are defined and we start building the product. It is very important to
have processes that evaluate the project performance and aim to assure that the Quality
standards are being followed and the final product will be in compliance.
Quality Control:
Once the software components are built the results are monitored to determine if they
comply with the standards. The data collected helps in measuring the performance
trends and as needed help in identifying defective pieces of code.
Software Quality Management simply stated comprises of processes that ensure that the
Software Project would reach its goals. In other words the Software Project would meet
the clients expectations.
The key processes of Software Quality Management fall into the following three
categories:
1) Quality Planning
2) Quality Assurance
3) Quality Control
1) Quality Planning
Quality Planning is the most important step in Software Quality Management. Proper
planning ensures that the remaining Quality processes make sense and achieve the
desired results. The starting point for the Planning process is the standards followed by
the Organization. This is expressed in the Quality Policy and Documentation defining the
Organization-wide standards. Sometimes additional industry standards relevant to the
Software Project may be referred to as needed. Using these as inputs the Standards for
the specific project are decided. The Scope of the effort is also clearly defined. The inputs
for the Planning are as summarized as follows:
Using these as Inputs the Quality Planning process creates a plan to ensure that
standards agreed upon are met. Hence the outputs of the Quality Planning process are:
To create these outputs namely the Quality Plan various tools and techniques are used.
These tools and techniques are huge topics and Quality Experts dedicate years of
research on these topics. We would briefly introduce these tools and techniques in this
article.
a. Benchmarking: The proposed product standards can be decided using the existing
performance benchmarks of similar products that already exist in the market.
b. Design of Experiments: Using statistics we determine what factors influence the
Quality or features of the end product
c. Cost of Quality: This includes all the costs needed to achieve the required Quality
levels. It includes prevention costs, appraisal costs and failure costs.
d. Other tools: There are various other tools used in the Planning process such as
Cause and Effect Diagrams, System Flow Charts, Cost Benefit Analysis, etc.
All these help us to create a Quality Management Plan for the project.
2) Quality Assurance
The Input to the Quality Assurance Processes is the Quality Plan created during
Planning.
Quality Audits and various other techniques are used to evaluate the performance of the
project. This helps us to ensure that the Project is following the Quality Management
Plan.
The tools and techniques used in the Planning Process such as Design of Experiments,
Cause and Effect Diagrams may also be used here, as required.
3) Quality Control
The Quality Control Processes use various tools to study the Work done. If the Work
done is found unsatisfactory it may be sent back to the development team for fixes.
Changes to the Development process may be done if necessary.
If the work done meets the standards defined then the work done is accepted and
released to the clients.
Importance of Documentation:
Various Software Tools have been development for Quality Management. These Tools
can help us track Requirements and map Test Cases to the Requirements. They also help
in Defect Tracking.
Level 0
The following is true for “Level 0” Organizations -
There are no Processes, tracking mechanisms, no plans. It is left to the developer or any
person responsible for Quality to ensure that the product meets expectations.
Level 1 – Performed Informally
The following is true for “Level 1” Organizations -
In Such Organizations, Typically the teams work extra hard to achieve the results. There
are no tracking mechanisms, standards defined. The work is done but is informal and
not well documented.
Level 2 – Planned and Tracked
The following is true for “Level 2” Organizations -
There are processes within a team and the team can repeat them or follow the processes
for all projects that it handles.
However the process is not standardized throughout the Organization. All the teams
within the organization do not follow the same standard.
Level 3 – Well-Defined
In “Level 3” Organizations the processes are well defined and followed throughout the
organization.
Level 4 – Quantitatively Controlled
In “Level 4” Organizations -
- The processes are well defined and followed throughout the organization
- The Goals are defined and the actual output is measured
- Metrics are collected and future performance can predicted