Professional Documents
Culture Documents
LITERATURE REVIEW
This chapter explores the literature that is relevant for understanding the
development and interpreting the results of this research. This chapter provides an
overview of previous research on statistical process control, software metrics and CMM.
Over the past decade, the concepts, methods and practices associated with process
management and continual improvement have gained wide acceptance in the software
community (Florac et al., 2000). These concepts, methods and practices embody a way of
thinking, acting and understanding the data generated by processes that collectively result
in improved quality, increased productivity and competitive products.
30
While the benefits of SPC are well founded for manufacturing companies, there
have been many debates (Card, 1994; Kan, 1995; Keller, 1995) about its application in
software industry. It is frequently argued that the inherent characteristics of software
cause difficulties to apply SPC techniques. Nevertheless, the interest to apply SPC
techniques in the software industry has grown as more organizations improve their
31
Radice (1998) describes SPC techniques constrained within software domain and
gives a detailed tutorial based on theoretical knowledge with practical experiences. The
author states that all SPC techniques may not be applicable for software processes and
gives XmR and u-charts as possible techniques. The study also explains the relevance of
SPC for CMM Level 4 and regards backing-off control charts in Level 4 as a mistake.
32
The literature also includes studies that present practical experiences of SPC in
software domain. Weller (2000) provides one of the rare practical examples by presenting
the SPC implementation details from a software organization. The researcher uses X and
moving range charts for the lines of code inspected per hour for each inspection and
achieves a stable inspection process after removing the outliers from the dataset. Then u-
chart is drawn for the defect density data for each inspection. By using these findings,
reliable estimations are drawn for inspection effectiveness and it gains an insight on when
to stop testing.
Card (1994) discusses the utilization of SPC for software by also considering
some of the objections and mentioning about possible implementation problems. A
control chart example is given for testing effectiveness measure and concludes that SPC
principles can be beneficial for a software organization even if formal statistical control
techniques are used.
Florac et al., (2000) present their analysis findings from a collaborative effort
between SEI and Space Shuttle Onboard Project. They first emphasize the importance of
selecting key processes, providing operational definitions, addressing issues of data
homogeneity and rational subgrouping, using the correct control charts, understanding
multiple-cause and mixed-cause systems, finding and testing trial limits and recalculating
limits. Then they perform an SPC study on package review data by implementing each of
these factors. Finally they summarize the benefits of applying SPC to software processes.
Jalote and Saxena (2002) move ahead on the idea of 3 - sigma control limits and
propose a model for the calculation of control limits to minimize the cost of type 1 and
type 2 errors. The foundation of this study is a pioneering one as it questions an accepted
practice for control charts and the results of the example studies are encouraging.
33
Card et al., (2008) analyzes the usage of SPC in software development, to find the
phase of application and why SPC in that particular phase. From this study it is found that
under right conditions, SPC can be used as another toolkit that can be mixed or integrated
with other software tasks.
34
On the other hand, CMMI (2001) analyzes process performance in two process
areas:
35
36
CMM in its new version CMMI and SPICE implicitly direct software companies
to implement SPC as a crucial step for achieving higher process maturities. They suggest
control charts for both project level process control and organizational level process
improvement purposes. The traces of SPC are also found in software process guidelines
such as PMBOK and NASA measurement guidelines. Actually, it is possible to utilize
SPC methodologies to comply with some other software standards such as (International
Standard Organization (ISO) 9000-3, which require determination of applicable statistical
methods to monitor measure and analyze the processes. This trend shows that software
community has high expectations from statistical applications of SPC techniques. As
37
There are many software process models introduced already. Some of the models
mention here are: Waterfall, revised waterfall, prototyping, incremental, Rapid
Application Development (RAD), spiral and eXtreme Programming (XP) are some of the
major process models to mention.
Software development is not an easy task for all the existing models to help them
master their problems. As the software evolves, the existing models has to be modified
even then, the set modifications cannot help much to find the solution of important
problems like cost, budget, over running of schedules or effort deviations, poor quality
software, etc.,
Davis, (1995) has discussed towards this briefly as “the software community
redefines the problem by shifting its focus from product issues to process issues. While
the natural tendency of a pendulum is to come to rest at a point midway between two
extremes, the software community’s focus constantly shifts”
Assessment and its pre-requisite, measurement, may be the weakest point of any
software organization. Brady and DeMarco, (1994) have made the following statement
about measurement:
“Only in software do people cling to the illusion that it’s OK to come up with
estimates of the future, even though you’ve never measured anything in the past.”
38
Over the past decades, software companies have spent vast resources on SPI.
Although there have been a lot of studies aiming at better software, the results have not
changed dramatically since those studies and now research has begun (Aaen, 2003).
It is very hard to make changes from developers to managers and to make the
situation worse, many managers lack experience. SPI efforts need commitment at all
levels. The managers should know the organization elements tactics and contexts that
facilitate successful change for improvement.
If SPI used for project management process, the new process may result in faster
cycle times, shorter time to market, higher customer satisfaction, accurate time and
budget accounting and better cost and schedule performance (Rico, 2004).
To change the whole process SPI accesses the existing process. These points are
the vital data for improvement or to make changes in the whole process. Small software
companies do not have the accurate measurements and hence successful implementation
is not possible, all the time and some of them even do not have a system for
measurement. Till 1994, 75 percent of the industry did not collect metrics and hence
could not be measured (Yorden, 1994).
39
SPI carefully analyzed and it got results from the industry it seems to be the
ultimate approach but it is not compulsory, that it will help other organization to reach its
improvement goals. There was not enough examples provided and every organization has
its own culture, staff, etc., It cannot be guaranteed that what SPI did for one organization
could applicable for others also. The current process should be assessed before making an
SPI attempt. It serves as a base and guide.
The ISO/IEC 9126 standard is one of the available models that can be used to
assess a software process or product. Using the ISO/IEC 9126 model it is possible to
evaluate the product or process from quality point of view.
ISO/IEC 9126 is a software product evaluation model for high quality software
products and is used to evaluate every relevant quality by using validated and widely
accepted metrics. ISO/IEC 9126 categorizes software quality attributes into six
40
This model includes quality metrics and its metrics can be defined and authorized
to develop new metrics if needed and it is not listed in the existing one. This metrics
helps to measure the quality of activities by which the quality of process can be predicted.
The user can detect the quality issue and take corrective measures during the early stages
of development.
The users can measure the extent to which the process meets quality
considerations (Güceglioglu, 2006). Güceglioglu’s approach brings predictability to some
extent and mention about adopting ISO 9126-3 to an organization’s needs which the
author also agrees.
41
Only after making the assessment and analyses of the measurements, improving
the process can be started and it will create the desired outcome and the advantage of
existing guidelines like CMM or CMMI for SPI program can be used.
After going through the literature it is realized that the current trends in software
industry designate a movement towards utilization of SPC techniques. In CMM and even
more in CMMI, SPC is depicted as a challenge for high maturity organizations. They are
also the most detailed resources in terms of providing a guideline for SPC
implementation in a software organization. Apart from the software standards, the studies
of researchers in this area also constitute an important part of the literature. One
important common point among the researchers is that they all accept the difficulties of
using SPC techniques in software domain and a high majority of them regard SPC as a
beneficial tool for controlling processes. While supporting their ideas, they usually refer
to de-facto experiences in manufacturing industries.
42