You are on page 1of 10

Quality Management: Concepts and Approaches for

Software Projects

Dulce Gonçalves1, João Varajão2,3, Ricardo Martinho1, José Bulas Cruz2

1
School of Technology and Management, Polytechnic Institute of Leiria, Portugal
2
University of Trás-os-Montes e Alto Douro, Portugal
3
Centro ALGORITMI, Portugal

dulce.goncalves@ipleiria.pt, jvarajao@utad.pt, ricardo.martinho@ipleiria.pt, jcruz@utad.pt

Abstract. In a world of growing competitiveness, “quality” is a main subject.


On recent years, there has been a trend towards the improvement of software
projects’ quality. This means improving not only the final software products,
but especially the quality of leadership and of project management. It is now
recognized that the quality of software products and services can be improved if
quality management is accomplished according to the unique characteristics and
complexity of each project. In this paper we present the main concepts of
quality management, as also some approaches of software quality assurance.
We then gather them around and, using the Deming’s philosophy, present the
Total Quality Management paradigm. We also discuss the rules and standards
of Quality Management Systems (ISO 9000 and CMMI), and identify some
misfits regarding the specific context of software development.
Keywords: Quality, Management, Software, Project.

1 Introduction

A recent study made in China in 2004 concluded that organisations obtain high
benefits when quality management and related standards are properly enforced [1].
Specifically, a project has a higher probability of success when a careful quality
management is carried out.
To fully understand quality management, it is essential to clarify its concepts,
starting from the quality one. There are many quality definitions, which vary in
context and the time by which it is (was) specified. This variety unveils the difficulty
involved in defining and measuring quality. Lately, the way quality is approached has
been changing radically. Nowadays, it is quality management that gains relevance,
announcing quality as a strategy to gain competitive advantage [2]. However, it is not
enough to say that quality management is important. In the context of software
production, we must aim for an explicit definition for software quality. Additionally,
we must create a set of activities that will help assuring that the work involved in the
software process is monitored through quality assurance activities on every software
project. Also, we must develop strategies for improving the software process, and as a
consequence, improving the quality of the software product.
In this paper we present the main concepts in the area of quality management for
software projects. We define quality and the corresponding activities in this context,
and also the key elements for a Total Quality Management (TQM) approach. We also
briefly describe two standards for implementing Quality Management Systems
(QMS), and how they fit into software organisations. We aim at identifying possible
misfits between the quality-related practices that can be used in QMSs for software
organisations, and the reality of software development and software projects.
The paper is organised as follows: the next section introduces quality concepts and
their relationships with software and software projects. In section 3 we present the
main concepts in the area of quality management, and in section 4 we describe the
Total Quality Management (TQM) paradigm applied to software organisations.
Section 5 addresses Software Quality Assurance (SQA) and related concepts. Section
6 we briefly describe two (ISO 9000 and CMMI) QMS referral standards, and section
7 concludes the paper.

2 The quality concept in the software context

Software quality is defined by the Institute of Electrical and Electronics Engineers


(IEEE ) as the degree that a system, component or process addresses: (1) the specified
requirements and (2) user/customer expectance [3]. The International Standards
Organization (ISO) defines quality in the general-purpose standard ISO 9000 [4] as
the degree of fulfilment of requirements, given by a set of intrinsic characteristics.
According to this standard, a requirement is a need or expectance expressed,
generally implicit or mandatory [4]. These two definitions come from respected
standards organisations, and point out the quality of a product as strictly bound to the
requirements it aims to fulfil.
Back in 1993, Juran predicted a rapid expansion in the competitiveness for quality
world wide [5]. According to him, that expansion was caused by joined forces such as
the proliferation of multinational companies, a growing global competitiveness, the
development of global markets which destroyed protectionism, and environment
protection. He then concluded that “The 20th century has been the century of
productivity. The 21st century will be the century of quality” [5]. Quality has evolved
from an important to a fundamental characteristic demanded by the customer.
Therefore, Feigenbaum says that “a poor man can’t afford to buy cheap, he has to
buy quality” [6].
Pressman defines software quality as the conformance of a software product
regarding its performance requirements, explicitly declared functional requirements,
the software method documentation and the implicit features expected throughout all
software products developed by professionals [7].
Laudon advocates that solutions for the problem of software quality include
adopting an adequate software method, assigning the right resources during its
development, and the use of appropriated metrics and tools to support this
development [8]. He specifically mentions the need of using adequate software tools
for managing the software project, along with those for designing, implementing and
testing the software product.
By presenting software quality in the context of TQM, Basili refers that quality is a
multidimensional concept. He also relates quality with the customer’s satisfaction and
its key elements [9].

