Advertisment

Quality Nirvana

author-image
DQI Bureau
New Update

The endeavor of all software development organizations is to ensure
consistent delivery of quality software to the clients to meet their
requirements. Although quality is a subjective term, quality software means that
it is reasonably bug-free and reliable, delivered on time, meets customer
expectations, and is easily maintainable. Ther are a number of common problems
in software development:

Advertisment
  • Most often the initial requirements specified by the customer are unclear
    and incomplete and they do not understand the effect of changes. This causes
    redesign, reallocation of tasks, work already done may have to redone or
    completely discarded.
  • The complexity of software development may be difficult to comprehend for
    anyone without experience in modern-day software development and strong
    expertise.
  • Extensive testing on any software module during development, integration
    and prior to release is necessary, and this needs designing test cases so as
    to ensure extensive code coverage, start testing early on, perform different
    types of testing, retest after fixes or changes. This may not be possible in
    all cases due to delivery pressures.
  • Generally programmers tend to avoid documenting the code and preparing
    other relevant documents (requirements specs, design etc.) thereby making
    the software difficult to maintain and modify.

ISO 9000, SEI CMM/CMMI are the most widely used in IT industry for general software development 

Software quality assurance (SQA)-defined as a planned and
systematic approach to the evaluation of the quality of software and to check
adherence to standards, processes and procedures-is becoming extremely
important.

Advertisment

Different organizations follow different standards for
coding, designing, testing etc. and also define processes and practices as per
international standards such as: ISO 9000, SEI CMM/CMMI. Six Sigma methodology.
which aims at defining processes to achieve near perfect products and services
with defects not exceeding 3.4 per mn, has added another dimension to software
quality assurance. The list includes ISO 9000, TL 9000 (for telecommunications),
SEI CMM/CMMI, MIL-STD (military standard), DO 178B (for airborne systems), BS
7799 (for information security), etc. Of these, ISO 9000, SEI CMM/CMMI are the
most widely used in IT industry for general software development. ISO 9000 is
the most popular, easiest and least expensive to implement. The SEI Standards
CMM and CMMI describe key process areas that a software organization must
practice to be effective. Six Sigma follows a data driven approach and uses
statistical techniques to measure process capability.

ISO 9000 (latest version ISO 9000:2000), proposed by the
International Standards Organization, is a generic standard and can be applied
to all types of industry including software. ISO 9000:2000 has five major
sections with focus on customer satisfaction, data analysis and on continual
improvement. ISO 9000 is a very broad, general and well-understood framework.
ISO 9000 enables any organization to define the basic set of processes, their
interconnectivity, build a framework for measuring and analyzing software
metrics. A large number of ISO certification bodies, that perform the audit and
certify, exist in India. Building an ISO 9000-based quality management system is
relatively easy and most organizations can afford the certification.

Since November 1986, Software Engineering Institute (SEI) has
been developing process maturity framework to assist organizations in improving
their software processes. Their first fully developed model, Version 1.1 of SW-CMM
for Software, was released in 1993. CMMI (CMM Integration) was proposed by SEI
in 2000 to facilitate integration of the contents of SW-CMM, SECM for Systems
Engineering) and IPD-CMM (for Product Development). Both SEI CMM and CMMI have
five levels, with level 5 being the highest mark of maturity. While CMM is a
staged model, CMMI has both staged and continuous representation.

Advertisment

SEI has approved lead assessors who can provide assessments
to software organizations. The charge for CMM/CMMI assessments is much higher
compared to ISO 9000:2000 and may be unaffordable for most of the small and
medium IT enterprises. While SEI CMM and CMMI prescribes good practices for
achieving maturity in software development, these practices can be followed even
in an ISO 9001:2000 framework. This can result in substantial savings to an
organization that doesn't want SEI certification but at the same time wants to
benefit from practicing mature software development practices.

The concepts of SW-CMM level 4 and level 5 and Six Sigma are
synergistic. SW CMM/CMMI provides the basic process framework to systematically
apply Six Sigma techniques. Six Sigma methodology helps in analyzing the data to
address CMM's key requirements, including quantitative process management,
software quality management, defect prevention, technology change management,
and process change management. While an organization can optimize its software
development processes using QC tools and basic statistical techniques to reach
SEI CMM/CMMI's level 5, its further quest for perfection can be achieved only
by application of Six Sigma methodology. Six Sigma methodology based on strong
statistical foundation aims at reducing variation of processes which are
critical to business and follows the DMAIC
(Define-Measure-Analyze-Improve-Control) phases. DMAIC can be applied to
existing processes to improve the quality of deliverables (with very low
defects), reduce the variation in actual and estimated project times, minimize
delays due to ineffective understanding of customer requirements, reduce the
time for design, coding and testing, improve the efficiency of regression
testing, improve response time to customer complaints, etc. Unlike other quality
standards, there is no certifying body for Six Sigma. The methodology is applied
to projects selected on the basis of business needs and not throughout the
organization. An organization therefore cannot be certified as a Six Sigma
organization.

While application of Six Sigma methodology is well understood
in the manufacturing and service sectors, its application to software
development is still to pick up because of the lack of expertise in the
application of statistical techniques like control charts, testing of
hypothesis, correlation and regression analysis, DOE, ANOVA, etc, to software
development processes.

Advertisment

There is no doubt, that for any organization, the first step
in their quality journey is to build systems complying with ISO 9001:2000
standard. A ISO 9001:2000 certified organization can then start implementing the
key practices prescribed in level 2 and 3 of SEI CMMI. After achieving this,
they can move forward by implementing the level 4 and level 5 practices using
basic quantitative techniques and institutionalizing these practices. Further
improvement and reduction of error to 3.4 per mn-Quality Nirvana-comes only
with Six Sigma!

Dr Anirban Basu,
director, Quality+

Advertisment