3 Quality management in project management

Quality cannot be obtained from an isolated effort in a single area, and should not
be constrained to the activities of a single organisational level. It must, therefore, be
carefully planned and executed. For this reason, the quality management area has this
great potential of creating synergies with the one of project management [10].
For the last years there has been an added concern for the improvement of projects’
quality, not only at the derived products’ level, but also at the leadership and project
management levels. This is partially due to the fact of customers demanding each
time more performance, a more rigorous requirement’s fulfilment, less development
time, more high-technology levels, less defects and less costs [2].
Deming concluded that only 15% of the quality problems in a project originate
from the organisation’s operational level, i.e., in the activities of
development/production/manufacture of products. Therefore, 85% of the quality
problems are asserted to the design of a product, and to the strategic and management
organisational levels. These can be addressed through a more efficient quality
management [2].
For software projects, quality management is pointed out as a need, not only by
managers and customers, but essentially by developers [11]. This is due mainly to
[12]: the great variety of activities; the great number of problems that occur in this
kind of projects and; the critical role played currently by software products and
information systems in the organisations.
Quality management aims at assuring that all activities in a project are executed
efficiently, from the (project) planning activities, to the development and testing of a
software product or service, regarding the involving system and its performance [13].
This means that the focus is not only on the quality of the product, but also on the
quality of the process and the resources used to obtain it.
Jiang et al. performed a case study which included surveys to software engineers
[14]. Many of them were in favour of using strategies and tools to measure the
performance and quality of software projects. Additionally, the authors concluded that
it is urgent that organisations have extra care in planning, controlling and executing a
software process’s activities, giving more relevance to quality management activities
to maximize the software product’s quality.
According to Deming [2, 15], all members of an organisation are accountable
regarding a project’s quality, starting from top management. However, the project
manager plays a key role and is the most influent person in achieving an efficient
quality management. S/he should transmit trust and enhance cooperation between
team members, provide integration strategies, focus on the customer and have a
structured way for problem solving. S/he must be concentrated on the whole quality
management process, in order for the resulting project products to have the desired
quality. Nevertheless, all team members should be able to identify problems, suggest
solutions and implement those solutions [2].
To Sommerville, quality management involves defining the procedures and
patterns that should be used during software development, and assuring that they are
being followed by the software development team [16]. Besides those responsibilities,
the quality manager should also aim for a quality culture, i.e., to encourage team
members to assume the responsibility of their work, and to develop new approaches
for the improving its quality. Summing up, Sommerville identifies three main quality-
related activities [16]:
• Quality Assurance: identifies the procedures and organisational patterns that
support the development of higher quality software products;
• Quality Planning: adjusts the procedures and patterns identified above to a certain
software project’s specific needs;
• Quality Control: defines and approves processes that guarantee that quality
patterns specified for the project are followed by the software development team.
Enforcing these activities that enhance the quality of the software products and the
efficiency of the software processes remains a great challenge for software
organisations [17].

4 The Total Quality Management paradigm

Total Quality Management (TQM) is a management approach which aims at


improving the quality of the development process by involving all the software team
[32]. The organisation itself is seen as a process in which the objective is the constant
improvement of the quality process. This approach is based on fourteen principles
proposed by Deming in 1986. One of the main issues in Deming's approach is the
principle of customer service [32]. All actors for whom the service is developed
should be treated as customers. Another key issue is the role of top management to
ensure the success of quality management. Deming [33] considers that the support is
not enough, and that it is the responsibility of management to create and communicate
the vision, with the aim of continuous improvement. The Deming´s cycle (P-D-C-A)
(Plan-Do-Check-Act) is a cycle of continuous improvement, and a useful tool to
define, implement, monitor corrective actions and process improvements. This cycle
comprises four phases [32]:
• P (Plan) – proposed the goals and the plan of actions needed to achieve them;
• D (Do) – implements the actions previously planned;
• C (Check) – compares the results obtained with the proposed goals;
• A (Act) – if the actions are not efficient enough, there is the need for corrective and
preventive actions that assure the fulfilment of goals and lead to continuous
improvement.
When goals are achieved, new objectives are set and the cycle restarts. For each new
run of the cycle, the non conformities detected and corrected in the previous run do
not occur again (Fig. 1).

Act Plan
How to improve the What to do?
next time? How to do it?

Check Do
Happened according
Do what was planned
as planned?

Fig. 1. PDCA Cycle of Deming on Continuous Improvement (adapted from [18]).

The TQM term, widely used in organisations, also describes an approach to quality
improvement with the following key elements:
• Customer Focus – to reach full satisfaction of the customer. It includes a study on
the needs and wills of the customer, a requirements analysis, and measuring and
managing the customer’s satisfaction and expectations;
• Process Improvement – to reduce the variations on the process and achieve a
continuous quality improvement. In the context of software products, it includes
both business and software development processes. Improving them leads to
higher software product’s quality;
• Human Side of Quality – to create a cross-organisational culture of quality. The
focused areas include leadership, top management support and full participation
of all the organisation’s collaborators;
• Metrics, Models, Measurement and Analysis – to guide continuous improvement of
all quality parameters through a goal-oriented metric system.

5 Software Quality Assurance

The quality concept described in the ISO standard fully applies to software and
information systems development. End users have expectations of a high quality
pattern software, which provides them with the most adequate way of executing their
tasks in the system. These quality expectations regarding software and information
systems are correlated with two aspects [19]: the system should do what it is told to
do, and; it should do it in a correct and satisfactory manner. However, quality has
some other basic principles, such as:
• Prevent defects instead of correcting them;
• Make sure that defects are identified and corrected as soon as possible;
• Establish and eliminate the causes and the symptoms of defects;
• Audit the work according with the quality procedures and patterns previously
established.
According to Lewis, Software Quality Assurance (SQA) is a set of systematic
activities which unveil the required use for the software product [20]. SQA involves
all phases in a software development process, by monitoring and improving its
activities, assuring that the quality procedures and patterns are fulfilled, and
identifying and correcting problems. The IEEE 610.12-1990 standard defines
software quality as:
1. A planned and systematic pattern of all actions needed to provide the adequate
trust that a software product is conformant with the pre-established requirements;
2. A set of activities designed to evaluate the software development process;
SQA foresees also the people that influence in a positive way all the software
process lifecycle, and that quantify the quality of the process and of the resulting
software product. Therefore, quality can be quantified though metrics for the software
process, and through verification and validation techniques for the software product.
The activities involved in the quantification of quality for the software process
include evaluations (such as the ones referred in ISO 9000), quality checks, top
management reporting, continuous process evaluation and process statistical analysis.
For the software product, quantification is realised through formal inspections, unit
and system testing and customer acceptance testing. Lewis argues that organizations
that do not use SQA processes tend to show indicators of poor quality [20]. On the
other hand, organisations which are implementing a SQA process and applying it in
an appropriate manner show indicators of quality improvement. Table 2 summarises
the differences between software organisations that do not use SQA processes, and
those that do.

Table 2. Differences between organisations with and without SQA Processes.

Organizations that do not use SQA Organizations where SQA processes are
processes implemented
The software that was delivered often Removing errors happens when it is
presents failures; cheaper to fix;
Consequences of unacceptable failures of There is product quality improvement;
systems, from financial to real-world The process of gathering metrics in
scenarios of application; accordance with the objectives, is
The systems are not available for its established a database of metrics:
intended use; planning, failure rates and other indicators
The systems are often very expensive; of quality;
The costs of detecting and removing The SQA is a resource for process
failures are sometimes excessive. improvement.

Lewis also describes the most common activities of SQA, namely [20]:
• Quality Control – defined as a process with methods that are used to monitor the
work and observe software requirements’ degree of fulfilment. It is focused on
revisions and on identifying software defects and bugs before delivery. It is
realised by the software organisation which conducts the software production;
• Software Testing – used to verify if the functional and non-functional requirements
were properly implemented. The pitfall on this approach is that it often occurs at a
later phase in the software development process, making it harder to assure the
quality of the software product. This is due to the fact that most software
organisations still use the generic waterfall software process model, which foresees
software testing precisely at the end of the software process lifecycle. For instance,
if a requirement specification error is detected here, the whole software process
lifecycle must be restarted;
• Software Configuration Management (SCM) – responsible for identifying and
controlling changes in software documentation, artifacts (such as units of code and
components) and deliverables (such as integrated solutions and additional
features). It controls the evolution of a software product, its constituents and their
relationships through versioning. It assures that no change is performed without a
previous analysis of its impact, along with the production of proper change
documentation.
In order to work correctly, these activities must be properly documented and
accepted among all software development team members. Therefore, a proper SQA
plan is needed, and it should include a description of the activities which will assure
adequate levels of quality in software development [20].
One common error usually made by people and organisations is to confuse Quality
Control and Quality Assurance. Although often incorrectly used many times, they
follow distinct purposes, as shown by their main activities presented in Table 3.

Table 3. Differences between Quality Assurance and Quality Control.

Quality Assurance Quality Control


Quality assurance ensures that the process Quality control activities focus in the
is defined and appropriate discovery of specific defects (failings).
Methodology and standards development An example of quality control could be:
are examples of quality assurance. "The requirements defined are the
Quality assurance is process oriented. correct?"
Quality assurance is prevention oriented. Quality control is product oriented.
Focus on monitoring and improving Quality control is detection oriented.
process. Inspections and assurance that the work
The activities are focused in the early product meets the specified requirements.
stages of software development life cycle. The activities are focused in the final
Quality assurance ensures that processes stages of software development lifecycle.
are being implemented correctly. Quality control ensures that the work
results are the expected according with the
requirements.
6 Standards of Quality Management Systems

The implementation of a Quality Management System (QMS) aims at a continuous


improvement of the work processes towards an increasing customer satisfaction. In a
QMS, the organisation commits itself to 1) describing what it will do (procedures and
standards planned and documented); 2) doing what it wants; and 3) and makes proof
of its actions (through generated documentation). Each organisation has its own
(unique) QMS, as it depends on the the organisation’s goals, management practices
and the (human) resources which will define and update the QMS.
However, there is a minimal set of QMS elements which can be used to start-up the
elaboration of a QMS for all organisations. These are formally described in ISO 9000,
although its purpose does not include an overall template to be equally applied
throughout all organisations. According to ISO 9000 [4], a QMS aims at helping
organisations to continuously improve the customer’s satisfaction, regarding its needs
and expectations. These expectations are constantly reflected in material
requirements, services and information, and are shared among all organisations world
wide.

6.1 The ISO 9000 series of standards vs software quality

The ISO 9000 series of standards is a formalised QMS designed to ensure that quality
is built into every stage of the activity in hand. Wider application of the same
principles across every aspect of the organisation’s activities leads to TQM.
Sommerville considers ISO 9000 as an institutional standard which can be used to
develop a QMS for organisations ranging all industries. It is the most general standard
which mostly apply to organisations that are concerned with the quality processes
involved in the design, development and maintenance of their products [16].
Abreu [21] refers that standardisation assumes an enhancing role in the software
industry, providing wide scope consensual definitions, helping in the development of
software processes, and foreseeing reference points for software process
improvement.

6.2 CMMI

The Capability Maturity Model Integration (CMMI) is a reference model which


contains the generic and specific best practices needed for an organisation to achieve
a certain degree of maturity [22]. It seeks to establish an overall model for
improvement by including distinct submodels and disciplines, and promoting
development activities which cover the entire project’s lifecycle, from its inception
until the delivery and corresponding maintenance. It foresees two improvement paths:
one that allows organisations to select the individual business processes which they
want to improve; and the other which includes a set of practices to improve sets of
interrelated processes. These two paths are closely related to the levels in which a
certain organisation can be CMMI certified: the capability level, and; the maturity
level [22]. CMMI provides organisations with an efficient and effective evaluation
and multiple process improvement within an organisation. It also foresees cost
reductions in training and evaluation, and a shared and integrated vision of
improvement for all collaborators. It can also be used as a mean to represent
information of specific disciplines in a standard, through proven improvement
processes [23].

7 Conclusions

In this paper we presented a set of concepts related with quality and its
relationships with software projects and the production of software. We began by
describing fundamental concepts, namely those of quality and its surrounding
activities. We also referred the key elements for TQM, and concluded with a brief
description on QMS and the two ISO 9000 and CMMI standards which can be used as
referrals for implementing a QMS.
CMMI is specific for software organisations, and has the goal of guiding them in
improving the processes used to develop software products. It requires, however,
great discipline and hard work in order to be certified in higher (3 to 5) levels of
CMMI, since processes are evaluated through both their individual and collaborative
performance.
ISO 9000 is a generic referral for developing a QMS, and allows demonstrating if
it is effective and credible. It provides evidence that a certain organisation is qualified
to produce products and services of quality, although it does not evaluate directly the
quality of those products.
We see, therefore, the need of identifying a set of specific quality initiatives and
activities which can be applied to the specific context of software projects and the
underlying development processes.

References

1. Sarkis, J. and Q. Zhu, The Link between Quality Management and


Environmental Management in Firms of Differing Size: An Analysis of
Organizations in China. Wiley InterScience, 2004.
2. Kerzner, H., Project Management - A System Approach to Planning,
Scheduling, and Controlling. 7ª ed. 2001, Ohio: John Wiley & Sons.
3. IEEE, Standard 610. 1999, IEEE Standard Association.
4. IPQ. ISO 9000. 2008 [cited 2008; Available from: http://www.ipq.pt.
5. Juran, J., Assessing quality growth in the US. Quality, 1993. 32: p. pp. 48-56.
.
6. Litsikas, M., No One Can Afford to Buy Cheap Anymore – Interview with
Armand Feigenbaum. Quality - BNP Media, 1995: p. pp.37-40.
7. Pressman, R., Software Engineering - A Practitioner's Approach. 2000:
McGraw-Hill Publishing.
8. Laudon, K.C., Gerenciamento de Sistemas de Informação. 2001: Rio de
Janeiro: LTC.
9. Basili, V.R., S.H. Kan, and L.N. Shapiro, Software quality: an overview from
the perspective of total quality management. IBM Systems Journal, 1994.
10. Prieto, V.C., E. Prieto, and M.M.d. Carvalho. Implementação de Sistemas da
Qualidade: uma visão por projectos. in XII SIMPEP. 2005. Bauru, SP,
Brasil.
11. Bezerra, C.A., A qualidade do processo de desenvolvimento de software a
partir da gestão de projetos: um estudo de caso Pontifícia Universidade
Católica do Panamá, 2004.
12. McDaniel, J.G., Improving system quality through software evaluation.
Computers in Biology and Medicine, 2002. 32(3): p. 127.
13. Pyzdek, T. and P.A. Keller, Quality Engineering Handbook. 2003: CRC
Press.
14. Jiang, J.J., et al., An exploration of the relationship between software
development process maturity and project performance. 2004. 41(3): p. 279-
288.
15. Breyfogle, F.W., Implementing Six Sigma: Smarter Solutions Using
Statistical Methods. 2003: Wiley.
16. Sommerville, I., Engenharia de Software. 6ª ed. 2003, São Paulo: Pearson
Addison Wesley.
17. Azevedo, R., Um Sistema de Gestão da Qualidade para Micro, Pequenas, e
Médias Empresas de software a partir da ISO 9001 e ISO/IEC 12207. 2005,
Universidade de Fortaleza (UNIFOR): Fortaleza.
18. Fernandes, N.M.C., Qualidade no desenvolvimento de sistemas de
informação: Análise de sistemas de informação - Dissertação de Mestrado.
2005: UNIVERSIDADE TÉCNICA DE LISBOA - INSTITUTO
SUPERIOR DE ECONOMIA E GESTÃO.
19. Tian, J., Software Quality Engineering: Testing, Quality Assurance, And
Quantifiable Improvement, ed. John Wiley & Sons. 2005: IEEE Computer
Society Press.
20. Lewis, W.E., Software Testing and Continuous Quality Improvement.
Second Edition ed. 2004.
21. Abreu, F., Normalização em Engenharia de Software. 2000, Seminário
Qualidade no Software, Instituto Superior de Economia e Gestão.
.
22. SEI, CMMI® for Development, Version 1.2 2006, Pittsburgh: Software
Engineering Institute, Carnegie Mellon University.
23. Trigo, A.R., SCEPGSI - Sistema computacional para o estudo e prática da
gestão de sistemas de informação - Tese de Doutoramento. 2009:
Universidade de Trás-os-Montes e Alto Douro.

You might also like