A DECISION SUPPORT SYSTEM FOR THE SOFTWARE PROCESS
-
Upload
khangminh22 -
Category
Documents
-
view
3 -
download
0
Transcript of A DECISION SUPPORT SYSTEM FOR THE SOFTWARE PROCESS
A DECISION SUPPORT SYSTEM
FOR THE SOFTWARE PROCESS
A Thesis
Submitted to the Faculty of Graduate Studies and Research
In Partial Fulfillment of the Requirements
for the Degree of
Master of Applied Science
In Electronic Systems Engineering
University of Regina
By
Mazdak Chinichian
Regina, Saskatchewan
August 2005
© 2005: M. Chinichian
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
A DECISION SUPPORT SYSTEM
FOR THE SOFTWARE PROCESS
A Thesis
Submitted to the Faculty of Graduate Studies and Research
In Partial Fulfillment of the Requirements
for the Degree of
Master of Applied Science
In Electronic Systems Engineering
University of Regina
By
Mazdak Chinichian
Regina, Saskatchewan
August 2005
© 2005: M. Chinichian
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
1+1 Library and Bibliotheque et Archives Canada Archives Canada
Published Heritage Direction du Branch Patrimoine de redition
395 Wellington Street Ottawa ON KlA ON4 Canada
395, rue Wellington Ottawa ON KlA ON4 Canada
NOTICE: The author has granted a non-exclusive license allowing Library and Archives Canada to reproduce, publish, archive, preserve, conserve, communicate to the public by telecommunication or on the Internet, loan, distribute and sell theses worldwide, for commercial or non-commercial purposes, in microform, paper, electronic and/or any other formats.
The author retains copyright ownership and moral rights in this thesis. Neither the thesis nor substantial extracts from it may be printed or otherwise reproduced without the author's permission.
Your file Votre reference ISBN: 0-494-05989-3 Our file Notre reference ISBN: 0-494-05989-3
AVIS: L'auteur a accord& une licence non exclusive permettant a la Bibliotheque et Archives Canada de reproduire, publier, archiver, sauvegarder, conserver, transmettre au public par telecommunication ou par ('Internet, preter, distribuer et vendre des theses partout dans le monde, a des fins commerciales ou autres, sur support microforme, papier, electronique et/ou autres formats.
L'auteur conserve la propriete du droit d'auteur et des droits moraux qui protege cette these. Ni la these ni des extraits substantiels de celle-ci ne doivent etre imprimes ou autrement reproduits sans son autorisation.
In compliance with the Canadian Privacy Act some supporting forms may have been removed from this thesis.
While these forms may be included in the document page count, their removal does not represent any loss of content from the thesis.
1*1
Canada
Conformement a la loi canadienne sur la protection de la vie privee, quelques formulaires secondaires ont ete enleves de cette these.
Bien que ces formulaires aient inclus dans la pagination, it n'y aura aucun contenu manquant.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
1*1 Library and Archives Canada
Published Heritage Branch
395 Wellington Street Ottawa ON K1A 0N4 Canada
Bibliotheque et Archives Canada
Direction du Patrimoine de I'edition
395, rue Wellington Ottawa ON K1A 0N4 Canada
Your file Votre reference ISBN: 0-494-05989-3 Our file Notre reference ISBN: 0-494-05989-3
NOTICE:The author has granted a nonexclusive license allowing Library and Archives Canada to reproduce, publish, archive, preserve, conserve, communicate to the public by telecommunication or on the Internet, loan, distribute and sell theses worldwide, for commercial or noncommercial purposes, in microform, paper, electronic and/or any other formats.
AVIS:L'auteur a accorde une licence non exclusive permettant a la Bibliotheque et Archives Canada de reproduire, publier, archiver, sauvegarder, conserver, transmettre au public par telecommunication ou par I'lnternet, preter, distribuer et vendre des theses partout dans le monde, a des fins commerciales ou autres, sur support microforme, papier, electronique et/ou autres formats.
The author retains copyright ownership and moral rights in this thesis. Neither the thesis nor substantial extracts from it may be printed or otherwise reproduced without the author's permission.
L'auteur conserve la propriete du droit d'auteur et des droits moraux qui protege cette these.Ni la these ni des extraits substantiels de celle-ci ne doivent etre imprimes ou autrement reproduits sans son autorisation.
In compliance with the Canadian Privacy Act some supporting forms may have been removed from this thesis.
While these forms may be included in the document page count, their removal does not represent any loss of content from the thesis.
Conformement a la loi canadienne sur la protection de la vie privee, quelques formulaires secondaires ont ete enleves de cette these.
Bien que ces formulaires aient inclus dans la pagination, il n'y aura aucun contenu manquant.
i * i
CanadaReproduced with permission of the copyright owner. Further reproduction prohibited without permission.
UNIVERSITY OF REGINA
FACULTY OF GRADUATE STUDIES AND RESEARCH
SUPERVISORY AND EXAMINING COMMITTEE
Mazdak Chinichian, candidate for the degree of Master of Applied Science, has presented
a thesis titled, A Decision Support System for the Software Process, in an oral
examination held on July 22, 2005. The following committee members have found the
thesis acceptable in form and content, and that the candidate demonstrated satisfactory
knowledge of the subject material.
External Examiner: Dr. Mehran Mehrandezh, Faculty of Engineering
Supervisor: Dr. Luigi Benedicenti, Faculty of Engineering
Committee Member: Dr. Stephen O'Leary, Faculty of Engineering
Committee Member: Professor Ken Runtz, Faculty of Engineering
Chair of Defense: Dr. Allan Cahoon, /VP Research and International/
Faculty of Business Administration
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
UNIVERSITY OF REGINA
FACULTY OF GRADUATE STUDIES AND RESEARCH
SUPERVISORY AND EXAMINING COMMITTEE
Mazdak Chinichian, candidate for the degree of Master of Applied Science, has presented
a thesis titled, A Decision Support System fo r the Software Process, in an oral
examination held on July 22, 2005. The following committee members have found the
thesis acceptable in form and content, and that the candidate demonstrated satisfactory
knowledge of the subject material.
External Examiner: Dr. Mehran Mehrandezh, Faculty of Engineering
Supervisor: Dr. Luigi Benedicenti, Faculty of Engineering
Committee Member: Dr. Stephen O'Leary, Faculty of Engineering
Committee Member: Professor Ken Runtz, Faculty of Engineering
Chair of Defense: Dr. Allan Cahoon, /VP Research and International/
Faculty of Business Administration
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Abstract
Recent software development revolves around two main families of methods:
structured plan-driven methods and light agile methods. This thesis describes a model to
help determine which family of methods should be adopted by a company. The model is
the result of a validation of previous work and the integration of an interpretive layer that
allows project managers and other technical personnel to supply information that is then
used to determine the value of key properties for the optimal process to be followed. This
approach allows a company to perform an initial investigation into its process and the
methods used to develop software, and gain valuable insight before developing an action
plan that may require external consulting which is, in general, very costly.
The two models proposed ladder to a unified software process decision method.
Validation of the model was achieved only through the re-interpretation of existing
experimental evidence, so future work involves an experiment specifically conceived for
the models created. However, the application of the model to the two main methods for
software development showed that the model can accurately identify to which category
they belong. This provides a good initial level of confidence for the model presented.
ii
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Abstract
Recent software development revolves around two main families o f methods:
structured plan-driven methods and light agile methods. This thesis describes a model to
help determine which family of methods should be adopted by a company. The model is
the result o f a validation o f previous work and the integration o f an interpretive layer that
allows project managers and other technical personnel to supply information that is then
used to determine the value of key properties for the optimal process to be followed. This
approach allows a company to perform an initial investigation into its process and the
methods used to develop software, and gain valuable insight before developing an action
plan that may require external consulting which is, in general, very costly.
The two models proposed ladder to a unified software process decision method.
Validation o f the model was achieved only through the re-interpretation of existing
experimental evidence, so future work involves an experiment specifically conceived for
the models created. However, the application of the model to the two main methods for
software development showed that the model can accurately identify to which category
they belong. This provides a good initial level o f confidence for the model presented.
ii
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Acknowledgements
I would like to utterly thank my supervisor, Dr. Benedicenti, to whom the success
of this thesis is chiefly owed. I am profoundly grateful for his constant support, diligent
attention, and more than knowledgeable guidance at each and every point of this study.
There is no doubt that his vision and insightful suggestions greatly contributed to the
success of this thesis. I would also like to kindly thank the members of the supervisory
committee, Professor Runtz and Dr. O'Leary, for their support during my work.
In addition, I gratefully acknowledge the financial support from the Faculty of
Graduate Studies and Research, the Faculty of Engineering, the Faculty of Science, and
the TRLabs.
I would like to thank the following people for their help and advice during the
course of this study: Dr. Christine Chan, Craig Gelowitz, Peter Kort, and Robert
Harrison.
iii
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Acknowledgements
I would like to utterly thank my supervisor, Dr. Benedicenti, to whom the success
o f this thesis is chiefly owed. I am profoundly grateful for his constant support, diligent
attention, and more than knowledgeable guidance at each and every point o f this study.
There is no doubt that his vision and insightful suggestions greatly contributed to the
success of this thesis. I would also like to kindly thank the members o f the supervisory
committee, Professor Runtz and Dr. O’Leary, for their support during my work.
In addition, I gratefully acknowledge the financial support from the Faculty of
Graduate Studies and Research, the Faculty of Engineering, the Faculty o f Science, and
the TRLabs.
I would like to thank the following people for their help and advice during the
course of this study: Dr. Christine Chan, Craig Gelowitz, Peter Kort, and Robert
Harrison.
111
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Post Defence Acknowledgements
I would like to also profoundly thank the external examiner Dr. Mehrandezh for
his diligence and highly valued comments on the thesis. In addition I am thankful to the
chair of the defence Dr. Cahoon for agreeing to be present at my defence on such short
notice. He was perfectly in command of the defence process and his insightful
contribution is greatly treasured.
iv
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Post Defence Acknowledgements
I would like to also profoundly thank the external examiner Dr. Mehrandezh for
his diligence and highly valued comments on the thesis. In addition I am thankful to the
chair of the defence Dr. Cahoon for agreeing to be present at my defence on such short
notice. He was perfectly in command of the defence process and his insightful
contribution is greatly treasured.
iv
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Dedication
I would like to dedicate this thesis to my parents Mahkameh and Morteza. The
success of this work would have not been possible without their continuous moral
support. I hope that this achievement brings them joy and happiness. I would also like to
dedicate this work to the nice people of Saskatchewan who accepted me as one of their
own and gave me the opportunity to work and study in this beautiful province. I hope
that this accomplishment would further enrich the science of software process
management in this province and in all of Canada.
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Dedication
I would like to dedicate this thesis to my parents Mahkameh and Morteza. The
success of this work would have not been possible without their continuous moral
support. I hope that this achievement brings them joy and happiness. I would also like to
dedicate this work to the nice people of Saskatchewan who accepted me as one of their
own and gave me the opportunity to work and study in this beautiful province. I hope
that this accomplishment would further enrich the science of software process
management in this province and in all of Canada.
v
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table of Contents
Abstract ii
Acknowledgements iii
Post Defence Acknowledgements iv
Dedication
List of Tables ix
List of Figures
List of Acronyms xi
List of Appendices xii
Chapter 1 Introduction 1
1.1 Overview and problem domain 1
1.2 Thesis contribution 3
1.3 Organization of the thesis 4
Chapter 2 Background Information 6
2.1 Software process definition 7
2.2 Why is it important to have a software process 7
2.3 Plan-driven methods 8
2.4 Agile methods 12
vi
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table of Contents
Abstract ii
Acknowledgements iii
Post Defence Acknowledgements iv
Dedication v
List o f Tables ix
List o f Figures x
List o f Acronyms xi
List o f Appendices xii
Chapter 1 Introduction 1
1.1 Overview and problem d o m ain ............................................................ 1
1.2 Thesis contribution................................................................................. 3
1.3 Organization o f the thesis.......................................................................4
Chapter 2 Background Information 6
2.1 Software process definition....................................................................7
2.2 Why is it important to have a software process....................................7
2.3 Plan-driven m ethods...............................................................................8
2.4 Agile m ethods........................................................................................12
vi
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
2.5 Hybrid / tailored methods 17
2.6 Decision support systems 17
2.7 Problem domain 19
Chapter 3 Methodology Design 21
3.1 Feasibility study 22
3.2 Knowledge acquisition 24
3.2.1 Agile and plan-driven methods' characteristics and
contrast (twelve factors) 25
3.2.2 Validating Boehm's work 38
3.3 Model implementation 47
3.3.1 Input criteria 50
3.3.2 Questionnaire 53
3.3.3 Models 55
Chapter 4 Results and Technology Transfer 61
4.1 Validation and testing 61
4.1.1 Validating the models using the data used in validating
Boehm's work 61
4.1.2 Validating the models using the practices and concepts
of CMMI and XP 62
4.1.3 Validating the models using real data 67
4.1.4 Validating the models dividing a company into two
process groups 68
vii
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
2.5 Hybrid / tai lored m ethods.......................................................................17
2.6 Decision support systems.......................................................................17
2.7 Problem dom ain......................................................................................19
Chapter 3 Methodology Design 21
3.1 Feasibility study..................................................................................... 22
3.2 Knowledge acquisition..........................................................................24
3.2.1 Agile and plan-driven methods’ characteristics and
contrast (twelve fac to rs).......................................................... 25
3.2.2 Validating Boehm’s w o rk ........................................................38
3.3 Model implementation......................................................................... 47
3.3.1 Input criteria.............................................................................. 50
3.3.2 Questionnaire............................................................................ 53
3.3.3 M odels.......................................................................................55
Chapter 4 Results and Technology Transfer 61
4.1 Validation and testing...........................................................................61
4.1.1 Validating the models using the data used in validating
Boehm’s w ork ........................................................................ 61
4.1.2 Validating the models using the practices and concepts
of CMMI and X P ..................................................................... 62
4.1.3 Validating the models using real d a ta ....................................67
4.1.4 Validating the models dividing a company into two
process groups....................................................................... 68
vii
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
4.2 Additional development 68
4.2.1 Future proposed models 69
4.2.2 Automated system structure design 72
Chapter 5 Conclusions 75
5.1 Summary 75
5.2 Conclusions 76
5.3 Future work 77
References 79
Appendices 86
viii
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
4.2 Additional development.......................................................................... 68
4.2.1 Future proposed m odels.............................................................69
4.2.2 Automated system structure design .......................................... 72
Chapter 5 Conclusions 75
5.1 Summary....................................................................................................75
5.2 Conclusions............................................................................................... 76
5.3 Future w ork ............................................................................................... 77
References 79
Appendices 86
viii
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
List of Tables
1 Some plan-driven concepts 10
2 Examples of plan-driven approaches 11
3 Agile manifesto 13
4 Some agile methods concepts 15
5 Example of agile methods in the market 16
6 Levels of software method understanding and use 35
7 Agile and plan-driven methods contrasts 36
8 Misconceptions and realities about agile and plan-driven
methods 37
9 Validating Boehm's work using actual case studies 40
10 Criteria matrix 44
11 The five critical factors 48
12 Sub-factors 51
13 Results test 1 64
14 Results test 2 66
A CMMI staged vs. continuous 90
B XP principals and XP practices (implementation) 93
ix
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
List of Tables
1 Some plan-driven concepts 10
2 Examples o f plan-driven approaches 11
3 Agile manifesto 13
4 Some agile methods concepts 15
5 Example o f agile methods in the market 16
6 Levels o f software method understanding and use 35
7 Agile and plan-driven methods contrasts 36
8 Misconceptions and realities about agile and plan-driven
methods 37
9 Validating Boehm’s work using actual case studies 40
10 Criteria matrix 44
11 The five critical factors 48
12 Sub-factors 51
13 Results test 1 64
14 Results test 2 66
A CMMI staged vs. continuous 90
B XP principals and XP practices (implementation) 93
ix
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
List of Figures
1 Graphical representation of the Boehm's five critical factors 49
2 Radar graph 71
3 Bar graph 71
4 System structure 72
5 Decision block 74
x
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
List of Figures
1 Graphical representation o f the Boehm’s five critical factors 49
2 Radar graph 71
3 Bar graph 71
4 System structure 72
5 Decision block 74
x
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
List of Acronyms
DoD Department of Defense
DSS Decision Support System
CMM Capability Maturity Model (SM)
CMMI Capability Maturity Model Integration (SM)
EIA Electronic Industries Alliance
IEEE Institute of Electrical and Electronic Engineering
ISO International Standard Organization
NDIA National Defense Industrial Association
PSP Personal Software Process
SEI Software Engineering Institute
TSP Team Software Process
XP eXtreme Programming
xi
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
List of Acronyms
DoD Department o f Defense
DSS Decision Support System
CMM Capability Maturity Model (SM)
CMMI Capability Maturity Model Integration (SM)
EIA Electronic Industries Alliance
IEEE Institute o f Electrical and Electronic Engineering
ISO International Standard Organization
NDIA National Defense Industrial Association
PSP Personal Software Process
SEI Software Engineering Institute
TSP Team Software Process
XP eXtreme Programming
xi
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
List of Appendices
A Overview of CMMI
B Overview of extreme programming
C Abstracts and references of the case studies
D Analysis, questions and weights of 12 factors and their sub-
factors
xii
86
91
96
106
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
List of Appendices
A Overview o f CMMI 86
B Overview o f extreme programming 91
C Abstracts and references o f the case studies 96
D Analysis, questions and weights o f 12 factors and their sub
factors 106
xii
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 1
Introduction
1.1 Overview and the problem domain
In recent times, software development has become more and more structured in
order to deal with the complexity of corporate software development. Two main
paradigms have recently emerged: agile development and plan-driven development. The
two have advantages and disadvantages, but it is difficult for a company to decide which
paradigm is more appropriate for their software development. This thesis attempts to
present a model that allows a company to decide between agile methods and plan-driven
methods in their software engineering practices.
Before proceeding with the core of this thesis, it is appropriate to present some
definitions and conventions that will be used throughout this thesis. A software product is
a complex mix of tangible products (e.g., program code), user manuals, and services,
(e.g. maintenance) [Benedicenti]. Software engineering is "the application of a
systematic, disciplined, quantifiable approach to the development, operation, and
maintenance of software; that is, the application of engineering to software" [IEEE-STD].
This definition for software engineering covers a wide range of activities and disciplines.
Some of these disciplines come from the mainline practices of computer science,
engineering, and project management. One of the areas in which software engineering is
applied is through software process management. A software process is defined as a
1
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 1
Introduction
1.1 Overview and the problem domain
In recent times, software development has become more and more structured in
order to deal with the complexity of corporate software development. Two main
paradigms have recently emerged: agile development and plan-driven development. The
two have advantages and disadvantages, but it is difficult for a company to decide which
paradigm is more appropriate for their software development. This thesis attempts to
present a model that allows a company to decide between agile methods and plan-driven
methods in their software engineering practices.
Before proceeding with the core of this thesis, it is appropriate to present some
definitions and conventions that will be used throughout this thesis. A software product is
a complex mix of tangible products (e.g., program code), user manuals, and services,
(e.g. maintenance) [Benedicenti]. Software engineering is “the application of a
systematic, disciplined, quantifiable approach to the development, operation, and
maintenance of software; that is, the application of engineering to software” [IEEE-STD].
This definition for software engineering covers a wide range of activities and disciplines.
Some of these disciplines come from the mainline practices of computer science,
engineering, and project management. One o f the areas in which software engineering is
applied is through software process management. A software process is defined as a
1
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
sequence of steps performed for the development of software [IEEE-STD]. This thesis
focuses on issues regarding the software process management.
The background presented in Chapter Two justifies the assumption that, in order
to deliver a quality software product, satisfy customer demands, and achieve
organisational excellence, a structured, disciplined, and well-managed process must be
adopted [Benedicenti]. However, there are many software development practices,
models and standards available. Herein we refer to such practices, models, and standards
as software processes.
An analysis of most of the software process methods available determines that
there are two broad and distinct groups of software process methodologies that are
fundamentally different. These two groups of software process methodologies are
referred to as agile and plan-driven methods. The contrast and distinguishing factors
between these two groups have yet to be decided upon. Experts in the domain of process
management, with a vast knowledge of software process methodologies, are required to
carry out such a task. Thus, software developers or managers of software development
companies are unable to decide which type of software processes they should adopt for
their corresponding organizations. It is also ascertained that the organizations, based on
several factors, are categorically different and there are serious implications in adopting
an unsuitable software process for a given company. In many cases, an incompatible
software process contributes to devastating outcomes for the companies adopting them
[Boehm]. The importance of selecting a suitable software process cannot be exaggerated.
However, access to experts who are able to provide such expertise in this field is costly
and limited.
2
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
sequence of steps performed for the development o f software [IEEE-STD]. This thesis
focuses on issues regarding the software process management.
The background presented in Chapter Two justifies the assumption that, in order
to deliver a quality software product, satisfy customer demands, and achieve
organisational excellence, a structured, disciplined, and well-managed process must be
adopted [Benedicenti]. However, there are many software development practices,
models and standards available. Herein we refer to such practices, models, and standards
as software processes.
An analysis o f most o f the software process methods available determines that
there are two broad and distinct groups of software process methodologies that are
fundamentally different. These two groups of software process methodologies are
referred to as agile and plan-driven methods. The contrast and distinguishing factors
between these two groups have yet to be decided upon. Experts in the domain o f process
management, with a vast knowledge of software process methodologies, are required to
carry out such a task. Thus, software developers or managers of software development
companies are unable to decide which type of software processes they should adopt for
their corresponding organizations. It is also ascertained that the organizations, based on
several factors, are categorically different and there are serious implications in adopting
an unsuitable software process for a given company. In many cases, an incompatible
software process contributes to devastating outcomes for the companies adopting them
[Boehm]. The importance o f selecting a suitable software process cannot be exaggerated.
However, access to experts who are able to provide such expertise in this field is costly
and limited.
2
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
This study proposes a decision support system to provide innovative but validated
models to help managers and software developers with an overview of their
organisation's characteristics as well as providing an expert opinion on the type of
software process they may adopt. The primary application of the models presented in
this study is to facilitate the decision making process for the managers and software
developers to select a software process methodology for their company. The models
provide a concise overview of the organization and will show the compatibility of some
of the company's characteristics with the two main groups of process methodologies.
They also give an impartial decision on what process methodologies the overall company
should adopt. In addition, the proposed system offers some unbiased advice and links to
further information so that the managers would be able to find more information in this
regard.
The models presented and the system proposed are validated with available
literature and have been tested independently. However, future experiments should be
devised to further validate these models. The models are a good base for inspiring future
empirical work in the field of software process management.
1.2 Thesis contribution
The primary objective of this research is in the domain of software process
management. Given our problem domain, our contributions to this field of study are as
follows:
First, a feasibility study was conducted in order to demonstrate the fact that a
decision support system (expert system) is one of the techniques that can provide
3
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
This study proposes a decision support system to provide innovative but validated
models to help managers and software developers with an overview of their
organisation’s characteristics as well as providing an expert opinion on the type of
software process they may adopt. The primary application o f the models presented in
this study is to facilitate the decision making process for the managers and software
developers to select a software process methodology for their company. The models
provide a concise overview of the organization and will show the compatibility of some
of the company’s characteristics with the two main groups o f process methodologies.
They also give an impartial decision on what process methodologies the overall company
should adopt. In addition, the proposed system offers some unbiased advice and links to
further information so that the managers would be able to find more information in this
regard.
The models presented and the system proposed are validated with available
literature and have been tested independently. However, future experiments should be
devised to further validate these models. The models are a good base for inspiring future
empirical work in the field o f software process management.
1.2 Thesis contribution
The primary objective of this research is in the domain o f software process
management. Given our problem domain, our contributions to this field o f study are as
follows:
First, a feasibility study was conducted in order to demonstrate the fact that a
decision support system (expert system) is one o f the techniques that can provide
3
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
solutions to our problem domain. Second, we independently validated the distinguishing
factors between agile and plan-driven methods. Third, we discovered that we could not
readily employ those factors in order to decide on a best choice of process for an
organization. As a result, we divided the factors into single entities called sub-factors.
Fourth, we created a questionnaire to attest to the presence of such sub-factors. Fifth, we
assigned weights to the each question, sub-factor, and finally to each factor. Having
these weights, we presented two models that allow one to make a decision regarding the
final selection of a process methodology for a given organisation. These two models
were partially validated using the data available. Sixth, we proposed two other models to
be studied in the future ventures. Seventh, we proposed a structure for the future decision
support system.
1.3 Organization of the thesis
This thesis is arranged in to five chapters as follows:
Chapter 1 Introduction
Chapter 2 Background information. In this chapter we define a software product,
then we provide a definition for the software process. After that, we justify the
importance of using a software process and the downfalls of not employing it. An
overview of different software processes in the market is given. Two distinct categories
of software processes are discussed at length and instances of such processes are given.
The application of a decision support system to the problem domain is also discussed.
Chapter 3 Methodology Design. In this chapter, the steps taken to approach the
problem domain are explained. The results of a feasibly study and knowledge acquisition
4
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
solutions to our problem domain. Second, we independently validated the distinguishing
factors between agile and plan-driven methods. Third, we discovered that we could not
readily employ those factors in order to decide on a best choice of process for an
organization. As a result, we divided the factors into single entities called sub-factors.
Fourth, we created a questionnaire to attest to the presence of such sub-factors. Fifth, we
assigned weights to the each question, sub-factor, and finally to each factor. Having
these weights, we presented two models that allow one to make a decision regarding the
final selection of a process methodology for a given organisation. These two models
were partially validated using the data available. Sixth, we proposed two other models to
be studied in the future ventures. Seventh, we proposed a structure for the future decision
support system.
1.3 Organization of the thesis
This thesis is arranged in to five chapters as follows:
Chapter 1 Introduction
Chapter 2 Background information. In this chapter we define a software product,
then we provide a definition for the software process. After that, we justify the
importance of using a software process and the downfalls o f not employing it. An
overview of different software processes in the market is given. Two distinct categories
of software processes are discussed at length and instances o f such processes are given.
The application of a decision support system to the problem domain is also discussed.
Chapter 3 Methodology Design. In this chapter, the steps taken to approach the
problem domain are explained. The results of a feasibly study and knowledge acquisition
4
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
are given. Boehm's twelve factors are discussed in details. These twelve factors allow
us to distinguish between agile and plan-driven methods. Boehm's work is
independently validated using case studies and empirical software articles. A criteria
matrix is created, and an in-depth analysis is made. After that, the inputs to the system are
defined and a questionnaire is produced. The inputs are given weights. Then, two
models for making a final decision are presented. The 12-factor weight and single weight
models are the presented models.
Chapter 4 Results and Technology Transfer. In this chapter, the structure of the
future system is proposed. In addition more models for the final selection are proposed.
The proposed system structure and proposed models can be used in future work.
Chapter 5 Conclusions.
5
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
are given. Boehm’s twelve factors are discussed in details. These twelve factors allow
us to distinguish between agile and plan-driven methods. Boehm’s work is
independently validated using case studies and empirical software articles. A criteria
matrix is created, and an in-depth analysis is made. After that, the inputs to the system are
defined and a questionnaire is produced. The inputs are given weights. Then, two
models for making a final decision are presented. The 12-factor weight and single weight
models are the presented models.
Chapter 4 Results and Technology Transfer. In this chapter, the structure o f the
future system is proposed. In addition more models for the final selection are proposed.
The proposed system structure and proposed models can be used in future work.
Chapter 5 Conclusions.
5
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 2
Background Information
A software product is a complex mix of tangible products and services. Thus, a
software product can comprise of the application program (code), plus all of the support
services, manuals, warranty, etc. Typically, during software development, client
requirements are vague and unclear; therefore it is quite difficult to satisfy them. Most
small businesses use a singleton software development approach. In the singleton
approach, individuals are in charge of all development aspects. The success or failure of
the project is solely dependent on the efforts, drive, and innovation of the individuals
involved. Ad-hoc methods are mainly used, the practises are rarely reused, and the
quality of the final product is both unknown and highly variable. However, larger
companies usually use a corporate software development approach. This approach is
team-based and customer-oriented and the practices adopted in this approach are cost
efficient, reusable, and repeatable. The larger the company is, the bigger the project
becomes, and the more employees are needed. This makes the project more complex, so
the singleton approach becomes impossible to adopt, and the need for a standard way to
develop software becomes imperative. In these cases, a structured method is often used
to build a software product. This method is often called a Software Process
[Benedicenti]. It is important to mention that any organization, no matter what size,
would benefit from the adoption of a software process [Boehm].
6
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 2
Background Information
A software product is a complex mix of tangible products and services. Thus, a
software product can comprise of the application program (code), plus all of the support
services, manuals, warranty, etc. Typically, during software development, client
requirements are vague and unclear; therefore it is quite difficult to satisfy them. Most
small businesses use a singleton software development approach. In the singleton
approach, individuals are in charge of all development aspects. The success or failure of
the project is solely dependent on the efforts, drive, and innovation of the individuals
involved. Ad-hoc methods are mainly used, the practises are rarely reused, and the
quality of the final product is both unknown and highly variable. However, larger
companies usually use a corporate software development approach. This approach is
team-based and customer-oriented and the practices adopted in this approach are cost
efficient, reusable, and repeatable. The larger the company is, the bigger the project
becomes, and the more employees are needed. This makes the project more complex, so
the singleton approach becomes impossible to adopt, and the need for a standard way to
develop software becomes imperative. In these cases, a structured method is often used
to build a software product. This method is often called a Software Process
[Benedicenti]. It is important to mention that any organization, no matter what size,
would benefit from the adoption of a software process [Boehm].
6
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
2.1 Software process definition
The IEEE Standard 610 defines a Process as "a sequence of steps performed for a
given purpose" [IEEE-STD]. Expanding this definition using the ISO 15504 terminology
yields a Software Process as the methodology and tools used by an organization or
project to plan, manage, execute, monitor, control, and improve software-related
activities. This is a broad description that covers a wide range of activities in a project or
an organization [ISO15504].
2.2 Why is it important to have a software process?
Complex software is very difficult to maintain. It is extremely difficult for anyone
other than the original software developer to understand partially completed work. Work
in progress usually is not documented. A new employee assigned to complete an
ongoing project would probably end up starting from scratch, because no matter how
good the previous work is, the new employee would have no organized information on
where to start. A singleton process may be of superb quality, but it is an ad-hoc process,
not a defined software process [Tyrrell].
Ad-hoc processes also make it very difficult to accurately gauge the quality of the
finished product through independent assessment. Two developers, each working
according to their own processes, defining their own tests along the way, have no
objective method of comparing their work either with each other, or, more importantly,
with customers' quality criteria [Tyrrell]. Also, there is no way to accurately predict the
cost or the timeline of an ad-hoc software project [Brooks].
7
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
2.1 Software process definition
The IEEE Standard 610 defines a Process as “a sequence of steps performed for a
given purpose” [IEEE-STD], Expanding this definition using the ISO 15504 terminology
yields a Software Process as the methodology and tools used by an organization or
project to plan, manage, execute, monitor, control, and improve software-related
activities. This is a broad description that covers a wide range of activities in a project or
an organization [ISO15504],
2.2 Why is it important to have a software process?
Complex software is very difficult to maintain. It is extremely difficult for anyone
other than the original software developer to understand partially completed work. Work
in progress usually is not documented. A new employee assigned to complete an
ongoing project would probably end up starting from scratch, because no matter how
good the previous work is, the new employee would have no organized information on
where to start. A singleton process may be of superb quality, but it is an ad-hoc process,
not a defined software process [Tyrrell],
Ad-hoc processes also make it very difficult to accurately gauge the quality o f the
finished product through independent assessment. Two developers, each working
according to their own processes, defining their own tests along the way, have no
objective method of comparing their work either with each other, or, more importantly,
with customers' quality criteria [Tyrrell]. Also, there is no way to accurately predict the
cost or the timeline of an ad-hoc software project [Brooks].
7
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Finally, there is an overhead as individuals determine their own practices in
isolation. So it is important for each organization to define a process for the project
[Tyrrell].
As a result, many organizations came to the realization that in order to deliver
quality software to their clients and to reduce costs, they need a process in place.
However, determining what type of process they should adopt seems to be a very
complicated issue since there are many processes available and there is little informed
and unbiased advice. Many proponents of specific software processes and their
corresponding institutes try to justify the use of their proposed models. It is hard to find
any general-purpose evaluation criteria for the adoption of any software process in a
company. Therefore, organizations will often choose processes that are not suited for
them, with often catastrophic results: customer dissatisfaction, flawed software products,
over budget, and overdue projects to name a few [Boehm].
In the field of software process development, there are over a dozen well-known
and functional methods available. Each has its own unique application and
characteristics. However, they can be divided into two main categories of process
development. One is called plan-driven and the other is called agile [Boehm].
2.3 Plan-driven methods
Plan-driven methods are considered the "traditional" way to develop software.
They are based on concepts taken from mainline engineering fields, such as industrial
engineering, engineering management, systems engineering, and so on. The plan-driven
8
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Finally, there is an overhead as individuals determine their own practices in
isolation. So it is important for each organization to define a process for the project
[Tyrrell],
As a result, many organizations came to the realization that in order to deliver
quality software to their clients and to reduce costs, they need a process in place.
However, determining what type of process they should adopt seems to be a very
complicated issue since there are many processes available and there is little informed
and unbiased advice. Many proponents of specific software processes and their
corresponding institutes try to justify the use of their proposed models. It is hard to find
any general-purpose evaluation criteria for the adoption o f any software process in a
company. Therefore, organizations will often choose processes that are not suited for
them, with often catastrophic results: customer dissatisfaction, flawed software products,
over budget, and overdue projects to name a few [Boehm].
In the field of software process development, there are over a dozen well-known
and functional methods available. Each has its own unique application and
characteristics. However, they can be divided into two main categories o f process
development. One is called plan-driven and the other is called agile [Boehm].
2.3 Plan-driven methods
Plan-driven methods are considered the “traditional” way to develop software.
They are based on concepts taken from mainline engineering fields, such as industrial
engineering, engineering management, systems engineering, and so on. The plan-driven
8
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
methods are regarded as a systematic engineering approach to software that adheres to
specific (defined) processes in moving software through series of phases from initial
requirements to finished product. The software development is approached in a
requirement => design => build paradigm. The organization's processes are well defined
and are improved continuously. The need for implementing such process methodologies
arose during the age of aerospace, satellites, and ballistic missiles in the mid 1960's. At
that time, software was not well understood and generally undisciplined (ad-hoc)
methods were used [Boehm]. The result was defective software that was often late and
over budget, and unfit for sensitive applications such as aerospace. To offset such
problems, the US Department of Defense (DoD) started to develop a series of instructions
which eventually became standards. These methods were the first instances of
standardised software processes [Boehm]. Other companies, such as IBM and Hitachi,
further developed their own versions of software process methods. As software
development became more important, more methods were developed to regulate software
development processes [Boehm] [Hitachi] [Mills].
Table 1 shows some of the plan-driven concepts [Boehm]
Table 2 shows some of the examples of Plan-Driven Approaches in the market. [Boehm]
9
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
methods are regarded as a systematic engineering approach to software that adheres to
specific (defined) processes in moving software through series o f phases from initial
requirements to finished product. The software development is approached in a
requirement => design => build paradigm. The organization’s processes are well defined
and are improved continuously. The need for implementing such process methodologies
arose during the age o f aerospace, satellites, and ballistic missiles in the mid 1960’s. At
that time, software was not well understood and generally undisciplined (ad-hoc)
methods were used [Boehm]. The result was defective software that was often late and
over budget, and unfit for sensitive applications such as aerospace. To offset such
problems, the US Department of Defense (DoD) started to develop a series o f instructions
which eventually became standards. These methods were the first instances of
standardised software processes [Boehm]. Other companies, such as IBM and Hitachi,
further developed their own versions of software process methods. As software
development became more important, more methods were developed to regulate software
development processes [Boehm][Hitachi][Mills].
Table 1 shows some of the plan-driven concepts [Boehm]
Table 2 shows some of the examples of Plan-Driven Approaches in the market. [Boehm]
9
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 1. Some Plan-Driven concepts. Table from [Boehm].
Process Improvement A program of activities designed to improve the performance and maturity of the organization's processes, and the results of such program.
Process Capability The inherent ability of a process to produce planned results. As the capability of each process is improved, it becomes predictable and measurable, and the most significant causes of poor quality and productivity are controlled or eliminated. This narrows the range of expected and actual results that can be achieved by following a process.
Organizational Maturity By steadily improving its process capability, an organization is said to mature. Maturity encompasses not only individual project capability, but the common application of standard processes across an organization. Common processes are maintained and personnel trained in their application. Projects tailor the common process assets to meet their needs. Once common assets are deployed, the organization can begin to measure their effectiveness and improve them based on the measures.
Process group A collection of specialists that facilitate the definition, maintenance, and improvement of the processes used by an organization.
Risk management An organized, analytic process to identify uncertainties that might cause harm or loss (identify risks), assess and quantify the identified risks, and develop and apply risk management plans to prevent or handle risk causes that could result in significant harm or loss.
Verification Verification confirms that work produces (e.g. specifications, design, models) properly reflect the requirements specified for them (building the product right)
Validation Validation confirms the fitness or worth of a work product for its operational mission (building the right product)
Software System Architecture
A software system architecture defines a collection of system stakeholders' need statements; and rationale which demonstrates that the components, connectors, and constraints define a system that, if implemented, would satisfy the collection of system stakeholders' need statements.
10
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 1. Some Plan-Driven concepts. Table from [Boehm].
Process Improvement A program of activities designed to improve the performance and maturity of the organization’s processes, and the results of such program.
Process Capability The inherent ability of a process to produce planned results. As the capability of each process is improved, it becomes predictable and measurable, and the most significant causes of poor quality and productivity are controlled or eliminated. This narrows the range of expected and actual results that can be achieved by following a process.
Organizational Maturity By steadily improving its process capability, an organization is said to mature. Maturity encompasses not only individual project capability, but the common application of standard processes across an organization. Common processes are maintained and personnel trained in their application. Projects tailor the common process assets to meet their needs. Once common assets are deployed, the organization can begin to measure their effectiveness and improve them based on the measures.
Process group A collection o f specialists that facilitate the definition, maintenance, and improvement o f the processes used by an organization.
Risk management An organized, analytic process to identify uncertainties that might cause harm or loss (identify risks), assess and quantify the identified risks, and develop and apply risk management plans to prevent or handle risk causes that could result in significant harm or loss.
Verification Verification confirms that work produces (e.g. specifications, design, models) properly reflect the requirements specified for them (building the product right)
Validation Validation confirms the fitness or worth of a work product for its operational mission (building the right product)
Software System Architecture
A software system architecture defines a collection of system stakeholders’ need statements; and rationale which demonstrates that the components, connectors, and constraints define a system that, if implemented, would satisfy the collection of system stakeholders’ need statements.
10
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 2. Examples of Plan-driven Approaches. (After [Boehm])
Method Organization Reference
Military Standards DoD [DoD-STD]
General Process Standards ISO EIA
IEEE
[ISO 15504] [EIA/IEEE]
Software factories Hitachi General Electric
others
[Hitachi] [GE]
CleanRoom Harlan Mills IBM
[Mills]
Capability Maturity Model Software (SW-CMM)
SEI Air Force
Watts Humphrey Mark Paulk
[SEI] [SW-CMM]
CMM Integration (CMMI)
SEI DoD
NDIA Roger Bate
Jack Ferguson Mike Phillips
[SEI] [CMMI]
Personal Software Process (PSP) Team Software Process (TSP)
Watts Humphrey SEI
[SEI] [Humphrey 97]
[Humphrey 2000]
11
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 2. Examples of Plan-driven Approaches. (After [Boehm])
Method Organization Reference
Military Standards DoD [DoD-STD]
General Process Standards ISOEIA
IEEE
[ISO 15504] [EIA/IEEE]
Software factories Hitachi General Electric
others
[Hitachi][GE]
CleanRoom Harlan Mills IBM [Mills]
Capability Maturity ModelSoftware(SW-CMM)
SEI Air Force
Watts Humphrey Mark Paulk
[SEI][SW-CMM]
CMM Integration (CMMI)
SEI DoD
NDIA Roger Bate
Jack Ferguson Mike Phillips
[SEI][CMMI]
Personal Software Process (PSP)Team Software Process (TSP)
Watts Humphrey SEI [SEI]
[Humphrey 97] [Humphrey 2000]
11
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The CMMI (the Capability Maturity Model Integration) is the most
comprehensive instance of a plan-driven approach. The CMMI is a descendant of the
SW-CMM and has placed the software process in the larger context of systems
engineering. Appendix A shows an overview of the CMMI. The complete document for
CMMI can be found at [CMMI].
2.4 Agile Methods
Agile methods emerged in the late 1990's, which is also referred to as the days of
the "dot corn" build-up. Agile development is an outgrowth of rapid prototyping and
rapid development experiences. Agile development is the resurgence of the philosophy
that programming is a craft rather than an industrial process depicted thorough a plan-
driven approach. Agile development was created as an answer to the rapidly changing
nature of the Internet-based economy. In such an environment, flexibility and speed will
provide a competitive advantage for small to medium size companies. The agile
manifesto is a document developed and signed by a group of advocates for the agile
approach, known as the Agile Alliance. This document presents the obvious disposition
of agile development and the outlook of its proponents [Boehm].
12
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The CMMI (the Capability Maturity Model Integration) is the most
comprehensive instance of a plan-driven approach. The CMMI is a descendant of the
SW-CMM and has placed the software process in the larger context of systems
engineering. Appendix A shows an overview of the CMMI. The complete document for
CMMI can be found at [CMMI].
2.4 Agile Methods
Agile methods emerged in the late 1990’s, which is also referred to as the days of
the “dot com” build-up. Agile development is an outgrowth of rapid prototyping and
rapid development experiences. Agile development is the resurgence of the philosophy
that programming is a craft rather than an industrial process depicted thorough a plan-
driven approach. Agile development was created as an answer to the rapidly changing
nature o f the Internet-based economy. In such an environment, flexibility and speed will
provide a competitive advantage for small to medium size companies. The agile
manifesto is a document developed and signed by a group of advocates for the agile
approach, known as the Agile Alliance. This document presents the obvious disposition
of agile development and the outlook o f its proponents [Boehm].
12
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Agile Manifesto
Table 3 shows the proclamation of the agile manifesto.
Table 3. Agile Manifesto. From [Manifesto]
Agile Manifesto
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Kent Beck
Mike Beedle
Arievan Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
Brian Marick
Jeff Sutherland
Dave Thomas
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Robert C. Martin
Steve Mellor
Ken Schwaber
That is, while there is value in the items on the right, we value the items on the left more.
13
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Agile Manifesto
Table 3 shows the proclamation of the agile manifesto.
Table 3. Agile Manifesto. From [Manifesto]
Agile Manifesto
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Kent Beck James Grenning
Mike Beedle Jim Highsmith
Arievan Bennekum Andrew Hunt
Alistair Cockbum Ron Jeffries
Ward Cunningham Jon Kern
Martin Fowler Robert C. Martin
Brian Marick Steve Mellor
Jeff Sutherland Ken Schwaber
Dave Thomas
That is, while there is value in the items on the right, we value the items on the left more.
13
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The following principles, found on the manifesto's website, further refines the
concepts proposed above [Manifesto].
1. Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes
harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and
users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity--the art of maximizing the amount of work not done--is essential.
11. The best architectures, requirements, and designs emerge from self-organizing
teams.
12. At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behaviour accordingly.
14
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The following principles, found on the manifesto’s website, further refines the
concepts proposed above [Manifesto].
1. Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes
harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple o f weeks to a couple of
months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
7. Working software is the primary measure o f progress.
8. Agile processes promote sustainable development. The sponsors, developers, and
users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity—the art o f maximizing the amount o f work not done—is essential.
11. The best architectures, requirements, and designs emerge from self-organizing
teams.
12. At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behaviour accordingly.
14
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 4 shows some of the agile methods concepts. In general agile methods are
lightweight processes that employ short iterative cycles. They rely on tacit knowledge
[Boehm].
Table 5 shows some of the examples of the agile methods in the market [Boehm].
eXtreme Programming (XP) is the most famous agile method. XP is fairly rigorous
and initially expects all of the practices defined in the method to be followed. See
Appendix B for an overview of XP.
Table 4. Some agile methods concepts. Table from [Boehm].
Embracing Change Seeing change as an ally rather than an enemy. Change allows for more creativity and quicker value to the customer
Fact cycle/frequent delivery Scheduling many releases with short time spans between them; forces implementation of only the highest priority functions, delivers value to the customer quickly, and speeds requirements emergence
Simple design Designing for the battle, not the war. The motto is YAGNI ("You Aren't Going to Need It"). Strips designs down to cover just what is currently being developed. Since change is inevitable, planning for future functions is a waste of effort
Refactoring The restructuring of software to remove duplication, improve communication, simplify, or add flexibility without changing its behaviour. Just in-time redesign.
Pair programming A style of programming in which two programmers work side by side at one computer, continually collaborating on the same design, algorithm, code, or test
Retrospective A post-iteration review of the effectiveness of the work performed, methods used, and estimates. The review supports team learning and estimation for furture iterations. Sometimes called "reflection"
Tacit Knowledge Agility is achieved by establishing and updating project knowledge in the participants' head rather than in documents (explicit knowledge)
Test Driven developments Module or method tests are incrementally written by the developers and customers before and during coding. Supports and encourages very short iteration cycles.
15
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 4 shows some of the agile methods concepts. In general agile methods are
lightweight processes that employ short iterative cycles. They rely on tacit knowledge
[Boehm].
Table 5 shows some of the examples of the agile methods in the market [Boehm].
eXtreme Programming (XP) is the most famous agile method. XP is fairly rigorous
and initially expects all of the practices defined in the method to be followed. See
Appendix B for an overview of XP.
Table 4. Some agile methods concepts. Table from [Boehm].
Embracing Change Seeing change as an ally rather than an enemy. Change allows for more creativity and quicker value to the customer
Fact cycle/frequent delivery Scheduling many releases with short time spans between them; forces implementation o f only the highest priority functions, delivers value to the customer quickly, and speeds requirements emergence
Simple design Designing for the battle, not the war. The motto is YAGNI (“You Aren’t Going to Need It”). Strips designs down to cover just what is currently being developed. Since change is inevitable, planning for future functions is a waste of effort
Refactoring The restructuring of software to remove duplication, improve communication, simplify, or add flexibility without changing its behaviour. Just in-time redesign.
Pair programming A style of programming in which two programmers work side by side at one computer, continually collaborating on the same design, algorithm, code, or test
Retrospective A post-iteration review o f the effectiveness o f the work performed, methods used, and estimates. The review supports team learning and estimation for furture iterations. Sometimes called “reflection”
Tacit Knowledge Agility is achieved by establishing and updating project knowledge in the participants’ head rather than in documents (explicit knowledge)
Test Driven developments Module or method tests are incrementally written by the developers and customers before and during coding. Supports and encourages very short iteration cycles.
15
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 5. Example of agile methods in the market (after [Boehm]).
Method People/Organizations Reference
eXtreme Programming (XP)
Kent Beck Cunningham Ron Jeffries
Daimler Chrysler
[Beck 2000]
Adaptive Software Development (ASD)
Jim Highsmith [Highsmith 02 B]
Crystal Alistair Cockburn [Cockburn]
Scrum Ken Schwaber Jeff Sutherland Mike Beedle
[Schwaber]
Feature-Driven Development (FDD)
Jeff DeLuca Peter Coad [Coad]
16
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 5. Example of agile methods in the market (after [Boehm]).
Method People/Organizations Reference
eXtreme Programming (XP)
Kent Beck Cunningham Ron Jeffries
Daimler Chrysler
[Beck 2000]
Adaptive SoftwareDevelopment(ASD)
Jim Highsmith [Highsmith 02 B]
Crystal Alistair Cockbum [Cockbum]
Scrum Ken Schwaber Jeff Sutherland Mike Beedle
[Schwaber]
Feature-DrivenDevelopment(FDD)
Jeff DeLuca Peter Coad [Coad]
16
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
2.5 Hybrid / Tailored methods
The facts arising from the experiences with software development suggest that
there are cases when neither of the process methodologies available provides a suitable
solution for the success of an organization. In many instances, a combination of the
practices of agile and plan-driven development may be needed to respond to the unique
characteristics of a company. A methodology that incorporates practices and principles
of both agile and plan-driven methods is called a Hybrid method [Boehm]. The Rational
process introduced by Philippe Krutchen and Crystal Orange created by Alistair
Cockburn are two examples of hybrid methodologies [IBM], [Cockburn]. In the domain
of software process, the concept of the Hybrid method is very new, but there is some
recent research being conducted to explore and invent new hybrid methods.
There are some companies whose characteristics not only do not match the
practices of agile and plan-driven, but are also incompatible with a hybrid method. In
such cases, a team of software process experts may be deployed to construct a method for
such a company [Boehm]. The experts may use the concepts and the practices of agile
and plan-driven methods to exclusively undertake such a task. A method that is
exclusively made or invented for a given company to serve its unique organizational
concerns is often referred to as a Tailored method [Boehm].
2.6 Decision support systems (Expert systems)
As it has been established in the previous sections, an expert with a broad
knowledge in the field of Software Process is required to be able to evaluate a company
based on its characteristics and then be able to make a decision in regards to the selection
17
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
2.5 Hybrid / Tailored methods
The facts arising from the experiences with software development suggest that
there are cases when neither of the process methodologies available provides a suitable
solution for the success of an organization. In many instances, a combination of the
practices o f agile and plan-driven development may be needed to respond to the unique
characteristics of a company. A methodology that incorporates practices and principles
o f both agile and plan-driven methods is called a Hybrid method [Boehm]. The Rational
process introduced by Philippe Krutchen and Crystal Orange created by Alistair
Cockbum are two examples of hybrid methodologies [IBM], [Cockbum]. In the domain
o f software process, the concept of the Hybrid method is very new, but there is some
recent research being conducted to explore and invent new hybrid methods.
There are some companies whose characteristics not only do not match the
practices of agile and plan-driven, but are also incompatible with a hybrid method. In
such cases, a team of software process experts may be deployed to construct a method for
such a company [Boehm]. The experts may use the concepts and the practices o f agile
and plan-driven methods to exclusively undertake such a task. A method that is
exclusively made or invented for a given company to serve its unique organizational
concerns is often referred to as a Tailored method [Boehm].
2.6 Decision support systems (Expert systems)
As it has been established in the previous sections, an expert with a broad
knowledge in the field of Software Process is required to be able to evaluate a company
based on its characteristics and then be able to make a decision in regards to the selection
17
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
of a suitable process methodology for that company. However, access to such expertise
is usually very expensive and often limited. In this study, we will try to find an automated
solution that can potentially replace an expert.
A study of different automated systems suggests that a decision support system
would be a good candidate. An expert system is a program that relies on a body of
knowledge to perform a somewhat difficult task usually performed only by human
experts [Luger]. The principal power of an expert system is derived from the knowledge
that the system embodies rather than from search algorithms and specific reasoning
methods. An expert system successfully deals with problems for which a clear
algorithmic solution does not exist [Luger].
The knowledge is extracted from training, reading and experience and includes:
theories, facts, rules, cases, examples, etc. [Luger].
Currently, an expert system is not able to replace an expert since there is always a
given portion of the problem domain that the system cannot solve. Therefore, expert
systems can become good decision support systems [Luger]. Decision support systems
(DSS) can be divided according to the tasks they perform. These tasks are: Interpretation,
Diagnosis, Monitoring, Prediction, Planning, Design, Control, Configuration, and
Selection [Luger]. In this study, the task of selecting a suitable process methodology is
required; as a result, the proposed decision support system is of selection type.
Typically, a decision support system operates in the following manner:
Users consult the DSS => DSS poses questions => Users answer questions => DSS gives
the decision => Users ask for explanation or information regarding the decision from
other sources [Luger].
18
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
of a suitable process methodology for that company. However, access to such expertise
is usually very expensive and often limited. In this study, we will try to find an automated
solution that can potentially replace an expert.
A study o f different automated systems suggests that a decision support system
would be a good candidate. An expert system is a program that relies on a body of
knowledge to perform a somewhat difficult task usually performed only by human
experts [Luger]. The principal power of an expert system is derived from the knowledge
that the system embodies rather than from search algorithms and specific reasoning
methods. An expert system successfully deals with problems for which a clear
algorithmic solution does not exist [Luger],
The knowledge is extracted from training, reading and experience and includes:
theories, facts, rules, cases, examples, etc. [Luger].
Currently, an expert system is not able to replace an expert since there is always a
given portion of the problem domain that the system cannot solve. Therefore, expert
systems can become good decision support systems [Luger]. Decision support systems
(DSS) can be divided according to the tasks they perform. These tasks are: Interpretation,
Diagnosis, Monitoring, Prediction, Planning, Design, Control, Configuration, and
Selection [Luger]. In this study, the task of selecting a suitable process methodology is
required; as a result, the proposed decision support system is o f selection type.
Typically, a decision support system operates in the following manner:
Users consult the DSS => DSS poses questions => Users answer questions => DSS gives
the decision => Users ask for explanation or information regarding the decision from
other sources [Luger].
18
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The advantages of employing a DSS include: it provides access to expertise while
the availability of the expert might be limited or costly. It captures and documents the
expertise while usually the knowledge of the experts is tacit. It improves reliability
since, unlike the expert, it does not become sick or take holidays and thus reduces the
down time due to the expert unavailability. It increases the quality since it is free of
human errors. Finally, the knowledge transfer can be easily done to the different areas or
countries [Luger].
However, a DSS can have the following disadvantages. A DSS, based on how
robust it is developed, can potentially fail. The soundness of the outcome is based on the
knowledge base (see chapter 4), and the comprehensiveness of the knowledge base
depends on the experts who have developed it; as a result, the expertise and the
development of the system can determine the reliability of the DSS. The process of
knowledge extraction in developing a DSS is extremely important, and can be very
difficult and potentially faulty. A DSS only works well in very narrow domains, so
scalability and conciseness is a problem. The conclusions provided by a DSS are very
difficult to validate; as a result, they cannot be very dependable. Also, there are some
sociological problems arising from an incorrect conclusion that the DSS supports, e.g., a
DSS cannot be sued [Luger].
2.7 Problem domain
Experts in the domain of process management with a broad knowledge of
software process management are required to be able to first evaluate an organization
based on their characteristics and second be able to recommend a process methodology
19
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The advantages of employing a DSS include: it provides access to expertise while
the availability o f the expert might be limited or costly. It captures and documents the
expertise while usually the knowledge of the experts is tacit. It improves reliability
since, unlike the expert, it does not become sick or take holidays and thus reduces the
down time due to the expert unavailability. It increases the quality since it is free of
human errors. Finally, the knowledge transfer can be easily done to the different areas or
countries [Luger].
However, a DSS can have the following disadvantages. A DSS, based on how
robust it is developed, can potentially fail. The soundness of the outcome is based on the
knowledge base (see chapter 4), and the comprehensiveness of the knowledge base
depends on the experts who have developed it; as a result, the expertise and the
development o f the system can determine the reliability o f the DSS. The process of
knowledge extraction in developing a DSS is extremely important, and can be very
difficult and potentially faulty. A DSS only works well in very narrow domains, so
scalability and conciseness is a problem. The conclusions provided by a DSS are very
difficult to validate; as a result, they cannot be very dependable. Also, there are some
sociological problems arising from an incorrect conclusion that the DSS supports, e.g., a
DSS cannot be sued [Luger].
2.7 Problem domain
Experts in the domain o f process management with a broad knowledge of
software process management are required to be able to first evaluate an organization
based on their characteristics and second be able to recommend a process methodology
19
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
suitable to such organizations. Software developers, or managers of software
development companies, are often unable to decide which type of software process they
should adopt for their respective organizations. There can be severe consequences for
adopting an unsuitable software process for a given company. In many cases, an
incompatible software process may contribute to the failure or poor outcome for the
companies that adopted it [Boehm]. Nevertheless, the expertise of such experts who are
able to provide such expertise in this field are costly and are not readily available.
As mentioned in the previous section, a DSS can provide preliminary but reliable
models in order to help the managers and software developers with an overview of their
organization's characteristics, as well as providing expert opinions on the type of
software process that they may adopt. Chapter Three presents the models, and Chapter
Four proposes the system. The primary application of the models presented in this study
is to facilitate the decision making process for the managers and software developers in
order to select an appropriate software process methodology for their company. The
models provide a concise overview of the organization and show the compatibility of
some of the company's characteristics with the two main groups of process
methodologies. They also provide an impartial decision on what process methodology
the overall company should adopt. In addition, the proposed system offers some
unbiased advice and links to further recourses so that the managers would have the option
to find more information in this regard.
20
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
suitable to such organizations. Software developers, or managers of software
development companies, are often unable to decide which type o f software process they
should adopt for their respective organizations. There can be severe consequences for
adopting an unsuitable software process for a given company. In many cases, an
incompatible software process may contribute to the failure or poor outcome for the
companies that adopted it [Boehm], Nevertheless, the expertise o f such experts who are
able to provide such expertise in this field are costly and are not readily available.
As mentioned in the previous section, a DSS can provide preliminary but reliable
models in order to help the managers and software developers with an overview of their
organization’s characteristics, as well as providing expert opinions on the type of
software process that they may adopt. Chapter Three presents the models, and Chapter
Four proposes the system. The primary application of the models presented in this study
is to facilitate the decision making process for the managers and software developers in
order to select an appropriate software process methodology for their company. The
models provide a concise overview of the organization and show the compatibility of
some of the company’s characteristics with the two main groups of process
methodologies. They also provide an impartial decision on what process methodology
the overall company should adopt. In addition, the proposed system offers some
unbiased advice and links to further recourses so that the managers would have the option
to find more information in this regard.
20
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 3
Methodology Design
The purpose of this study is to find a model, and eventually an automated system,
to solve our problem domain. Currently, there are no models or systems available to
address the issues concerning our problem domain. Existing knowledge in this field is
not clear and well defined. It is very difficult for a non-expert to be able to distinguish
the differences between different process methodologies. The boundary which separates
the two main categories of process methodologies is fuzzy. In many cases, a software
process expert is needed to be able to draw any conclusions. The skills that the experts
possess are in the form of tacit knowledge and he/she can only make a final selection
based on the information given to him/her. However, the availability of such experts is
very limited and even if an expert is found, it is very costly to employ them. Creating an
automated system in the form of an expert system can help people with limited expertise
to be able to make the selection. In the study of different expert systems, the concept of
using decision support systems comes as a solution to this problem. [Luger]. As a result,
it was decided that for this project an expert system in the form of a DSS be created.
Conventionally an expert system follows a specific life cycle in its development.
We decided to follow such a life cycle in order to develop our project. The Expert
system's life cycle has the following phases: Feasibly study, Knowledge acquisition
21
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 3
Methodology Design
The purpose o f this study is to find a model, and eventually an automated system,
to solve our problem domain. Currently, there are no models or systems available to
address the issues concerning our problem domain. Existing knowledge in this field is
not clear and well defined. It is very difficult for a non-expert to be able to distinguish
the differences between different process methodologies. The boundary which separates
the two main categories of process methodologies is fuzzy. In many cases, a software
process expert is needed to be able to draw any conclusions. The skills that the experts
possess are in the form of tacit knowledge and he/she can only make a final selection
based on the information given to him/her. However, the availability of such experts is
very limited and even if an expert is found, it is very costly to employ them. Creating an
automated system in the form of an expert system can help people with limited expertise
to be able to make the selection. In the study o f different expert systems, the concept of
using decision support systems comes as a solution to this problem. [Luger]. As a result,
it was decided that for this project an expert system in the form of a DSS be created.
Conventionally an expert system follows a specific life cycle in its development.
We decided to follow such a life cycle in order to develop our project. The Expert
system’s life cycle has the following phases: Feasibly study, Knowledge acquisition
21
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
(conceptual design), System Implementation, Testing and Validation, and Technology
Transfer (maintenance) [Luger].
3.1 Feasibility study
There are several criteria that may be employed in order to assess the feasibility of a
project such as this one. Since this project is an instance of an expert system and has a
specified problem domain we should evaluate the feasibility criteria for expert systems
technology. There are a few questions and issues that should be asked and considered in
order to evaluate the likelihood of a successful and feasible solution to a problem domain
[Luger].
• Is the problem domain too easy or too difficult? A problem domain is too difficult
to be feasible for an expert system if the problem domain needs innovation or
creativity to be solved. In our case, the innovation and the creativity issues are
solved by incorporating them in our model. As a result, the automated system
(expert system) does not need to be innovative or creative, thus it can be built.
Also the problem domain cannot be too easy. An easy problem domain relies on
common knowledge, thus there is no need for an expert system. In our case, given
our problem domain it is acknowledged that the project does not rely on common
knowledge and thus is not too easy.
• Does the task have a narrow focus? A feasible expert system should have a
focused and narrowed down problem domain since it is impossible to make an
automated solution for a vague and complex problem domain. Consequently, in
our plans we decided to narrow down the focus of our problem domain and
22
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
(conceptual design), System Implementation, Testing and Validation, and Technology
Transfer (maintenance) [Luger].
3.1 Feasibility study
There are several criteria that may be employed in order to assess the feasibility of a
project such as this one. Since this project is an instance o f an expert system and has a
specified problem domain we should evaluate the feasibility criteria for expert systems
technology. There are a few questions and issues that should be asked and considered in
order to evaluate the likelihood of a successful and feasible solution to a problem domain
[Luger],
• Is the problem domain too easy or too difficult? A problem domain is too difficult
to be feasible for an expert system if the problem domain needs innovation or
creativity to be solved. In our case, the innovation and the creativity issues are
solved by incorporating them in our model. As a result, the automated system
(expert system) does not need to be innovative or creative, thus it can be built.
Also the problem domain cannot be too easy. An easy problem domain relies on
common knowledge, thus there is no need for an expert system. In our case, given
our problem domain it is acknowledged that the project does not rely on common
knowledge and thus is not too easy.
• Does the task have a narrow focus? A feasible expert system should have a
focused and narrowed down problem domain since it is impossible to make an
automated solution for a vague and complex problem domain. Consequently, in
our plans we decided to narrow down the focus o f our problem domain and
22
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
identify a specific problem domain as mentioned in the previous chapter; that is,
to select a process methodology that best matches the characteristics and
operations of a given organization.
• Is there an automated solution to the problem domain? There must be a model
available that is comprehensible or transferable for automation, (for example, a
math equation or a qualitative model). As far as we have investigated, there was
no model readily available; however, it was determined that a model should be
created as a component of this project, and that it would become the integral part
of this study.
• Do the conventions in which the problem domain resides change frequently? If
there are frequent changes to the criteria / rules in which a solution to a problem
domain is classified, it might or probably would make the expert system obsolete
in a short matter of time. Software Process management is not an area that
changes rapidly. Hence, the criteria that deal with this problem domain would not
change rapidly. Nonetheless, we envision a mechanism in which the rules of the
system could be altered without compromising its operation. However, this
mechanism is only sketched in this thesis for future work since the formation of
such mechanism was beyond the scope of our project.
• Is there an expert available? The presence of an expert is a necessity in order to
make an expert system. I was to be the expert in this case. However, would the
expert perform demonstrably better that an amateur? Given the complexity of our
problem domain it would be hard for an amateur to perform better than the expert.
Could the skills of the expert be learned / documented? The answer was
23
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
identify a specific problem domain as mentioned in the previous chapter; that is,
to select a process methodology that best matches the characteristics and
operations o f a given organization.
• Is there an automated solution to the problem domain? There must be a model
available that is comprehensible or transferable for automation, (for example, a
math equation or a qualitative model). As far as we have investigated, there was
no model readily available; however, it was determined that a model should be
created as a component of this project, and that it would become the integral part
o f this study.
• Do the conventions in which the problem domain resides change frequently? If
there are frequent changes to the criteria / rules in which a solution to a problem
domain is classified, it might or probably would make the expert system obsolete
in a short matter of time. Software Process management is not an area that
changes rapidly. Hence, the criteria that deal with this problem domain would not
change rapidly. Nonetheless, we envision a mechanism in which the rules of the
system could be altered without compromising its operation. However, this
mechanism is only sketched in this thesis for future work since the formation of
such mechanism was beyond the scope of our project.
• Is there an expert available? The presence of an expert is a necessity in order to
make an expert system. I was to be the expert in this case. However, would the
expert perform demonstrably better that an amateur? Given the complexity o f our
problem domain it would be hard for an amateur to perform better than the expert.
Could the skills o f the expert be learned / documented? The answer was
23
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
affirmative and many articles and resources were to be consulted in order to learn
and document the skills needed for the expert system
A plan document was produced in order to outline the schedule and procedures of
the system's development. This document cited all of the life cycle phases. Each phase
include activities, deliverables, and time lines. There are four distinct phases comprised
in this plan document: Literature review, Knowledge acquisition, Development, and
Thesis write up.
3.2 Knowledge acquisition (Conceptual design)
Knowledge Extraction is the most important task in any expert system project.
Acquiring knowledge and expertise that can help design a model and subsequently make
a system is essential to expert systems and usually proves to be a major hurdle.
Knowledge acquisition stands to the system like the brain stands to the body. In this
project, knowledge extraction proved to be complicated and posed serious challenges.
One of the challenges faced was the lack of formalized knowledge. Most of the
time, knowledge existed in the form of tacit expertise, and although it has been presented
in the form of formal papers, it was extremely difficult to interpret it to suit our purpose.
Another challenge was the mismatch between the two sides of the argument in regards to
the process management. The expertise on either side made claims that their related
speciality was "the best".
In our project we lacked an expert that was knowledgeable and easily accessible
so that we could readily use his/her expert opinion. As a result, it was decided that I
24
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
affirmative and many articles and resources were to be consulted in order to leam
and document the skills needed for the expert system
A plan document was produced in order to outline the schedule and procedures of
the system’s development. This document cited all o f the life cycle phases. Each phase
include activities, deliverables, and time lines. There are four distinct phases comprised
in this plan document: Literature review, Knowledge acquisition, Development, and
Thesis write up.
3.2 Knowledge acquisition (Conceptual design)
Knowledge Extraction is the most important task in any expert system project.
Acquiring knowledge and expertise that can help design a model and subsequently make
a system is essential to expert systems and usually proves to be a major hurdle.
Knowledge acquisition stands to the system like the brain stands to the body. In this
project, knowledge extraction proved to be complicated and posed serious challenges.
One o f the challenges faced was the lack of formalized knowledge. Most of the
time, knowledge existed in the form of tacit expertise, and although it has been presented
in the form of formal papers, it was extremely difficult to interpret it to suit our purpose.
Another challenge was the mismatch between the two sides o f the argument in regards to
the process management. The expertise on either side made claims that their related
speciality was “the best”.
In our project we lacked an expert that was knowledgeable and easily accessible
so that we could readily use his/her expert opinion. As a result, it was decided that I
24
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
would acquire the knowledge and expertise that would enable me to act as an expert for
our project. This knowledge is available in the literature, but it needs to be rationalized
and objectified.
Conceptual design
Conceptual design specifies ways in which an expert system will carry out its
tasks. In such design tasks, objectives and goals are formalized and the relationships and
constraints on these tasks are defined. Finally, these aspects are structured together in the
form of a conceptual design [Luger].
The following sections contain a detailed analysis of the factors contributing to the
decision of adopting an agile or plan-driven method. The analysis is substantiated by
relevant references to existing literature as appropriate.
3.2.1 Agile and plan-driven methods' characteristics and contrast (twelve factors)
In order to find a solution applicable to our problem domain, we should look into
characteristics that are exclusive to the agile and plan-driven methods, and then find some
distinguishing factors. To do so, many references were consulted that provided
information on the differences between agile and plan-driven methodologies. This task is
complex since there has not been a lot of work done in this field and so it is difficult to
determine a clear border between agile and plan-driven methods. Barry Boehm is one of
the few experts who attempted to present an unbiased comparison between the two
methods. A great deal of knowledge and study in this field is needed in order to enable
one to determine such distinguishing factors. It is also noteworthy to mention that
25
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
would acquire the knowledge and expertise that would enable me to act as an expert for
our project. This knowledge is available in the literature, but it needs to be rationalized
and objectified.
Conceptual design
Conceptual design specifies ways in which an expert system will carry out its
tasks. In such design tasks, objectives and goals are formalized and the relationships and
constraints on these tasks are defined. Finally, these aspects are structured together in the
form of a conceptual design [Luger].
The following sections contain a detailed analysis o f the factors contributing to the
decision o f adopting an agile or plan-driven method. The analysis is substantiated by
relevant references to existing literature as appropriate.
3.2.1 Agile and plan-driven methods’ characteristics and contrast (twelve factors)
In order to find a solution applicable to our problem domain, we should look into
characteristics that are exclusive to the agile and plan-driven methods, and then find some
distinguishing factors. To do so, many references were consulted that provided
information on the differences between agile and plan-driven methodologies. This task is
complex since there has not been a lot of work done in this field and so it is difficult to
determine a clear border between agile and plan-driven methods. Barry Boehm is one of
the few experts who attempted to present an unbiased comparison between the two
methods. A great deal o f knowledge and study in this field is needed in order to enable
one to determine such distinguishing factors. It is also noteworthy to mention that
25
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
personal judgment based on such knowledge still has to be applied to draw any
meaningful conclusions.
Nevertheless, according to Boehm there are clear differences between agile and plan-
driven methods that can be categorised in four well-defined characteristics. These are
• Application Characteristics, including Primary project goals, project size, and
application environment.
• Management Characteristics, including customer relations, planning and control,
and project communications.
• Technical characteristics, including approaches to requirements definition,
development, and testing.
• Personnel characteristics, including customer characteristics, developer
characteristics, and organizational culture.
A summary of these four characteristics, and their twelve corresponding factors, is
presented here. Boehm discusses these factors at great length in chapter two of his book
Balancing Agility and discipline A guide for the perplexed [Boehm].
Application Characteristics
Primary Goals
Agile development has a primary goal that is rapid value and responsive to
change, in other words, the priority is to satisfy the customer through early and
continuous delivery. There is no return on investment analysis produced. Agile
development software is produced in rapid iterations. A reactive posture procedure -
responding to change rather than following the plan — is adopted in order to respond to an
environment distressed by rapid changes in market place and technology. [Manifesto]
26
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
personal judgment based on such knowledge still has to be applied to draw any
meaningful conclusions.
Nevertheless, according to Boehm there are clear differences between agile and plan-
driven methods that can be categorised in four well-defined characteristics. These are
• Application Characteristics, including Primary project goals, project size, and
application environment.
• Management Characteristics, including customer relations, planning and control,
and project communications.
• Technical characteristics, including approaches to requirements definition,
development, and testing.
• Personnel characteristics, including customer characteristics, developer
characteristics, and organizational culture.
A summary of these four characteristics, and their twelve corresponding factors, is
presented here. Boehm discusses these factors at great length in chapter two of his book
Balancing Agility and discipline A guide fo r the perplexed [Boehm],
Application Characteristics
Primary Goals
Agile development has a primary goal that is rapid value and responsive to
change, in other words, the priority is to satisfy the customer through early and
continuous delivery. There is no return on investment analysis produced. Agile
development software is produced in rapid iterations. A reactive posture procedure -
responding to change rather than following the plan - is adopted in order to respond to an
environment distressed by rapid changes in market place and technology. [Manifesto]
26
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The goals of plan-driven development are predictability, stability, and high-
assurance. All of the practices of the plan-driven methods are in place to support such
goals. Process improvement is focused on predictability and stability and is achieved
through increasing process capability. Using standardization, measurement, and control
can increase process capability. The Plan-driven approach is optimal for relatively stable
projects but it is not useful for unstable projects with high rates of unforeseen changes.
In case of safety-critical projects and projects with high-assurance, it is imperative to
follow the plans and use standards. It is of the essence to use the plan-driven approach
when dealing with such projects.
Size
Agile development works best for small to medium sized companies or teams.
Any number bigger than 40 people seems to prevent agile development from working
[Beck 2000]. Some sources say ten is the optimal number of people per team
[Constantine] [McBreen]. Scaling up is exceptionally difficult if it is doable at all.
Plan-driven development works better for larger organizations and thus it is not
efficient for small projects. Plan-driven methods tend to create a bureaucratic
environment that can be detrimental to smaller entities. However, if a company has more
than 150 people working on a project, it should definitely use plan-driven methods. In
addition, using plan-driven development makes it easy to expand the number of people
working on a project in later times.
27
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The goals o f plan-driven development are predictability, stability, and high-
assurance. All o f the practices of the plan-driven methods are in place to support such
goals. Process improvement is focused on predictability and stability and is achieved
through increasing process capability. Using standardization, measurement, and control
can increase process capability. The Plan-driven approach is optimal for relatively stable
projects but it is not useful for unstable projects with high rates o f unforeseen changes.
In case o f safety-critical projects and projects with high-assurance, it is imperative to
follow the plans and use standards. It is of the essence to use the plan-driven approach
when dealing with such projects.
Size
Agile development works best for small to medium sized companies or teams.
Any number bigger than 40 people seems to prevent agile development from working
[Beck 2000], Some sources say ten is the optimal number of people per team
[Constantine] [McBreen], Scaling up is exceptionally difficult if it is doable at all.
Plan-driven development works better for larger organizations and thus it is not
efficient for small projects. Plan-driven methods tend to create a bureaucratic
environment that can be detrimental to smaller entities. However, if a company has more
than 150 people working on a project, it should definitely use plan-driven methods. In
addition, using plan-driven development makes it easy to expand the number of people
working on a project in later times.
27
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Environment
Agile development is most applicable to turbulent, high change, and high-risk
environments. Agile development focuses on the product at hand and ignores problems
that might occur later. Agile development does not have any concern with the
organization beyond the project. This type of approach is not good for concepts such as
code integration, overall infrastructure optimization, scale in production, distributed
development, and cross continental users. Nevertheless, agile development is ideal for in
house development for local users or customers. Agile development assumes flexible
users to accommodate system evolution; as a result, agile development will not
accommodate the following scenarios.
• Where several independently evolved applications must subsequently be closely
integrated - "Stovepipes"
• Where temporary procedural workarounds harden into unchangeable constraints
on systems evolution and cause unnecessary rework - "information-sclerosis"
• Where the new software is incrementally replacing the old one - "Bridging
situations"
• Where a product cannot be delivered in modules, e.g., 20% of an aircraft flight
control module - "Monolithic requirements"
• Where familiarity with the system across a large, mission-critical user base must
be maintained. e.g., monthly changes to air traffic controller's operational
procedure - "Continuity requirements".
28
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Environment
Agile development is most applicable to turbulent, high change, and high-risk
environments. Agile development focuses on the product at hand and ignores problems
that might occur later. Agile development does not have any concern with the
organization beyond the project. This type of approach is not good for concepts such as
code integration, overall infrastructure optimization, scale in production, distributed
development, and cross continental users. Nevertheless, agile development is ideal for in
house development for local users or customers. Agile development assumes flexible
users to accommodate system evolution; as a result, agile development will not
accommodate the following scenarios.
• Where several independently evolved applications must subsequently be closely
integrated - “Stovepipes”
• Where temporary procedural workarounds harden into unchangeable constraints
on systems evolution and cause unnecessary rework - “information-sclerosis”
• Where the new software is incrementally replacing the old one - “Bridging
situations”
• Where a product cannot be delivered in modules, e.g., 20% of an aircraft flight
control module - “Monolithic requirements”
• Where familiarity with the system across a large, mission-critical user base must
be maintained, e.g., monthly changes to air traffic controller’s operational
procedure - “Continuity requirements”.
28
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Plan-driven development has requirements that are determinable in advance and
are relatively stable, i.e., the rate of change is 1% or less of the requirements per month.
Plan-driven development can address important issues such as product lines,
organizational concerns, and enterprise concerns, including outsourcing that spans
multiple projects. Using Plan-driven methodologies, some capabilities in areas related to
design, architecture, systems engineering and human factors will be developed. Plan
driven developments exhibit strong, quantitative process improvements for the duration
of implementation in an organization.
Management Characteristics
Customer relations
Agile development desires dedicated and collocated (on-site) customers.
Customers must be in sync with users and developers. Customers should know what they
want; their absence or lack of knowledge can be catastrophic for the project.
Plan-driven development assumes that the projects are normally on a
contract/specification base. All of the discussions are in the form of formalizing
solutions and are compiled in the document agreement. Imprecise contracts can be a
major source of stress, incompatible expectations, and a lack of trust. In order to achieve
a successful project, the stakeholders must trust the developing organization. In these
cases, process maturity as is defined and rated by most plan-driven approaches can be a
source of trust and confidence.
29
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Plan-driven development has requirements that are determinable in advance and
are relatively stable, i.e., the rate o f change is 1% or less of the requirements per month.
Plan-driven development can address important issues such as product lines,
organizational concerns, and enterprise concerns, including outsourcing that spans
multiple projects. Using Plan-driven methodologies, some capabilities in areas related to
design, architecture, systems engineering and human factors will be developed. Plan
driven developments exhibit strong, quantitative process improvements for the duration
of implementation in an organization.
Management Characteristics
Customer relations
Agile development desires dedicated and collocated (on-site) customers.
Customers must be in sync with users and developers. Customers should know what they
want; their absence or lack of knowledge can be catastrophic for the project.
Plan-driven development assumes that the projects are normally on a
contract/specification base. All of the discussions are in the form of formalizing
solutions and are compiled in the document agreement. Imprecise contracts can be a
major source o f stress, incompatible expectations, and a lack o f trust. In order to achieve
a successful project, the stakeholders must trust the developing organization. In these
cases, process maturity as is defined and rated by most plan-driven approaches can be a
source o f trust and confidence.
29
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Planning and Control
Agile development treats planning as a means to an end. Approximately 20% of
the time it is used for planning/re-planning in agile approaches. The speed comes from
the tacit interpersonal knowledge rather than the explicit documented knowledge as
represented in plans. Agile development assumes pair-programming, stand-up meetings,
all-hands meetings, shared code ownership, and on site development, as instances of
planning. Planning is more about developing tacit knowledge than anything else [Beck].
Plan-driven development uses planning to anchor the process and provides broad-
spectrum communications within the organization. Plans take a large portion of the
requirement document and rely heavily on schedules, milestones, procedures,
requirements, architecture, and standards. Historical data is preserved for accurate future
projections. Plans make explicit expectations and form relationships between various
project efforts.
Project Communication
Agile development mainly relies on tacit and interpersonal knowledge.
Knowledge is shared across the organization as experienced people work on more tasks
with less experienced people. Communication is frequent and person-to-person.
However, the assumption that everybody's tacit knowledge is consistent across the
organization is extremely risky. For a team with n members, there are n(n-1)/2 different
interpersonal communication paths, which shows how difficult and complex a project can
become once the number of people on a project increases (scalability problems).
30
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Planning and Control
Agile development treats planning as a means to an end. Approximately 20% of
the time it is used for planning/re-planning in agile approaches. The speed comes from
the tacit interpersonal knowledge rather than the explicit documented knowledge as
represented in plans. Agile development assumes pair-programming, stand-up meetings,
all-hands meetings, shared code ownership, and on site development, as instances of
planning. Planning is more about developing tacit knowledge than anything else [Beck],
Plan-driven development uses planning to anchor the process and provides broad-
spectrum communications within the organization. Plans take a large portion of the
requirement document and rely heavily on schedules, milestones, procedures,
requirements, architecture, and standards. Historical data is preserved for accurate future
projections. Plans make explicit expectations and form relationships between various
project efforts.
Project Communication
Agile development mainly relies on tacit and interpersonal knowledge.
Knowledge is shared across the organization as experienced people work on more tasks
with less experienced people. Communication is frequent and person-to-person.
However, the assumption that everybody’s tacit knowledge is consistent across the
organization is extremely risky. For a team with n members, there are n(n-l)/2 different
interpersonal communication paths, which shows how difficult and complex a project can
become once the number of people on a project increases (scalability problems).
30
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Plan-driven development relies on explicit documented knowledge. Most of the
communication happens one way in the form of progress reports, process descriptions
etc.
It is important to note that both approaches use both types of knowledge (explicit
and implicit), for instance, agile development's source code and test cases are explicit
knowledge. In organizations using plan-driven methodologies, people would not be able
to get along with each other without some type of interpersonal communication. Also, it
is noteworthy to mention that agile development adds documents when they are needed
whereas plan-driven development subtracts documents when they are not needed. In
addition, it is observed that less experienced teams tend to create more documentation as
a security blanket, where it will generally drive the project to create more documentation
than the actual work.
Technical Characteristics
Requirements
Agile development's requirements are in the form of adjustable and informal
stories. Requirements go through rapid iterations and are prioritized by users.
Negotiations between developers and users or customers determine the contents of the
next iteration that normally happens monthly.
Plan-driven methods' requirements are specific, formalised, complete, consistent,
traceable, and testable. For the most part, such requirements lack the concept of user
prioritization. CMMI for example, included integrated teaming, requirements
development, and risk management concepts in their approach. Plan-driven development
31
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Plan-driven development relies on explicit documented knowledge. Most of the
communication happens one way in the form of progress reports, process descriptions
etc.
It is important to note that both approaches use both types of knowledge (explicit
and implicit), for instance, agile development’s source code and test cases are explicit
knowledge. In organizations using plan-driven methodologies, people would not be able
to get along with each other without some type o f interpersonal communication. Also, it
is noteworthy to mention that agile development adds documents when they are needed
whereas plan-driven development subtracts documents when they are not needed. In
addition, it is observed that less experienced teams tend to create more documentation as
a security blanket, where it will generally drive the project to create more documentation
than the actual work.
Technical Characteristics
Requirements
Agile development’s requirements are in the form of adjustable and informal
stories. Requirements go through rapid iterations and are prioritized by users.
Negotiations between developers and users or customers determine the contents of the
next iteration that normally happens monthly.
Plan-driven methods’ requirements are specific, formalised, complete, consistent,
traceable, and testable. For the most part, such requirements lack the concept o f user
prioritization. CMMI for example, included integrated teaming, requirements
development, and risk management concepts in their approach. Plan-driven development
31
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
handles non-functional requirements, such as reliability, throughput, real-time deadline
satisfaction, and scalability in their practices. For plan-driven methods, quality is not an
"add on" concept; rather, it is a necessity.
Development
Agile development uses simple design; design elements emerge as functionality is
implemented. In agile development, extra features are not designed unless needed. Agile
development proponents assumes that the cost of refactoring is low and they believe that
the code added for new features will never be used due to changes in the requirements.
Such an outlook with regards to design is interpreted as program efficiency by agile
development advocates. They commonly use the famous phrase of "You aren't going to
need it (YAGNI)". However, the assumption that rework can be achieved with a low
cost is not always guaranteed. The following are some examples of problems that can
occur when early and simple design decisions result in foreseeable changes that would
cause a breakage in design ("architecture breakers"):
• When the application and the user base become larger
• Escalating reliability, throughput, response time, or other quality attributes during
the development within tightly specified real-time control loops
• Multinational or multilingual operations
Plan-driven methodology by nature incorporates planning and architecture-based
designs. Such architecture will enable software reuse across product lines, and therefore
will result in rapid development and efficiency. However, architecture can waste time in
32
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
handles non-functional requirements, such as reliability, throughput, real-time deadline
satisfaction, and scalability in their practices. For plan-driven methods, quality is not an
“add on” concept; rather, it is a necessity.
Development
Agile development uses simple design; design elements emerge as functionality is
implemented. In agile development, extra features are not designed unless needed. Agile
development proponents assumes that the cost of refactoring is low and they believe that
the code added for new features will never be used due to changes in the requirements.
Such an outlook with regards to design is interpreted as program efficiency by agile
development advocates. They commonly use the famous phrase o f “You aren’t going to
need it (YAGNI)”. However, the assumption that rework can be achieved with a low
cost is not always guaranteed. The following are some examples of problems that can
occur when early and simple design decisions result in foreseeable changes that would
cause a breakage in design (“architecture breakers”):
• When the application and the user base become larger
• Escalating reliability, throughput, response time, or other quality attributes during
the development within tightly specified real-time control loops
• Multinational or multilingual operations
Plan-driven methodology by nature incorporates planning and architecture-based
designs. Such architecture will enable software reuse across product lines, and therefore
will result in rapid development and efficiency. However, architecture can waste time in
32
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
a rapidly changing environment. In such cases the "Big Design Up Front (BDUF)"
practice is ineffective.
Testing
Agile development performs tests in short increments. The practice of pair
programming theoretically would remove more code defects as the code is being
generated. The following are the advantages of continuous regression testing performed
in agile methods:
• Requirements are testable
• Avoids documentation for requirements
• Enables incremental build-and-test
• Helps modularize the application
• Results in explicit working knowledge of the application
However, such practices have the following disadvantages:
• Rapid changes causes breakage in the tests
• Mismatches and race problems between code and test
• Lack of testing expertise can cause inadequate test coverage
Plan-driven development's testing strategies mainly fix problems by developing
and checking requirements and architectural specifications. Usually organizations
adopting plan-driven methodologies would invest in automated test suits. The practice of
testing in plan-driven development would create numerous documents that may or may
33
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
a rapidly changing environment. In such cases the “Big Design Up Front (BDUF)”
practice is ineffective.
Testing
Agile development performs tests in short increments. The practice of pair
programming theoretically would remove more code defects as the code is being
generated. The following are the advantages of continuous regression testing performed
in agile methods:
• Requirements are testable
• Avoids documentation for requirements
• Enables incremental build-and-test
• Helps modularize the application
• Results in explicit working knowledge of the application
However, such practices have the following disadvantages:
• Rapid changes causes breakage in the tests
• Mismatches and race problems between code and test
• Lack of testing expertise can cause inadequate test coverage
Plan-driven development’s testing strategies mainly fix problems by developing
and checking requirements and architectural specifications. Usually organizations
adopting plan-driven methodologies would invest in automated test suits. The practice of
testing in plan-driven development would create numerous documents that may or may
33
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
not be used in other projects. Such practices tend to create an independent testing
bureaucracy that is separate from customers or developers.
Personnel Characteristics
Customers
Agile development needs a Collaborative, Representative, Authorized,
Committed, and Knowledgeable (CRACK) customer. A customer that lacks one or more
of the mentioned traits can impose a significant risk to the success of an agile
development project.
Plan-driven customers do not need to be fully Collaborative, Representative,
Authorized, Committed, and Knowledgeable. They can manage with partially
Collaborative, Representative, Authorized, Committed, and Knowledgeable customers.
However, managers who prioritize contract compliance above project success have to be
careful. In some plan-driven methodologies, the Customer-Manager relationship can
become bureaucratic.
Developers
Agile methods developers thrive on amicability, talent, skill, and interpersonal
communication. However, agile development advocates assume that all of the people
working in their team possess those premium qualities.
Plan-driven development can perform better with less experienced people. Alistair
Cockburn classifies the people working on a software development team based on the
level of software method understanding and use. Table 6 explains the 5 levels of software
developers according to Cockburn [Cockburn].
34
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
not be used in other projects. Such practices tend to create an independent testing
bureaucracy that is separate from customers or developers.
Personnel Characteristics
Customers
Agile development needs a Collaborative, Representative, Authorized,
Committed, and Knowledgeable (CRACK) customer. A customer that lacks one or more
of the mentioned traits can impose a significant risk to the success of an agile
development project.
Plan-driven customers do not need to be fully Collaborative, Representative,
Authorized, Committed, and Knowledgeable. They can manage with partially
Collaborative, Representative, Authorized, Committed, and Knowledgeable customers.
However, managers who prioritize contract compliance above project success have to be
careful. In some plan-driven methodologies, the Customer-Manager relationship can
become bureaucratic.
Developers
Agile methods developers thrive on amicability, talent, skill, and interpersonal
communication. However, agile development advocates assume that all o f the people
working in their team possess those premium qualities.
Plan-driven development can perform better with less experienced people. Alistair
Cockbum classifies the people working on a software development team based on the
level of software method understanding and use. Table 6 explains the 5 levels of software
developers according to Cockbum [Cockbum],
34
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 6. Levels of Software Method Understanding and Use (after [Cockburn]).
Level Characteristics 3 Able to revise a method (break its rules) to fit an unprecedented
new situation 2 Able to tailor a method to fit a precedented new situation
1A With training, able to perform discretionary method steps (e.g. sizing stories to fit increments, composing patterns, compound refactoring, complex Code integration). With experience, can become level 2
1B With training, able to perform procedural method steps (e.g. coding a simple method, simple refactoring, following coding standards and CM procedures, running tests). With experience, can master some level lA skills.
-1 May have technical skills, but unable or unwilling to collaborate or follow shared methods
Culture
The goal of Agile development is to make people feel comfortable and to
empower them. In this approach, people are empowered when they are trusted to do
whatever work is necessary. This concept is referred to a culture with many degrees of
freedom.
In Plan-driven methods, people feel comfortable and empowered when their roles
are defined and they can follow a clear policy and procedures. This is referred to as a
production line environment.
It is noteworthy to mention that once the organization's culture is well
established, it is difficult to change it. The change in culture that comes with the
implementation of agile methodologies is radical. In plan-driven methodologies,
especially CMM types of methods, culture change should happen in the very early stages.
However, the adoption of CMMI is a culture change in of itself.
For a snapshot of the Agile and plan-driven methods contrast, see table 7.
35
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 6. Levels of Software Method Understanding and Use (after [Cockbum]).
Level Characteristics3 Able to revise a method (break its rules) to fit an unprecedented
new situation2 Able to tailor a method to fit a precedented new situation
1A With training, able to perform discretionary method steps (e.g. sizing stories to fit increments, composing patterns, compound refactoring, complex Code integration). With experience, can become level 2
IB With training, able to perform procedural method steps (e.g. coding a simple method, simple refactoring, following coding standards and CM procedures, running tests). With experience, can master some level 1A skills.
-1 May have technical skills, but unable or unwilling to collaborate or follow shared methods
Culture
The goal of Agile development is to make people feel comfortable and to
empower them. In this approach, people are empowered when they are trusted to do
whatever work is necessary. This concept is referred to a culture with many degrees of
freedom.
In Plan-driven methods, people feel comfortable and empowered when their roles
are defined and they can follow a clear policy and procedures. This is referred to as a
production line environment.
It is noteworthy to mention that once the organization’s culture is well
established, it is difficult to change it. The change in culture that comes with the
implementation of agile methodologies is radical. In plan-driven methodologies,
especially CMM types of methods, culture change should happen in the very early stages.
However, the adoption of CMMI is a culture change in of itself.
For a snapshot of the Agile and plan-driven methods contrast, see table 7.
35
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 8 illustrates some of the realities and misconceptions about agile and plan-driven
methods.
Table 7. Agile and Plan-driven Methods Contrasts. (after [Boehm]).
Characteristics Agile Plan-driven Application Primary Goals Rapid Value; Responding to
change Predictability; High Assurance
Size Smaller teams and projects Larger teams and projects Environment Turbulent; High change;
Project-focused Stable; Low-change; project/organization focused
Management Customer relations
Dedicated on-site customers; focused on prioritised increments
As-needed customer interactions; focused on contract provisions
Planning and Control
Internalized plans; qualitative control
Documented plans; quantitative control
Communications Tacit interpersonal knowledge Explicit documented knowledge Technical Requirements Prioritized informal stories and
test cases; undergoing unforeseen change
Formalized project; capability; interface, quality, foreseeable evolution requirements
Development Simple design; short increments; refactoring assumed inexpensive
Extensive design; longer increments; refactoring assumed expensive
Test Executable test cases define requirements; testing
Documented test plans and procedures
Personnel Customers Dedicated, collocated CRACK*
performers CRACK* performers, not always collocated
Developers At least 30% full-time Cockburn level 2 and 3 experts; no Level 1B or —1 personnel
50% Cockburn Level 1 and 3s early; 10% throughout; 30% Level lB's workable; no level —1s**
Culture Comfort and empowerment via many degrees of freedom (thriving on chaos)
Comfort and empowerment via framework of policies (thriving on order)
* Collaborative, Responsive, Authorized, Committed, Knowledgeable ** These numbers will particularly vary with the complexity of the application
36
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 8 illustrates some o f the realities and misconceptions about agile and plan-driven
methods.
Table 7. Agile and Plan-driven Methods Contrasts, (after [Boehm]).
Characteristics Agile Plan-drivenApplicationPrimary Goals Rapid Value; Responding to
changePredictability; High Assurance
Size Smaller teams and projects Larger teams and projectsEnvironment Turbulent; High change;
Project-focusedStable; Low-change; project/organization focused
ManagementCustomerrelations
Dedicated on-site customers; focused on prioritised increments
As-needed customer interactions; focused on contract provisions
Planning and Control
Internalized plans; qualitative control
Documented plans; quantitative control
Communications Tacit interpersonal knowledge Explicit documented knowledgeTechnicalRequirements Prioritized informal stories and
test cases; undergoing unforeseen change
Formalized project; capability; interface, quality, foreseeable evolution requirements
Development Simple design; short increments; refactoring assumed inexpensive
Extensive design; longer increments; refactoring assumed expensive
Test Executable test cases define requirements; testing
Documented test plans and procedures
PersonnelCustomers Dedicated, collocated CRACK*
performersCRACK* performers, not always collocated
Developers At least 30% full-time Cockbum level 2 and 3 experts; no Level IB o r-1 personnel
50% Cockbum Level 1 and 3 s early; 10% throughout; 30% Level IB ’s workable; no level -Is**
Culture Comfort and empowerment via many degrees of freedom (thriving on chaos)
Comfort and empowerment via framework o f policies (thriving on order)
* Collaborative, Responsive, Authorized, Committed, ** These numbers will particularly vary with the comp
Knowledgeable lexity o f the application
36
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 8. Misconceptions and Realities about Agile and Plan-driven Methods (After
[Boehm]).
Misconceptions Realities Plan-driven Methods
Plan-driven methods are uniformly bureaucratic
Overly bureaucratic cultures and methods can stultify software development
Having documented plans guarantees compliance with plans
Not necessarily
Plan-Driven methods can succeed with a lack of talented people
Plan-driven methods can succeed with smaller percentage of talented people
High maturity guarantees success Explicit, documented plans provide more of a safety net than tacit plan
There are no penalties in applying plan- driven methods when change is unforeseeable
Plan-driven methods work best in accommodating foreseeable change
Agile Methods Agile methods don't plan Agile methods get much of their speed and
agility through creating and exploiting tacit knowledge
Agile methods require uniformly talented people
Agile methods work best when there is a critical mass of highly talented people involved
Agile methods can make the slope of cost- to-change vs. time curve uniformly flat
Agile methods can reduce the slope of the cost-to-change vs. time curve
YAGNI is a universally safe assumption, and won't alienate your customers
YAGNI helps handle unforeseeable change, but is risky when change is foreseeable
37
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 8. Misconceptions and Realities about Agile and Plan-driven Methods (After
[Boehm]).
Misconceptions RealitiesPlan-driven Methods
Plan-driven methods are uniformly bureaucratic
Overly bureaucratic cultures and methods can stultify software development
Having documented plans guarantees compliance with plans
Not necessarily
Plan-Driven methods can succeed with a lack of talented people
Plan-driven methods can succeed with smaller percentage o f talented people
High maturity guarantees success Explicit, documented plans provide more of a safety net than tacit plan
There are no penalties in applying plan- driven methods when change is unforeseeable
Plan-driven methods work best in accommodating foreseeable change
Agile MethodsAgile methods don’t plan Agile methods get much of their speed and
agility through creating and exploiting tacit knowledge
Agile methods require uniformly talented people
Agile methods work best when there is a critical mass of highly talented people involved
Agile methods can make the slope of cost- to-change vs. time curve uniformly flat
Agile methods can reduce the slope o f the cost-to-change vs. time curve
YAGNI is a universally safe assumption, and won’t alienate your customers
YAGNI helps handle unforeseeable change, but is risky when change is foreseeable
37
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
3.2.2 Validating Boehm's work
In the last section, we discussed in detail the characteristics and factors that
differentiate agile and plan-driven methods. Boehm refers to these differences as home
grounds for agile and plan-driven methodologies. Boehm has come up with this set
mostly using intuition in looking at the workings of each method. He has also used some
real life examples to justify his claims. Consistent with one of the requirements of this
project, it was mandated that we would independently validate the soundness of Boehm's
ideas.
In order to validate Boehm's work, we needed to go through several case studies
in the literature. We discovered that many case studies are available to provide valuable
information that can be used in order to validate Boehm's work. Thirty articles were
chosen out of a pool of over 200 candidates, mostly obtained from the Agile Alliance
web site and the SEI publications.
The main criterion for choosing a case study was that it mainly had to deal with a
real life story of an organization or project that adopted a given process methodology. If
so, the other criterion used is whether any of the twelve factors mentioned by Boehm had
anything to do with the success or failure of the organization.
For example, one case study would describe a company with 2000 employees, a
critical primary goal, and no on-site customers, but they have chosen to use agile
development. According to Boehm, such a company would fail or do poorly. The article
pertaining to such a company would say that indeed the company assumed many losses
and this would actually validate Boehm's claims that those three mentioned factors were
significant in the selection of a process methodology. The thirty articles were examined
38
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
3.2.2 Validating Boehm’s work
In the last section, we discussed in detail the characteristics and factors that
differentiate agile and plan-driven methods. Boehm refers to these differences as home
grounds for agile and plan-driven methodologies. Boehm has come up with this set
mostly using intuition in looking at the workings of each method. He has also used some
real life examples to justify his claims. Consistent with one of the requirements of this
project, it was mandated that we would independently validate the soundness of Boehm’s
ideas.
In order to validate Boehm’s work, we needed to go through several case studies
in the literature. We discovered that many case studies are available to provide valuable
information that can be used in order to validate Boehm’s work. Thirty articles were
chosen out o f a pool of over 200 candidates, mostly obtained from the Agile Alliance
web site and the SEI publications.
The main criterion for choosing a case study was that it mainly had to deal with a
real life story o f an organization or project that adopted a given process methodology. If
so, the other criterion used is whether any of the twelve factors mentioned by Boehm had
anything to do with the success or failure o f the organization.
For example, one case study would describe a company with 2000 employees, a
critical primary goal, and no on-site customers, but they have chosen to use agile
development. According to Boehm, such a company would fail or do poorly. The article
pertaining to such a company would say that indeed the company assumed many losses
and this would actually validate Boehm’s claims that those three mentioned factors were
significant in the selection of a process methodology. The thirty articles were examined
38
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
comprehensively. Most of these articles were case studies or empirical software
engineering reports. It is worth mentioning that sifting through more than 200 articles
and choosing the ones that were to some extent relevant to our task required a
considerable amount of time and experience. In addition, trying to decipher the
characteristics and factors from plain unorganized text proved to be a challenge. In most
of the cases, the terminologies were different than the ones used by Boehm. Some of the
concepts were easy to decipher, (for example the size of the organization), but for the
most part, it was difficult to interpret the more complex factors. For example, factors
such as culture were almost impossible to determine.
Table 9 provides a snapshot of all of the thirty articles and their relevance in
validating Boehm's work. The article number, whether it is an agile or plan-driven
related article, and how relevant it was to our task is shown on the first column. The next
four columns show whether Boehm's four characteristics and their factors were
positively or negatively validated. A legend appears after the last page of table 9.
The references and an abstract for the thirty articles are provided in Appendix C
39
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
comprehensively. Most of these articles were case studies or empirical software
engineering reports. It is worth mentioning that sifting through more than 200 articles
and choosing the ones that were to some extent relevant to our task required a
considerable amount o f time and experience. In addition, trying to decipher the
characteristics and factors from plain unorganized text proved to be a challenge. In most
of the cases, the terminologies were different than the ones used by Boehm. Some of the
concepts were easy to decipher, (for example the size of the organization), but for the
most part, it was difficult to interpret the more complex factors. For example, factors
such as culture were almost impossible to determine.
Table 9 provides a snapshot of all of the thirty articles and their relevance in
validating Boehm’s work. The article number, whether it is an agile or plan-driven
related article, and how relevant it was to our task is shown on the first column. The next
four columns show whether Boehm’s four characteristics and their factors were
positively or negatively validated. A legend appears after the last page o f table 9.
The references and an abstract for the thirty articles are provided in Appendix C
39
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 9. Validating Boehm's Work using actual Case studies
A r t i c 1 e
Application Characteristics - Primary goals - Size - Environment
Management Characteristics - Customer relations - Planning & Control - Project Communication
Technical Char. - Requirements - Development - Testing
Personnel Char. - Customers - Developers - Culture
[1] (+Environment, (+ Simple (+ Fast (+ A turbulent) planning, Development) Developers) ** (+Primary
goals, helpdesk)
helpdesk) (+ Customer
relations) [2] N/A N/A (+ N/A A Development)
[3] (+Size, 50) N/A N/A (+ culture, XP A (+Primary will fail * Goals, service) without it )
[4] (+ (+ Project (+ Development, (+ A Environment, communication, incremental) Developers) * high change) large room) (+Testing, as
code written)
[5] N/A 0 N/A 0 A [6] N/A (+Planning) (+ N/A A Development)
(+Testing)
[7] N/A (+ Customer N/A (+Customer, A relations) on-site)
(+ Project communication)
[8] (+Environment, (+Planning & 0 0 A turbulent) Control) * (+Primary
goals) (+ Project
communication)
[9] (+Primary (+ Project (+ (+ Customer, A goals) communication, Development) onsite)
*** (+Size,<100) pair programming)
(+Testing) (+Culture, years)
(+Developers) [10] N/A N/A N/A N/A
A
40
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 9. Validating Boehm’s Work using actual Case studies
Artic1e
ApplicationCharacteristics- Primary goals- Size- Environment
ManagementCharacteristics- Customer relations- Planning & Control- Project Communication
TechnicalChar.- Requirements- Development- Testing
PersonnelChar.- Customers- Developers- Culture
[1] (+Environment, (+ Simple (+ Fast (+A**
turbulent)(+Primary
goals,helpdesk)
planning, helpdesk)
(+ Customer relations)
Development) Developers)
[2]A
N/A N/A (+Development)
N/A
[3]A*
(+Size, 50) (+Primary
Goals, service)
N/A N/A (+ culture, XP will fail
without i t )[4] (+ (+ Project (+ Development, (+A Environment, communication, incremental) Developers)* high change) large room) (+Testing, as
code written)[5]A
N/A 0 N/A 0
[6]A
N/A (+Planning) (+Development)
(+Testing)
N/A
[7]A
N/A (+ Customer relations)(+ Project
communication)
N/A (+Customer,on-site)
[8]A*
(-(-Environment,turbulent)(+Primary
goals)
(+Planning & Control)
(+ Project communication)
0 0
[9] (+Primary (+ Project (+ (+ Customer,A goals) communication, Development) onsite)
*** (+Size,<100) pairprogramming)
(+Testing) (+Culture,years)
(+Developers)[10]At
N/A N/A N/A N/A
40
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 9. Continued
[11] A *
(+1-Environment)
0 (+ Development)
(+Developers)
[12] N/A N/A (+ N/A A Development)
[13] 0 0 0 0 A
[14] (+Environment, 0 0 0 A turbulent)
(+Primary goals)
[15] N/A N/A (+ N/A A Development)
(+Testing) [16] N/A N/A (+ (+Developers)
A Development) [17] (+Environment, 0 (+ 0 A turbulent, less Development) * bureaucracy) (+Testing)
(+Size <25) [18] (+Environment, (+ Project (+ Development, 0
A turbulent) communication, rapid) * (+Primary sharing data)
Goals) (+ Customer relations)
[19] 0 (+ Project 0 (+Developers) A communication) *
[20] (+Environment, (+ Project (+ Development, (+Customer, A high risk) communication) continuous) on-site) * (+Testing)
[21] (+Primary (+Planning and (+Requirements) (+Developers) P Goals, process control) (+Development) ** improvement)
(+Environment, stable)
(+Project communication)
(+Customer (+Size, IRS) Relations)
[22] (+Environment (+Planning and 0 0 P ) control) * (+Primary
goals) (+Project
communication)
41
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 9. Continued
[11]A*
(+/-Environment)
0 (+Development)
(+Developers)
[12]A
N/A N/A (+Development)
N/A
[13]A
0 0 0 0
[14]A
(+Environment,turbulent)(+Primary
goals)
0 0 0
[15]A
N/A N/A (+Development)
(+Testing)
N/A
[16]A
N/A N/A (+Development)
(+Developers)
[17]A*
(+Environment, turbulent, less bureaucracy) (+Size <25)
0 (+Development)
(+Testing)
0
[18]A*
(+Environment,turbulent)(+Primary
Goals)
(+ Project communication,
sharing data) (+ Customer
relations)
(+ Development, rapid)
0
[19]A*
0 (+ Project communication)
0 (+Developers)
[20]A*
(+Environment, high risk)
(+ Project communication)
(+ Development, continuous) (+Testing)
(+Customer,on-site)
[21]P**
(+Primary Goals, process improvement)
(+Environment, stable)
(+Size, IRS)
(+Planning and control)
(+Project communication)
(+Customer Relations)
(+Requirements)(+Development)
(+Developers)
[22]P*
(+Environment)
(+Primarygoals)
(+Planning and control)
(+Project communication)
0 0
41
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 9. Continued
[23] P
(+Primary goals)
(+Customer relations)
(+Development) N/A
[24] (+Primary (+Planning and (+Development) 0 P goals) control) * (-Size) (+Customer
relations, return on investment)
[25] N/A (+Customer (+Testing) N/A P relations,
maintenance) [26] (+Environment (+Planning and 0 (+Developers)
P ) control) (+Customer Relations)
[27] (+Primary (+Customer (+Development, 0 P goals) Relations, less defects, * (+Size, GM,
Boeing) satisfaction, return
on investment) cheaper, faster,
quality) [28] (+Size) (+Customer (+Developers)
P (+Environment Relations, return * ) on investment)
[29] N/A N/A N/A N/A I
[30] (+Primary (+Customer (+Development, 0 P goals, process
improvement) relations, return on investment)
faster)
$ There was no mention of any factors in these articles however, reading them gave some ideas indirectly applicable to validating Boehm's work.
Table Legend: N/A : Not applicable, no mention of the factor
Confirms that the factor played a role Refutes that the factor played a role
+/- Neither confirmed nor refuted that the factor played any role but mentions the factor
o Not able to comprehend whether the factor played any role A Agile related case study / article P Plan-driven related case study / article
Good article (that was easy to validated Boehm's work) ** Very Good Article (that was easy to validated Boehm's work) *** Couldn't be better (that was easy to validated Boehm's work)
42
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 9. Continued
[23]P
(+Primarygoals)
(+Customerrelations)
(+Development) N/A
[24]P*
(+Primarygoals)(-Size)
(+Planning and control)
(+Customer relations, return on investment)
(+Development) 0
[25]P
N/A (+Customerrelations,
maintenance)
(+Testing) N/A
[26]P
(+Environment)
(+Planning and control)
(+Customer Relations)
0 (+Developers)
[27]P*
(+Primary goals)
(+Size, GM, Boeing)
(+Customer Relations,
satisfaction, return on investment)
(+Development, less defects,
cheaper, faster, quality)
0
[28]P*
(+Size)(+Environment
)
(+Customer Relations, return on investment)
(+Developers)
[29]J
N/A N/A N/A N/A
[30]P
(+Primary goals, process improvement)
(+Customer relations, return on investment)
(+Development,faster)
0
| There was no mention of any factors in these articles however, reading them gave some ideas indirectly applicable to validating Boehm’s work.
Table Legend:N/A +
+ / -
oAP *
* *
42
Not applicable, no mention of the factor Confirms that the factor played a role Refutes that the factor played a roleNeither confirmed nor refuted that the factor played any role but mentions the factorNot able to comprehend whether the factor played any roleAgile related case study / articlePlan-driven related case study / articleGood article (that was easy to validated Boehm’s work)Very Good Article (that was easy to validated Boehm’s work)Couldn’t be better (that was easy to validated Boehm’s work)
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Observations on validation of Boehm's work
Following the reading and analysis of the thirty relevant articles, some
observations and rulings were made. We categorised such observations into three sets:
Raw data observations, In depth analysis, and Additional remarks.
Raw data observations
The raw data observations provide the numeric value for the number of times a
factor was mentioned positively or negatively in order to support Boehm's claim. For
example, the factor environment was mentioned in eleven articles and in those articles it
played a positive role in confirming Boehm's work. We were not able to find any article
that would refute Boehm's claims and nineteen articles did not mention this factor as one
of the important issues to their success or failure.
Based on the comprehension arising from the articles, a decision was made. The
decision is in the form of "pass" or "fail" and indicates whether the articles validate that a
given Boehm factor is a relevant issue in selecting a software process. The decision also
has six levels of confidence that indicates how convincing the ruling is. These levels are:
very high confidence, high confidence, moderately high confidence, moderate
confidence, low confidence, and very low confidence. This data is summarized in table
10.
43
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Observations on validation of Boehm’s work
Following the reading and analysis of the thirty relevant articles, some
observations and rulings were made. We categorised such observations into three sets:
Raw data observations, In depth analysis, and Additional remarks.
Raw data observations
The raw data observations provide the numeric value for the number of times a
factor was mentioned positively or negatively in order to support Boehm’s claim. For
example, the factor environment was mentioned in eleven articles and in those articles it
played a positive role in confirming Boehm’s work. We were not able to find any article
that would refute Boehm’s claims and nineteen articles did not mention this factor as one
o f the important issues to their success or failure.
Based on the comprehension arising from the articles, a decision was made. The
decision is in the form of “pass” or “fail” and indicates whether the articles validate that a
given Boehm factor is a relevant issue in selecting a software process. The decision also
has six levels o f confidence that indicates how convincing the ruling is. These levels are:
very high confidence, high confidence, moderately high confidence, moderate
confidence, low confidence, and very low confidence. This data is summarized in table
10.
43
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 10. Criteria matrix.
No.
Positive
No.
Negative
No.
no mention
Confidence Decision
Primary goals 12 0 18 High Pass
Size 6 1 23 Moderate Pass
Environment 11 0 19 High Pass
Customer relations 11 0 19 High Pass
Planning and Control 7 0 23 Moderate Pass
Project
Communication
9 0 21 Moderately
High
Pass
Requirements 1 0 29 Low Pass
Development 17 0 13 Very High Pass
Testing 7 0 23 Moderate Pass
Customers 3 1 26 Low Pass
Developers 9 0 21 Moderate Pass
Culture 2 0 28 Very low Pass
In depth analysis
The following observations were made analysing the thirty articles:
• In dealing with Primary goals, if an organization treats "continuous process
improvement" as one of its primary goals, then they are constrained to adopt a
plan-driven approach. However, being responsive to change would be the
defining criteria for agile development.
44
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 10. Criteria matrix.
No.
Positive
No.
Negative
No.
no mention
Confidence Decision
Primary goals 12 0 18 High Pass
Size 6 1 23 Moderate Pass
Environment 11 0 19 High Pass
Customer relations 11 0 19 High Pass
Planning and Control 7 0 23 Moderate Pass
Project
Communication
9 0 21 Moderately
High
Pass
Requirements 1 0 29 Low Pass
Development 17 0 13 Very High Pass
Testing 7 0 23 Moderate Pass
Customers 3 1 26 Low Pass
Developers 9 0 21 Moderate Pass
Culture 2 0 28 Very low Pass
In depth analysis
The following observations were made analysing the thirty articles:
• In dealing with Primary goals, if an organization treats “continuous process
improvement” as one of its primary goals, then they are constrained to adopt a
plan-driven approach. However, being responsive to change would be the
defining criteria for agile development.
44
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
• A turbulent environment can definitely be properly addressed through agile
development, whereas for plan-driven methods the task would be to reduce the
turbulence before doing anything else.
• Except for one successful experience, the plan-driven approach was successful if
the number of people on a project is more than 150. A project of 10-150 people is
the zone in which one might be able to use either methodologies. Agile
development is very efficient for teams with less than 50 employees.
• Planning and control is important with plan-driven methods where in agile
development people are empowered if they are not under direct scrutiny.
• Customer relations, especially the concept of customer satisfaction by means of
delivering on time, delivering quality software, and return on investment is
addressed properly by plan-driven methods.
• Project communication was very successful through practices such as pair
programming, stand up meetings, etc., that are addressed through agile
development. The communications in Plan-driven approaches were done mainly
through documentation.
• In the case of Requirements, we were not able to find conclusive evidence that
either of the models succeeded or failed.
• For Development, both agile development and plan-driven methods had a
substantial amount of evidence in regards to the success of their corresponding
development practices.
• Although testing was mentioned often in agile development, it can be argued that
testing while coding ignores other aspects of testing such as the acceptance test
45
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
• A turbulent environment can definitely be properly addressed through agile
development, whereas for plan-driven methods the task would be to reduce the
turbulence before doing anything else.
• Except for one successful experience, the plan-driven approach was successful if
the number of people on a project is more than 150. A project o f 10-150 people is
the zone in which one might be able to use either methodologies. Agile
development is very efficient for teams with less than 50 employees.
• Planning and control is important with plan-driven methods where in agile
development people are empowered if they are not under direct scrutiny.
• Customer relations, especially the concept of customer satisfaction by means of
delivering on time, delivering quality software, and return on investment is
addressed properly by plan-driven methods.
• Project communication was very successful through practices such as pair
programming, stand up meetings, etc., that are addressed through agile
development. The communications in Plan-driven approaches were done mainly
through documentation.
• In the case o f Requirements, we were not able to find conclusive evidence that
either o f the models succeeded or failed.
• For Development, both agile development and plan-driven methods had a
substantial amount o f evidence in regards to the success o f their corresponding
development practices.
• Although testing was mentioned often in agile development, it can be argued that
testing while coding ignores other aspects of testing such as the acceptance test
45
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
and the performance test. It should be noted that customers in agile development
perform the acceptance tests.
• Although one of the pillars of a successful agile development project lies in
having a Collaborative Responsive Authorized Committed Knowledgeable
(CRACK) customer, a survey showed that 50% of the time, a "CRACK"
customer was not available. Plan-driven methods can be performed well even
without a "CRACK" customer.
• If an organization does not have experienced developers, they should not consider
adopting agile development. Plan-driven methods through the practices of
training and documentation work better with less experienced developers.
• Culture was something hardly mentioned, but it could be interpreted as a
combination of all the other factors.
Additional observations
The following are some further observations arising from the examining the
articles.
• Agile development can be successfully used for help desk and customer service
tasks.
• The authors of agile articles were trying to present their claims more persuasively,
as if they had to prove that what they say is right, whereas the authors for Plan-
driven methods confidently assumed the correctness of their choice.
• Agile development articles were written mainly to be published in magazines and
as a result contained more wit, and compelling or shocking evidence was
46
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
and the performance test. It should be noted that customers in agile development
perform the acceptance tests.
• Although one o f the pillars of a successful agile development project lies in
having a Collaborative Responsive Authorized Committed Knowledgeable
(CRACK) customer, a survey showed that 50% of the time, a “CRACK”
customer was not available. Plan-driven methods can be performed well even
without a “CRACK” customer.
• If an organization does not have experienced developers, they should not consider
adopting agile development. Plan-driven methods through the practices of
training and documentation work better with less experienced developers.
• Culture was something hardly mentioned, but it could be interpreted as a
combination of all the other factors.
Additional observations
The following are some further observations arising from the examining the
articles.
• Agile development can be successfully used for help desk and customer service
tasks.
• The authors of agile articles were trying to present their claims more persuasively,
as if they had to prove that what they say is right, whereas the authors for Plan-
driven methods confidently assumed the correctness o f their choice.
• Agile development articles were written mainly to be published in magazines and
as a result contained more wit, and compelling or shocking evidence was
46
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
frequently presented. The articles for Plan-driven methods were merely
presenting the empirical data.
• Indirectly, the proponents of agile development were trying to market their idea to
Internet programmers, Java developers, and UML users. It could be argued that
they claim agile development would work better if the programming language
was Java or the design use was UML.
• Plan-driven methodologies claim that CMMI or other major models can be
tailored to any project regardless of size or character. All the other disagreeable
factors can be altered, e.g., to stabilize a turbulent environment and make it
suitable for a Plan-driven methodology.
• The culture of agile development thrives on the combination of experienced
developers, on site customers, and other traits that are detrimental to the success
of an organization; if even one is lacking, adoption of agile development can
become catastrophic.
• Proponents of agile development claim that it would save money. However,
there has been no evidence of this in any of the proposed calculations or methods
of prediction, whereas Plan-driven methods can successfully forecast and
calculate cost reduction. Plan-driven development also presents return on
investment estimates that would address issues such as outsourcing.
3.3 Model implementation
Currently there are no automated models or systems available to provide a
solution to our problem domain. However, Boehm proposes a technique that shows the
47
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
frequently presented. The articles for Plan-driven methods were merely
presenting the empirical data.
• Indirectly, the proponents of agile development were trying to market their idea to
Internet programmers, Java developers, and UML users. It could be argued that
they claim agile development would work better if the programming language
was Java or the design use was UML.
• Plan-driven methodologies claim that CMMI or other major models can be
tailored to any project regardless of size or character. All the other disagreeable
factors can be altered, e.g., to stabilize a turbulent environment and make it
suitable for a Plan-driven methodology.
• The culture of agile development thrives on the combination of experienced
developers, on site customers, and other traits that are detrimental to the success
o f an organization; if even one is lacking, adoption o f agile development can
become catastrophic.
• Proponents of agile development claim that it would save money. However,
there has been no evidence of this in any of the proposed calculations or methods
o f prediction, whereas Plan-driven methods can successfully forecast and
calculate cost reduction. Plan-driven development also presents return on
investment estimates that would address issues such as outsourcing.
3.3 Model implementation
Currently there are no automated models or systems available to provide a
solution to our problem domain. However, Boehm proposes a technique that shows the
47
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
compatibility of the companies based on five aspects that he refers to as Critical Factors.
These five critical factors and the reasoning behind their selection is presented in Table
11 [Boehm].
These five critical factors are size, criticality, dynamism, personnel, and culture.
Figure 1 summarises these factors graphically. The closer to the centre of an axis, the
more agile the factor is [Boehm].
Table 11. The five critical factors. Table from [Boehm].
Critical Factor
Agility Discriminator Plan-Driven Discriminator
Size Well-matched to small products and teams. Reliance on tacit knowledge limits scalability
Methods evolved to handle large products and teams. Hard to tailor down to small projects
Criticality Untested on safety-critical products. Potential difficulties with simple design and lack of documentation.
Methods evolved to handle highly critical products. hard to tailor down to low-criticality products.
Dynamism Simple design and continuous refactoring are excellent for highly dynamic environments, but a source of potentially expensive rework for highly stable environments
Detailed plans and Big design Up Front excellent for highly stable environment, but a source of expensive rework for highly dynamic environments.
Personnel Requires continuous presence of a critical mass of scarce Cockburn Level 2 or 3 experts. Risky to use non-agile Level 1B people
Needs a critical mass of scarce Cockburn Level 2 and 3 experts during project definition, but can work with fewer later in the project — unless the environment is highly dynamic. Can usually accommodate some level 1B people.
Culture Thrives in a culture where people feel comfortable and empowered by having many degrees of freedom. (Thriving on chaos)
Thrives in a culture where people feel comfortable and empowered by having their roles defined by clear policies and procedures. (Thriving on order)
48
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
compatibility of the companies based on five aspects that he refers to as Critical Factors.
These five critical factors and the reasoning behind their selection is presented in Table
11 [Boehm].
These five critical factors are size, criticality, dynamism, personnel, and culture.
Figure 1 summarises these factors graphically. The closer to the centre o f an axis, the
more agile the factor is [Boehm].
Table 11. The five critical factors. Table from [Boehm].
CriticalFactor
Agility Discriminator Plan-Driven Discriminator
Size Well-matched to small products and teams. Reliance on tacit knowledge limits scalability
Methods evolved to handle large products and teams. Hard to tailor down to small projects
Criticality Untested on safety-critical products. Potential difficulties with simple design and lack of documentation.
Methods evolved to handle highly critical products, hard to tailor down to low-criticality products.
Dynamism Simple design and continuous refactoring are excellent for highly dynamic environments, but a source o f potentially expensive rework for highly stable environments
Detailed plans and Big design Up Front excellent for highly stable environment, but a source of expensive rework for highly dynamic environments.
Personnel Requires continuous presence of a critical mass o f scarce Cockbum Level 2 or 3 experts. Risky to use non-agile Level IB people
Needs a critical mass o f scarce Cockbum Level 2 and 3 experts during project definition, but can work with fewer later in the project - unless the environment is highly dynamic. Can usually accommodate some level IB people.
Culture Thrives in a culture where people feel comfortable and empowered by having many degrees of freedom. (Thriving on chaos)
Thrives in a culture where people feel comfortable and empowered by having their roles defined by clear policies and procedures. (Thriving on order)
48
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Criticality (Loss due to impact of defects)
Size (Number of personnel)
Personnel (% Level 1B) (% Level 2 and 3)
40 15
30 20
20 25
10 30
Many 0 35 Lives Single
Life Essential Funds Discretionary
Funds Comfort 50
Dynamism (% Requirements-change/month)
Culture (% Thriving on chaos vs. order)
Figure 1. graphical representation of Boehm's Five Critical factors. Image from [Boehm].
As it can be readily seen, the technique presented by Boehm is not an automated
solution, nor does it provide any understandable information for the users. The input
criteria are not defined. There are no weights or measures of the distances introduced.
Furthermore, there is no final conclusion or recommendation provided. In this technique,
the presence of an expert is still required. As a result, the managers and the software
developers are not able to use Boehm's technique because of the above-mentioned issues.
In this chapter we present two models that can be employed for a decision support
system and ultimately be readily used by managers and software developers without too
much difficulty.
49
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Personnel(% Level 1B) (% Level 2 and 3)
40 15
30 -• 20
20 - - 25Criticality(Loss due to impact of defects)
Dynamism(% Requirements-change/month)10 -• 30
Many * Lives Single
Life Essential —■Funds Discretionary
Funds 'Comfort
100
300,
Size '(Number of personnel) C ulture
(% Thriving on chaos vs. order)
Figure 1. graphical representation of Boehm’s Five Critical factors. Image from [Boehm].
As it can be readily seen, the technique presented by Boehm is not an automated
solution, nor does it provide any understandable information for the users. The input
criteria are not defined. There are no weights or measures o f the distances introduced.
Furthermore, there is no final conclusion or recommendation provided. In this technique,
the presence of an expert is still required. As a result, the managers and the software
developers are not able to use Boehm’s technique because of the above-mentioned issues.
In this chapter we present two models that can be employed for a decision support
system and ultimately be readily used by managers and software developers without too
much difficulty.
49
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
3.3.1 Input Criteria
Based on the findings in the knowledge acquisition section, we ascertained that
there are four major distinctive characteristics in agile and plan-driven development.
These characteristics are: Application Characteristics, Management Characteristics,
Technical Characteristics, and Personnel Characteristics. We also divided these
characteristics into twelve factors, and we discussed each of them extensively.
So it would be expected that these twelve factors be the criteria for our inputs. However,
as seen in previous sections, each of these twelve factors encompasses more detailed
concepts, practices, or documents. We decided to break up each factor further into sub-
factors. The reasoning behind creating sub-factors from factors is that the sub-factors can
be measured relatively easily and used as the input of the DSS, and thus render a solution
to our problem.
In order to find these sub-factors (single input entities) we looked into each one of
the twelve factors and broke them into any individual concept, practice, or routine, and
any related documents that can be independently investigated. The principle behind
those concepts, practices, and documents were either found in Boehm's book or
discovered through the course of studying the thirty articles for validating Boehm's work.
Table 12 illustrates these sub-factors.
50
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
3.3.1 Input Criteria
Based on the findings in the knowledge acquisition section, we ascertained that
there are four major distinctive characteristics in agile and plan-driven development.
These characteristics are: Application Characteristics, Management Characteristics,
Technical Characteristics, and Personnel Characteristics. We also divided these
characteristics into twelve factors, and we discussed each of them extensively.
So it would be expected that these twelve factors be the criteria for our inputs. However,
as seen in previous sections, each of these twelve factors encompasses more detailed
concepts, practices, or documents. We decided to break up each factor further into sub
factors. The reasoning behind creating sub-factors from factors is that the sub-factors can
be measured relatively easily and used as the input of the DSS, and thus render a solution
to our problem.
In order to find these sub-factors (single input entities) we looked into each one of
the twelve factors and broke them into any individual concept, practice, or routine, and
any related documents that can be independently investigated. The principle behind
those concepts, practices, and documents were either found in Boehm’s book or
discovered through the course of studying the thirty articles for validating Boehm’s work.
Table 12 illustrates these sub-factors.
50
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 12. Sub-factors
Factor Sub-factor
Application Characteristics
Primary Goals
- Continuous delivery - Responsiveness - Return on investment analysis - Quick build - Predictability - Stability - High-assurance
Size - Number of people - Scaling up
Environment
- Requirements rate of change - Organizational concerns - Stovepipes - Information sclerosis - Bridging situations - Monolithic requirements - Continuity requirements - Process improvement
Management Characteristics
Customer relations - Collocated customers - Contract specification - Process maturity
Planning and Control
- Tacit knowledge vs. explicit knowledge - Pair programming - Meetings - Shared code ownership - On-site development - Developing tacit knowledge - Developing explicit knowledge
Project Communication - Person-to-person communication - Reports
Technical Characteristics
Requirements
- Formal vs. informal - Prioritized requirements - Adjustability - Quality control / risk management
Development
- Refactoring - New features - Quality attributes - Multinational operations - Program efficiency - Architecture based design - Software reuse
Testing - Continuous regression testing - Automated test suits - Separate testing administration
51
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 12. Sub-factors
Factor Sub-factor
ApplicationCharacteristics
Primary Goals
- Continuous delivery- Responsiveness- Return on investment analysis- Quick build- Predictability- Stability- High-assurance
Size - Number o f people- Scaling up
Environment
- Requirements rate of change- Organizational concerns- Stovepipes- Information sclerosis- Bridging situations- Monolithic requirements- Continuity requirements- Process improvement
ManagementCharacteristics
Customer relations- Collocated customers- Contract specification- Process maturity
Planning and Control
- Tacit knowledge vs. explicit knowledge- Pair programming- Meetings- Shared code ownership- On-site development- Developing tacit knowledge- Developing explicit knowledge
Project Communication - Person-to-person communication- Reports
TechnicalCharacteristics
Requirements
- Formal vs. informal- Prioritized requirements- Adjustability- Quality control / risk management
Development
- Refactoring- New features- Quality attributes- Multinational operations- Program efficiency- Architecture based design- Software reuse
Testing- Continuous regression testing- Automated test suits- Separate testing administration
51
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 12. Continued
Personnel characteristics
Customers - CRACK customer
Developers - Interpersonal skills - Levels of software developers (Cockburn levels)
Culture - Employee degrees of freedom
In order to validate the sub-factors chosen for each factor, we may need to go
back to our resources including Boehm's book and the thirty articles previously analysed.
However, an expert is required to determine the sub-factors from the available literature.
The articles provide even less obvious mentioning of the sub-factors, so expert advice is
needed to independently validate that the chosen sub-factors are actually acceptable
entities defining a factor. The following are some of the examples from the available
literature that ascertain the role of a sub-factor in the existence of a factor.
In this example, the sub-factor number of people is stated to play a role in the
factor size:
"...We see no way to avoid an activity of this nature (150-person, dealing with 34
highly complex systems elements) on extremely large systems of systems, and absolutely
no way to handle the problem with agile stand up meetings and tacit knowledge
propagation" [Boehm].
In this example the sub-factor stovepipes plays a role in the presence of the
environment factor:
" ...Early experience with elements of XP on departmental applications produced
code that didn't integrate well with the company's overall infrastructure or scale in
production" [Sliwa].
52
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 12. Continued
Personnelcharacteristics
Customers - CRACK customer
Developers- Interpersonal skills- Levels of software developers (Cockbum levels)
Culture - Employee degrees of freedom
In order to validate the sub-factors chosen for each factor, we may need to go
back to our resources including Boehm’s book and the thirty articles previously analysed.
However, an expert is required to determine the sub-factors from the available literature.
The articles provide even less obvious mentioning o f the sub-factors, so expert advice is
needed to independently validate that the chosen sub-factors are actually acceptable
entities defining a factor. The following are some o f the examples from the available
literature that ascertain the role of a sub-factor in the existence of a factor.
In this example, the sub-factor number o f people is stated to play a role in the
factor size\
“...W e see no way to avoid an activity o f this nature (150-person, dealing with 34
highly complex systems elements) on extremely large systems o f systems, and absolutely
no way to handle the problem with agile stand up meetings and tacit knowledge
propagation’’ [Boehm].
In this example the sub-factor stovepipes plays a role in the presence of the
environment factor:
“ ...Early experience with elements of XP on departmental applications produced
code that didn’t integrate well with the company’s overall infrastructure or scale in
production” [Sliwa],
52
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
3.3.2 Questionnaire
A question is created in order to investigate the presence of a sub-factor. This
question is called a sample question (SQ). Sample questions will either inquire about the
presence of a sub-factor or will rate the efficiency, capability, and other attributes of the
existing sub-factor. The answer to the question is multiple choice, and the user has the
ability to quantitatively reply to the question. These sample questions are then refined
and developed into a questionnaire. By refining the questions to be easily understandable
to the users (who are in our case the software developers or managers) into a simple
sentence, the understanding of the question should be unproblematic. The choice of
terminology was the same as the ones used currently by managers in software developing
companies, thus there should not be any problems in understanding what a question is
asking.
The assigned weight of the question
As mentioned above, each question has a set of choices attached to it. Each
answer or option carries a weight called the assigned weight of the question. We decided
to use percentages to represent the weight of each choice. 100% signifies a perfect mark
for the choice of a plan-driven method, whereas 0% indicates a perfect mark for the
choice of agile development. 50% indicates either a mixed option (hybrid) or an option
that is neither plan-driven nor agile methodology. We have also added an extra choice
of, "Not sure," with no weight attached to it. Once this choice has been selected, the
question will be discarded since the user is unable to answer the question appropriately.
53
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
3.3.2 Questionnaire
A question is created in order to investigate the presence o f a sub-factor. This
question is called a sample question (SQ). Sample questions will either inquire about the
presence o f a sub-factor or will rate the efficiency, capability, and other attributes of the
existing sub-factor. The answer to the question is multiple choice, and the user has the
ability to quantitatively reply to the question. These sample questions are then refined
and developed into a questionnaire. By refining the questions to be easily understandable
to the users (who are in our case the software developers or managers) into a simple
sentence, the understanding of the question should be unproblematic. The choice of
terminology was the same as the ones used currently by managers in software developing
companies, thus there should not be any problems in understanding what a question is
asking.
The assigned weight of the question
As mentioned above, each question has a set of choices attached to it. Each
answer or option carries a weight called the assigned weight o f the question. We decided
to use percentages to represent the weight of each choice. 100% signifies a perfect mark
for the choice o f a plan-driven method, whereas 0% indicates a perfect mark for the
choice o f agile development. 50% indicates either a mixed option (hybrid) or an option
that is neither plan-driven nor agile methodology. We have also added an extra choice
of, “Not sure,” with no weight attached to it. Once this choice has been selected, the
question will be discarded since the user is unable to answer the question appropriately.
53
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The general weight of the sub-factor
Each sub-factor will also have a General Weight attached to it. This weight is
different than the assigned weight of the question. This weight is used to determine how
much the sub-factor is important to the selection of the final decision. Six values are used
for the general weight of a sub-factor. The reasoning behind each of these general
weights comes from the observations recorded in Boehm's work and the readings of the
thirty articles. Our own experience was used in order to justify such assignments. In
some cases, an arbitrary but sensible weight has been assigned, since there was no
sufficiently accurate information to determine the given weight. The scale of the general
weight of the sub-factor is as follows:
5: Decisive
This means that this sub-factor is a critical one, and an answer to a question in this sub-
factor would indeed determine the outcome of the final decision.
4: Heavy
This means that there is a substantial weight associated with the factors with this General
weight. The sub-factor is highly critical to the decision.
3: Moderate
This means that the factor is fairly important and can indeed change the outcome of the
decision.
2: Light
This means that the corresponding factor is not as important and can be ignored.
1: Very Light
It means that most of the times the importance of the factor is negligible.
54
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The general weight of the sub-factor
Each sub-factor will also have a General Weight attached to it. This weight is
different than the assigned weight of the question. This weight is used to determine how
much the sub-factor is important to the selection of the final decision. Six values are used
for the general weight of a sub-factor. The reasoning behind each o f these general
weights comes from the observations recorded in Boehm’s work and the readings of the
thirty articles. Our own experience was used in order to justify such assignments. In
some cases, an arbitrary but sensible weight has been assigned, since there was no
sufficiently accurate information to determine the given weight. The scale of the general
weight of the sub-factor is as follows:
5: Decisive
This means that this sub-factor is a critical one, and an answer to a question in this sub
factor would indeed determine the outcome of the final decision.
4: Heavy
This means that there is a substantial weight associated with the factors with this General
weight. The sub-factor is highly critical to the decision.
3: Moderate
This means that the factor is fairly important and can indeed change the outcome o f the
decision.
2: Light
This means that the corresponding factor is not as important and can be ignored.
1: Very Light
It means that most of the times the importance of the factor is negligible.
54
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
0: Non-Issue
Since the twelve factors and their sub-factors have been validated as necessary, we do not
have any factor / sub-factor with a general weight of zero. However, in future work, one
might want to take the importance of a given factor completely away, using a zero as the
general weight.
Appendix D shows the complete list of the sub-factors, their questions, and the
assigned and general weights.
3.3.3 Models
In the feasibility study, we mentioned that in order to be able to have an
automated solution to a problem domain, there should exist a conceptual model. This
model as discussed is a formal (structured) design that accepts the input and processes to
make a decision or to give a suggestion [Luger].
Currently, there are no models available that can help in choosing the most
suitable development paradigm for a given organization. However, many techniques are
available and have been used for expert systems dealing with the selection of a choice.
Two models are presented here and more are proposed for the future work section.
12-factor weight model
In this model, we evaluate each and every one of the twelve factors to see whether
they reside in the plan-driven or agile methods domain. Users (managers or software
developers) are asked to answer a questionnaire. Using the weight assigned to each
answer, and the general weight of the sub-factors, we can independently determine the
55
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
0: Non-Issue
Since the twelve factors and their sub-factors have been validated as necessary, we do not
have any factor / sub-factor with a general weight of zero. However, in future work, one
might want to take the importance of a given factor completely away, using a zero as the
general weight.
Appendix D shows the complete list o f the sub-factors, their questions, and the
assigned and general weights.
3.3.3 Models
In the feasibility study, we mentioned that in order to be able to have an
automated solution to a problem domain, there should exist a conceptual model. This
model as discussed is a formal (structured) design that accepts the input and processes to
make a decision or to give a suggestion [Luger],
Currently, there are no models available that can help in choosing the most
suitable development paradigm for a given organization. However, many techniques are
available and have been used for expert systems dealing with the selection of a choice.
Two models are presented here and more are proposed for the future work section.
12-factor weight model
In this model, we evaluate each and every one of the twelve factors to see whether
they reside in the plan-driven or agile methods domain. Users (managers or software
developers) are asked to answer a questionnaire. Using the weight assigned to each
answer, and the general weight of the sub-factors, we can independently determine the
55
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
compatibility of each of the twelve factors to the agile and plan-driven approaches. This
model shows a detailed picture of the twelve factors in an organization. As a result, the
users can see which areas in their organization are more or less compatible. With either
development methods, the sub-factors of all of the twelve factors are necessary to reach
an outcome for deciding whether that specific factor is in the agile or the plan-driven
domain.
This example will further illustrate the 12-factor weight model.
Example 1. We want to find out what is the outcome for the factor "Customer relations"
in a given organization. See Appendix D for a complete listing of the questions and their
weights.
First, we ask all of the questions regarding that factor. Suppose that these are the answers
to the questions:
1. Are your customers willing / able to be on-site and devote themselves to the
development of the project?
NO
2. Are your Customers knowledgeable enough to make project related decisions?
MAYBE
3. Does your organization depend upon formalized contract specification?
YES
4. Is the contract specification a source of trust (or lack of it a source of stress)
between your organization and your customers?
NOT SURE
56
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
compatibility o f each o f the twelve factors to the agile and plan-driven approaches. This
model shows a detailed picture of the twelve factors in an organization. As a result, the
users can see which areas in their organization are more or less compatible. With either
development methods, the sub-factors o f all of the twelve factors are necessary to reach
an outcome for deciding whether that specific factor is in the agile or the plan-driven
domain.
This example will further illustrate the 12-factor weight model.
Example 1. We want to find out what is the outcome for the factor “Customer relations”
in a given organization. See Appendix D for a complete listing of the questions and their
weights.
First, we ask all o f the questions regarding that factor. Suppose that these are the answers
to the questions:
1. Are your customers willing / able to be on-site and devote themselves to the
development o f the project?
NO
2. Are your Customers knowledgeable enough to make project related decisions?
MAYBE
3. Does your organization depend upon formalized contract specification?
YES
4. Is the contract specification a source of trust (or lack o f it a source o f stress)
between your organization and your customers?
NOT SURE
56
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
5. Has your customers asked you about the maturity of your processes? (i.e. Do they
expect your organization's processes be compatible with some well established
standards such as CMM or CMMI?)
NO
Based on Appendix D, each answer will correspond to these assigned weights (in
percent) and general weight of the sub-factor:
1. 75% 4
2. 50% 4
3. 100% 3
4. Discard
5. 25% 1
In order to calculate the weight of the factor each question's assigned weight will
be multiplied by the general weight of the sub-factor and then added together, and finally
divided by the sum of the general weights. The result will be a percentage value.
(75% x 4) + (50% x 4) + (100% x 3) + (25% x 1) / 4 + 4 + 3 + 1
= 68.75 %
According to the way the percentages are defined (100% completely plan-driven,
50% Hybrid, 0% completely agile), the 68% will somewhat lie under the Plan-driven
domain but not very comfortably. As a result, in this instance, this organization's
"Customer relations" factor is somewhat compatible with a plan-driven approach.
The advantages of the 12-factor weight model are that it gives a snapshot of the
organization and shows all the twelve factors (areas). This enables the managers and the
software developers to see each of the factors and whether they are compatible to the two
57
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
5. Has your customers asked you about the maturity of your processes? (i.e. Do they
expect your organization’s processes be compatible with some well established
standards such as CMM or CMMI?)
NO
Based on Appendix D, each answer will correspond to these assigned weights (in
percent) and general weight o f the sub-factor:
1. 75% 4
2. 50% 4
3. 100% 3
4. Discard
5. 25% 1
In order to calculate the weight of the factor each question’s assigned weight will
be multiplied by the general weight o f the sub-factor and then added together, and finally
divided by the sum of the general weights. The result will be a percentage value.
(75% x 4) + (50% x 4) + (100% x 3) + (25% x l ) / 4 + 4 + 3 + l
= 68.75 %
According to the way the percentages are defined (100% completely plan-driven,
50% Hybrid, 0% completely agile), the 68% will somewhat lie under the Plan-driven
domain but not very comfortably. As a result, in this instance, this organization’s
“Customer relations” factor is somewhat compatible with a plan-driven approach.
The advantages of the 12-factor weight model are that it gives a snapshot of the
organization and shows all the twelve factors (areas). This enables the managers and the
software developers to see each of the factors and whether they are compatible to the two
57
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
main methodologies. This way they would discover which areas or departments they
need to consider for compatibility issues.
However the disadvantage of the 12-factor weight is that the model does not
enable anyone to make a decision on what process methodology to use, as it ignores the
connection among the factors.
The results of the 12-factor weight model can be used in other models to reach a
final decision related to the selection of a proper process methodology.
Single-weight model
In the single weight model, we determine a single result that indicates what type
of process a given organization should use. The single weight answers the plain question
"What should my organization use between agile and plan-driven methodologies?"
The single weight model is based on the results of the 12-factor weight model applied to
every factor. Each of the twelve are computed using the 12-factor weight model, and
then the results are combined together according to their factors. This retraces our
understanding that not all of the twelve factors are equality important (critical) in making
the final decision.
The assignment of the criticality value is based on the interpretations arising from
Boehm's assessments and the experience gained from the analysis and validation of
Boehm's work. Again, some of these measures are somewhat arbitrary, based on our
understanding.
The criticality of the twelve factors we selected are as follows:
Primary goals 8
58
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
main methodologies. This way they would discover which areas or departments they
need to consider for compatibility issues.
However the disadvantage of the 12-factor weight is that the model does not
enable anyone to make a decision on what process methodology to use, as it ignores the
connection among the factors.
The results o f the 12-factor weight model can be used in other models to reach a
final decision related to the selection of a proper process methodology.
Single-weight model
In the single weight model, we determine a single result that indicates what type
of process a given organization should use. The single weight answers the plain question
“What should my organization use between agile and plan-driven methodologies?”
The single weight model is based on the results o f the 12-factor weight model applied to
every factor. Each of the twelve are computed using the 12-factor weight model, and
then the results are combined together according to their factors. This retraces our
understanding that not all o f the twelve factors are equality important (critical) in making
the final decision.
The assignment o f the criticality value is based on the interpretations arising from
Boehm’s assessments and the experience gained from the analysis and validation of
Boehm’s work. Again, some o f these measures are somewhat arbitrary, based on our
understanding.
The criticality o f the twelve factors we selected are as follows:
Primary goals 8
58
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Size 8
Environment 8
Developers 8
Customer relations 1
Planning and control 1
Project Communication 1
Requirements 1
Development 1
Testing 1
Customers 1
Culture 1
This example further illustrates the single-weight model.
Example 2. The following are the results of a 12-weight model for a given
organization:
Primary goals 76%
Size 65%
Environment 71%
Developers 68%
Customer relations 52%
Planning and control 65%
Project Communication 69%
Requirements 25%
Development 17%
59
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Size
Environment
Developers
Customer relations
Planning and control
Project Communication
Requirements
Development
Testing
Customers
Culture
This example further illustrates the single-weight model.
Example 2. The following are the results of a 12-weight model for a given
organization:
76%
65%
Primary goals
Size
Environment 71%
Developers 68%
Customer relations 52%
Planning and control 65%
Project Communication 69%
Requirements 25%
Development 17%
59
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Testing 61%
Customers 75%
Culture 49%
The decision value is obtained through a weighted average of the results shown
above, using the criticality of each factor as a weight, as follows:
{[(Primary goal) x 8] + [(Size) x 8] + [(Environment) x 8] + [(Developers) x 8 +
Customer relations + Planning and Control + Project Communication +
Requirements + Development + Testing + Customers + Culture} /
8+8+8+8+1+1+1+1+1+1+1+1
= 67.54%
The value obtained is a percentage and shows that the organization is better
served through the plan-driven approach, the performance, however, is weak.
The advantage of the single weight model is that it would provide a simple and yet
important suggestion with regards to the selection of a process methodology.
The disadvantage of this model is that since the criticality factors are chosen arbitrarily,
the final decision is not an absolute verdict and, depending upon different organizations,
the accuracy level of the final decision can vary.
60
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Testing 61%
Customers 75%
Culture 49%
The decision value is obtained through a weighted average o f the results shown
above, using the criticality of each factor as a weight, as follows:
{[(Primary goal) x 8] + [(Size) x 8] + [(Environment) x 8] + [(Developers)x 8 +
Customer relations + Planning and Control + Project Communication +
Requirements + Development + Testing + Customers + Culture} /
8+8+ 8+ 8+ 1+ 1+ 1+ 1+ 1+ 1+ 1+1
= 67.54%
The value obtained is a percentage and shows that the organization is better
served through the plan-driven approach, the performance, however, is weak.
The advantage of the single weight model is that it would provide a simple and yet
important suggestion with regards to the selection of a process methodology.
The disadvantage o f this model is that since the criticality factors are chosen arbitrarily,
the final decision is not an absolute verdict and, depending upon different organizations,
the accuracy level o f the final decision can vary.
60
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 4
Results and Technology Transfer
4.1 Validation and testing
In order to discover whether the models presented are justifiable, we need to
validate them. There are different ways to validate these models. However, given our
constraints, only a few of the validation techniques may be applied and the rest is
proposed for future work.
We used two approaches to validate our models: the first validation method
employs data and concepts used in validating Boehm's work, while the second validation
method employs the key practices of CMMI and XP. We also suggest two other
validation approaches for future work. The first one is validating the model by feeding
empirical data extracted from a company. The second one is dividing a company in two
process groups.
4.1.1 Validating the model using the data collected to validate Boehm's work
In this approach, we used the data and concepts drawn from the thirty articles
selected to validate Boehm's work, and we applied our questionnaire to them and then
used the models. It was nearly impossible to determine all the data from the articles,
since most of the articles only provide conceptual information; however, based on the
concepts provided it can be said that the 12-factor-weight model and, consequently, the
single-weight model are both valid. There was no direct way to feed the data to the
questionnaire, so we decided to answer the questions based solely on my understanding
61
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 4
Results and Technology Transfer
4.1 Validation and testing
In order to discover whether the models presented are justifiable, we need to
validate them. There are different ways to validate these models. However, given our
constraints, only a few of the validation techniques may be applied and the rest is
proposed for future work.
We used two approaches to validate our models: the first validation method
employs data and concepts used in validating Boehm’s work, while the second validation
method employs the key practices of CMMI and XP. We also suggest two other
validation approaches for future work. The first one is validating the model by feeding
empirical data extracted from a company. The second one is dividing a company in two
process groups.
4.1.1 Validating the model using the data collected to validate Boehm’s work
In this approach, we used the data and concepts drawn from the thirty articles
selected to validate Boehm’s work, and we applied our questionnaire to them and then
used the models. It was nearly impossible to determine all the data from the articles,
since most of the articles only provide conceptual information; however, based on the
concepts provided it can be said that the 12-factor-weight model and, consequently, the
single-weight model are both valid. There was no direct way to feed the data to the
questionnaire, so we decided to answer the questions based solely on my understanding
61
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
of the articles. Then we tried to apply the models based on such answers. Many of the
questions do not have any answers, since each given article did not talk about all of the
concepts or sub-factors. It was expected that the same articles that validated Boehm's
work would indeed confirm the validity of the models. It is essential to mention that
there is no convincing way of validating the model based on concepts alone, and no
empirical evidence was provided. Nonetheless, the data from the articles agrees with the
presented models.
4.1.2 Validating the models using the practices and concepts of CMMI and XP
The second validation employed in this thesis works by feeding the known and
defined practices of CMMI and XP into our models. Our models, as mentioned before,
are mainly based on the distinguishing characteristics of plan-driven and agile methods.
As a result, one will expect that these models should confirm that CMMI is a plan-driven
method and that XP is an agile method. This means that if we test the models with the
practices of CMMI, which is one of the best working examples of the plan-driven
methodologies, the result should also indicate a preference for plan-driven methods.
Similarly, since XP is one of the best examples of the agile methodologies, the result
should indicate a preference for agile methods.
Test 1: We assume that the practices of CMMI are employed (see Appendix A for
an overview of CMMI). Now we answer the questionnaire using only the practices of
CMMI. We ignore all the questions that are specific to the organization. Here, we are
only interested to see whether the practices of CMMI used in our models are able to
select a plan-driven decision, since CMMI is the best example of a plan-driven
62
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
of the articles. Then we tried to apply the models based on such answers. Many of the
questions do not have any answers, since each given article did not talk about all of the
concepts or sub-factors. It was expected that the same articles that validated Boehm’s
work would indeed confirm the validity of the models. It is essential to mention that
there is no convincing way of validating the model based on concepts alone, and no
empirical evidence was provided. Nonetheless, the data from the articles agrees with the
presented models.
4.1.2 Validating the models using the practices and concepts of CMMI and XP
The second validation employed in this thesis works by feeding the known and
defined practices o f CMMI and XP into our models. Our models, as mentioned before,
are mainly based on the distinguishing characteristics o f plan-driven and agile methods.
As a result, one will expect that these models should confirm that CMMI is a plan-driven
method and that XP is an agile method. This means that if we test the models with the
practices o f CMMI, which is one of the best working examples of the plan-driven
methodologies, the result should also indicate a preference for plan-driven methods.
Similarly, since XP is one of the best examples o f the agile methodologies, the result
should indicate a preference for agile methods.
Test 1: We assume that the practices of CMMI are employed (see Appendix A for
an overview o f CMMI). Now we answer the questionnaire using only the practices of
CMMI. We ignore all the questions that are specific to the organization. Here, we are
only interested to see whether the practices of CMMI used in our models are able to
select a plan-driven decision, since CMMI is the best example of a plan-driven
62
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
methodology. A degree of uncertainty is expected, since answering all of the questions of
the questionnaire is extremely important, and is determinant in the making of the final
decisions; however, there should be adequate information to justify the validation of our
models.
Table 13 shows the results of the 12-factor weight model. As can be seen, some
of the questions cannot be answered since they are organization-specific. However, just
the assumption that CMMI practices have been used is sufficient to provide high scores
for 8 of the twelve factors. Thus, the 12-factor weight model strongly suggests a plan-
driven approach for 8 of the twelve factors. The 12-factor weight can be the input to the
single-weight model.
The factors of size, customers, developers, and culture are ignored, since there is
no information about them. This reduces the effectiveness of the models. Still, the
decision value is 89% which means that CMMI belongs to the plan-driven domain. This
is in compliance with our predictions and serves a part of the model validation.
63
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
methodology. A degree of uncertainty is expected, since answering all of the questions of
the questionnaire is extremely important, and is determinant in the making of the final
decisions; however, there should be adequate information to justify the validation of our
models.
Table 13 shows the results of the 12-factor weight model. As can be seen, some
of the questions cannot be answered since they are organization-specific. However, just
the assumption that CMMI practices have been used is sufficient to provide high scores
for 8 o f the twelve factors. Thus, the 12-factor weight model strongly suggests a plan-
driven approach for 8 o f the twelve factors. The 12-factor weight can be the input to the
single-weight model.
The factors o f size, customers, developers, and culture are ignored, since there is
no information about them. This reduces the effectiveness of the models. Still, the
decision value is 89% which means that CMMI belongs to the plan-driven domain. This
is in compliance with our predictions and serves a part o f the model validation.
63
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 13. Results Test 1 Factor Sub-Factor % Weight Factor
Primary Goals
- Continuous delivery - Responsiveness - Return on investment analysis - Quick build - Predictability - Stability - High assurance
--75% 3 - 100% 3 --
87.5%
Size - Number of people - Scaling up
- -
-
Environment
- Requirements rate of change - Organizational concerns - Stovepipes - Information sclerosis - Bridging situations - Monolithic requirements - Continuity requirements - Process improvement
-75% 5 -- - --100% 3
84%
Customer relations
- Collocated customer - Contract specification - Process maturity
- 100% 3 100% 1
100%
Planning and Control
- Tacit knowledge vs. explicit knowledge - Pair programming - Meetings - Shared code ownership - On-site development - Developing tacit knowledge - Developing explicit knowledge
100% 3 - -- -75% 2 100% 2
93%
Project Communication
- Person-to-person communication - Reports
- 100% 2
100%
Requirements
- Formal vs. informal - Prioritized requirements - Adjustability - Quality control / Risk management
100% 4 - -100% 4
100%
Development
- Refactoring - New features - Quality attributes - Multinational operations - Program efficiency - Architecture based design - Software reuse
75% 2 100% 4 100% 4 - 100% 3 75% 2 100% 3
94.5%
Testing - Continuous regression testing - Automated test suits - Separate testing administration
-100% 1 100% 2
100%
64
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 13. Results Test 1Factor Sub-Factor % Weight Factor
Primary Goals
Continuous delivery Responsiveness Return on investment analysis Quick build Predictability Stability High assurance
75% 3
100% 387.5%
Size Number o f peopleScaling up________________Requirements rate of change Organizational concerns
■ Stovepipes■ Information sclerosis • Bridging situations■ Monolithic requirements■ Continuity requirements■ Process improvement______
75%
Environment
100%
84%
Customerrelations
Collocated customer Contract specification Process maturity
100%100%
100%
Planning and Control
Tacit knowledge vs. explicit knowledgePair programmingMeetingsShared code ownership On-site development Developing tacit knowledge Developing explicit knowledge
100%
75% 2100% 2
93%
ProjectCommunication
Person-to-person communication Reports 100% 2
• Formal vs. informal• Prioritized requirements ■ Adjustability• Quality control / Risk management
100%
Requirements
100% 4
100% 4
100%
Development
Refactoring New features Quality attributes Multinational operations Program efficiency Architecture based design Software reuse
75% 2100% 4100% 4
100% 375% 2100% 3
94.5%
TestingContinuous regression testing Automated test suits Separate testing administration
100% 1 100% 2
100%
64
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 13. Continued
Customers - CRACK customer - -
Developers - Interpersonal skills - Levels of software developers (Cockburn levels)
-- -
Culture - Employee degrees of freedom - -
Now we assume that the twelve practices of XP are employed (see Appendix B
for an overview of XP). We answer the questionnaire using only the twelve practices of
XP. Again, we ignore all of the questions that are organizational in nature. Here, we are
only interested to see, given the twelve practices and principles of XP, whether our
models are able to select an agile approach decision since XP is the best-known agile
development methodology. Again, not all of the questions on the questionnaire can be
answered. Table 14 shows the results of the 12-factor weight model.
Even if some of the questions cannot be answered since they are organization
specific, a low score is given to Seven out of twelve factors.
Applying these results to the single-weight model, we have a result of 0.39%
which is completely in the agile domain. This further confirms our hypothesis.
65
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 13. Continued
Customers - CRACK customer - -
- Interpersonal skills -
Developers - Levels o f software developers - -(Cockbum levels)
Culture - Employee degrees of freedom - -
Now we assume that the twelve practices of XP are employed (see Appendix B
for an overview o f XP). We answer the questionnaire using only the twelve practices of
XP. Again, we ignore all o f the questions that are organizational in nature. Here, we are
only interested to see, given the twelve practices and principles o f XP, whether our
models are able to select an agile approach decision since XP is the best-known agile
development methodology. Again, not all of the questions on the questionnaire can be
answered. Table 14 shows the results of the 12-factor weight model.
Even if some o f the questions cannot be answered since they are organization
specific, a low score is given to Seven out o f twelve factors.
Applying these results to the single-weight model, we have a result o f 0.39%
which is completely in the agile domain. This further confirms our hypothesis.
65
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 14. Results Test 2 Factor Sub-Factor % Weight
Primary Goals
- Continuous delivery - Responsiveness - Return on investment analysis - Quick build - Predictability - Stability - High assurance
0% 3 0% 3 -0% 3 ---
0%
Size - Number of people - Scaling up
- -
-
Environment
- Requirements rate of change - Organizational concerns - Stovepipes - Information sclerosis - Bridging situations - Monolithic requirements - Continuity requirements - Process improvement
--- - ----
-
Customer relations
- Collocated customer - Contract specification - Process maturity
0% 4 - -
0%
Planning and Control
- Tacit knowledge vs. explicit knowledge - Pair programming - Meetings - Shared code ownership - On-site development - Developing tacit knowledge - Developing explicit knowledge
0% 3 0% 3 25% 3 0% 3 -0% 2 0% 2
4.5%
Project Communication
- Person-to-person communication - Reports
0% 2 -
0 %
Requirements
- Formal vs. informal - Prioritized requirements - Adjustability - Quality control / Risk management
- - 0% 4 -
0%
Development
- Refactoring - New features - Quality attributes - Multinational operations - Program efficiency - Architecture based design - Software reuse
0% 2 --- 0% 3 --
0%
Testing - Continuous regression testing - Automated test suits - Separate testing administration
0% 1 - -
0%
66
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 14. Results Test 2Factor Sub-Factor % Weight
Primary Goals
Continuous deliveryResponsivenessReturn on investment analysisQuick buildPredictabilityStabilityHigh assurance_____________
0%0%
0%
33
0%
Size Number of people Scaling up_______
Environment
Requirements rate of change Organizational concerns Stovepipes Information sclerosis Bridging situations Monolithic requirements Continuity requirements Process improvement______
Customerrelations
Collocated customer Contract specification Process maturity
0%0%
Planning and Control
Tacit knowledge vs. explicit knowledgePair programmingMeetingsShared code ownership On-site development Developing tacit knowledge Developing explicit knowledge
0% 30% 325% 30% 3
0% 20% 2
4.5%
ProjectCommunication
■ Person-to-person communication Reports
0% 0%
Requirements
■ Formal vs. informal■ Prioritized requirements■ Adjustability• Quality control / Risk management
0%0%
Development
Refactoring New features Quality attributes Multinational operations Program efficiency Architecture based design Software reuse
0%
0%0%
TestingContinuous regression testing Automated test suits Separate testing administration
0%0%
66
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 14. Continued
Customers - CRACK customer - -
Developers - Interpersonal skills - Levels of software developers (Cockburn levels)
-- -
Culture - Employee degrees of freedom - -
4.1.3 Validating the models using real data
In this proposed method, one should find a company that develops software and
does not have a process in place and would want to implement one. The company would
fill in the questionnaire and the results would be used in our models. The models would
select a process methodology for the company. The company would then adopt the
suggested methodology and then it would be evaluated to see whether the selection was
the correct one. For example, if the company becomes more successful, that would mean
that the decision was correct and this would ultimately validate our models. However, if
the company becomes less successful, then that would be an indication of the failure for
our models.
Alternatively, if the company is already using a given process methodology, the
company may want to know if their current methodology is appropriate for them. The
company would fill in the questionnaire and the results would be used in our models.
These are very unlikely approaches to the validation of these models, since they are very
difficult to administer. There are not many companies that I know of that would be
willing to put themselves at risk just to validate our models. However, this type of
validation is the ultimate way to thoroughly validate our models. If the models confirm
that the methodology they employ is appropriate for them, then this result could be used
as statistical evidence for the validation purposes. However, if the models suggest a
67
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table 14. Continued
Customers - CRACK customer - -
- Interpersonal skills -Developers - Levels o f software developers
(Cockbum levels)- -
Culture - Employee degrees of freedom - -
4.1.3 Validating the models using real data
In this proposed method, one should find a company that develops software and
does not have a process in place and would want to implement one. The company would
fill in the questionnaire and the results would be used in our models. The models would
select a process methodology for the company. The company would then adopt the
suggested methodology and then it would be evaluated to see whether the selection was
the correct one. For example, if the company becomes more successful, that would mean
that the decision was correct and this would ultimately validate our models. However, if
the company becomes less successful, then that would be an indication of the failure for
our models.
Alternatively, if the company is already using a given process methodology, the
company may want to know if their current methodology is appropriate for them. The
company would fill in the questionnaire and the results would be used in our models.
These are very unlikely approaches to the validation of these models, since they are very
difficult to administer. There are not many companies that I know of that would be
willing to put themselves at risk just to validate our models. However, this type of
validation is the ultimate way to thoroughly validate our models. If the models confirm
that the methodology they employ is appropriate for them, then this result could be used
as statistical evidence for the validation purposes. However, if the models suggest a
67
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
change, we would be able to monitor their change and the resulting increase in success.
This would prove or disprove the validity of our models.
In short, these are very unlikely approaches to validation, since they put
companies at risk.
4.1.4 Validating the models dividing a company into two process groups
This validation approach is very similar to the previous one. However, in this
approach, we first feed the data from the questionnaire to our models, and then the
models will select a process methodology. At this point, we divide the company into two
process groups. These two groups should be similar, i.e., same size, type of environment,
projects, personnel, etc.
Group 1 would adopt the methodology that the model ,determined and the other
group would use the opposing methodology. To validate our model Group 1 should be
more successful than Group 2.
We believe that this can be a very thorough and relatively safe validation of our
models; however, finding companies that are willing to do undertake such an experiment
is not within the scope of this thesis.
4.2 Additional developments
In this section, we propose two additional models and we propose the design of an
automated system.
68
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
change, we would be able to monitor their change and the resulting increase in success.
This would prove or disprove the validity of our models.
In short, these are very unlikely approaches to validation, since they put
companies at risk.
4.1.4 Validating the models dividing a company into two process groups
This validation approach is very similar to the previous one. However, in this
approach, we first feed the data from the questionnaire to our models, and then the
models will select a process methodology. At this point, we divide the company into two
process groups. These two groups should be similar, i.e., same size, type of environment,
projects, personnel, etc.
Group 1 would adopt the methodology that the model ,determined and the other
group would use the opposing methodology. To validate our model Group 1 should be
more successful than Group 2.
We believe that this can be a very thorough and relatively safe validation of our
models; however, finding companies that are willing to do undertake such an experiment
is not within the scope o f this thesis.
4.2 Additional developments
In this section, we propose two additional models and we propose the design of an
automated system.
68
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
4.2.1 Future proposed models
As mentioned in the methodology design section, we presented two models (12-
factor weight and single-weight) to process the answers of the questionnaire and draw a
final decision. Here, we propose some other models and techniques that can be
potentially used in the future.
Two-weight model
This model is very similar to the single weight model; however, it offers a
percentage weight value for agile development and a percentage weight value for a plan-
driven approach. In the single weight model, each question was constructed in a way that
the multiple-choice answer would be a percentage. A result near to 100% would indicate
a plan-driven approach, while a result near to 0% would indicate an agile development.
This form of questioning would put agile and plan-driven methods in opposition.
Although in most cases, that may be true, there is evidence that, in certain cases, plan-
driven and agile development use the same practises. As a result, in the two-weight
model we propose that the questionnaire be altered and two percentages arise from each
question: one to indicate how close the sub-factor (answer) is to plan-driven development
and the other to indicate how close the sub-factor (answer) is to agile development. In
this model, the final result comes in the form of two percentages: one for agile methods,
and the other for plan-driven methods. This method would provide a more realistic view
of the final result.
69
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
4.2.1 Future proposed models
As mentioned in the methodology design section, we presented two models (12-
factor weight and single-weight) to process the answers of the questionnaire and draw a
final decision. Here, we propose some other models and techniques that can be
potentially used in the future.
Two-weight model
This model is very similar to the single weight model; however, it offers a
percentage weight value for agile development and a percentage weight value for a plan-
driven approach. In the single weight model, each question was constructed in a way that
the multiple-choice answer would be a percentage. A result near to 100% would indicate
a plan-driven approach, while a result near to 0% would indicate an agile development.
This form of questioning would put agile and plan-driven methods in opposition.
Although in most cases, that may be true, there is evidence that, in certain cases, plan-
driven and agile development use the same practises. As a result, in the two-weight
model we propose that the questionnaire be altered and two percentages arise from each
question: one to indicate how close the sub-factor (answer) is to plan-driven development
and the other to indicate how close the sub-factor (answer) is to agile development. In
this model, the final result comes in the form of two percentages: one for agile methods,
and the other for plan-driven methods. This method would provide a more realistic view
of the final result.
69
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Graphical models
In these models, one can use a graphical approach to present the final decision.
One way is to place each of the percentages of the twelve factors on an axis. The closer
to the middle, the more an axis is in agile domain, and the farther from plan-driven
domain. This scheme can use the 12-factor weight and give them a graphical
representation to further illustrate the company in a snapshot. This approach is very
similar to Boehm's proposed technique; however, in our proposed model, we use all
twelve factors. The graph for such image is conventionally called a radar graph. Figures
2 shows the radar graph.
In addition to the radar representation, a bar representation can also be used. In
this graph the twelve factors are represented as bars. The shorter the height of the bar,
the more in the agile domain it is, and the longer the bar, the more in the plan-driven
domain it is. Figures 3 shows the bar graphs.
Sample data for the graphs:
Factor 1 17% Factor 7 10%
Factor 2 23% Factor 8 10%
Factor 3 15% Factor 9 5%
Factor 4 55% Factor 10 40%
Factor 5 30% Factor 11 20%
Factor 6 45% Factor 12 35%
70
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Graphical models
In these models, one can use a graphical approach to present the final decision.
One way is to place each of the percentages of the twelve factors on an axis. The closer
to the middle, the more an axis is in agile domain, and the farther from plan-driven
domain. This scheme can use the 12-factor weight and give them a graphical
representation to further illustrate the company in a snapshot. This approach is very
similar to Boehm’s proposed technique; however, in our proposed model, we use all
twelve factors. The graph for such image is conventionally called a radar graph. Figures
2 shows the radar graph.
In addition to the radar representation, a bar representation can also be used. In
this graph the twelve factors are represented as bars. The shorter the height o f the bar,
the more in the agile domain it is, and the longer the bar, the more in the plan-driven
domain it is. Figures 3 shows the bar graphs.
Sample data for the graphs:
Factor 1 17% Factor 7 10%
Factor 2 23% Factor 8 10%
Factor 3 15% Factor 9 5%
Factor 4 55% Factor 10 40%
Factor 5 30% Factor 11 20%
Factor 6 45% Factor 12 35%
70
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Figures 2. Radar graph.
Figure 3. Bar graph.
71
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Figures 2. Radar graph.
100
80
60
40
20
01 2 3 4 5 6 7 8 9 10 11 12
Figure 3. Bar graph.
71
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
4.2.2 Automated System Structure Design
A proposed structure of an automated system consists of three blocks: the Input
Block, the Decision Block, and the Output Block. Figure 4 illustrates the system
structure.
Input Block Decision
Block
1** User
Figure 4. System structure.
Output Block
Input block
The user interface should be developed in this block. The user interface provides
the communication between the user and the system [Luger]. The interface initially
provides users with some basic information regarding the operation of the system, system
applications, and some background knowledge of the software process management. The
usability of the user interface should be emphasised, since it is important to be able to
easily interact with the users.
Then the system should administer the questionnaire. A help mechanism would
further illustrate each question. The data entered (the answers of the questions) are sent to
the decision block for processing.
72
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
4.2.2 Automated System Structure Design
A proposed structure of an automated system consists of three blocks: the Input
Block, the Decision Block, and the Output Block. Figure 4 illustrates the system
structure.
User
DecisionBlock
OutputBlockInput Block
Figure 4. System structure.
Input block
The user interface should be developed in this block. The user interface provides
the communication between the user and the system [Luger]. The interface initially
provides users with some basic information regarding the operation of the system, system
applications, and some background knowledge of the software process management. The
usability of the user interface should be emphasised, since it is important to be able to
easily interact with the users.
Then the system should administer the questionnaire. A help mechanism would
further illustrate each question. The data entered (the answers o f the questions) are sent to
the decision block for processing.
72
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Decision block
A typical DSS would have the following components in its decision block:
Knowledge base (Rule base), Inference engine, and Working memory (Database). The
Rule base contains the following information: information for solving the problem
domain, additional material to tutor the user, and facts about the domain. The Inference
engine processes the knowledge in the Rule base. The model (reasoning) is implemented
in the Inference engine in order to make a judgment and arrive at the conclusion. The
Working memory, or the Database, contains all the information plus any extra material
that can be used by the Inference engine to process the rule base [Luger].
In our proposed system, the 12-factor weight and single model would be
implemented in the inference engine. The information regarding these factors and their
sub-factors would be placed in the Rule base. Also, the rules regarding decisive sub-
factors would be put in the Rule base. Such rules would allow drawing conclusions
without asking any more questions. For example, if a user enters a number larger than
150 for the number of people working on a project, the rule in the Rule base determines a
plan-driven method decision, without asking any more questions, since this sub-factor is
a decisive sub-factor.
All the supportive and complementary information, including feedback, can be
placed in the working memory (Database).
73
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Decision block
A typical DSS would have the following components in its decision block:
Knowledge base (Rule base), Inference engine, and Working memory (Database). The
Rule base contains the following information: information for solving the problem
domain, additional material to tutor the user, and facts about the domain. The Inference
engine processes the knowledge in the Rule base. The model (reasoning) is implemented
in the Inference engine in order to make a judgment and arrive at the conclusion. The
Working memory, or the Database, contains all the information plus any extra material
that can be used by the Inference engine to process the rule base [Luger].
In our proposed system, the 12-factor weight and single model would be
implemented in the inference engine. The information regarding these factors and their
sub-factors would be placed in the Rule base. Also, the rules regarding decisive sub
factors would be put in the Rule base. Such rules would allow drawing conclusions
without asking any more questions. For example, if a user enters a number larger than
150 for the number of people working on a project, the rule in the Rule base determines a
plan-driven method decision, without asking any more questions, since this sub-factor is
a decisive sub-factor.
All the supportive and complementary information, including feedback, can be
placed in the working memory (Database).
73
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Figure 5 illustrates the schematic of the decision block.
Inference Engine
Knowledge Base
(Rule Base)
Figure 5.
Working Memory
(Data Base) } Decision Block. (Figure from [Luger]).
Output block
The ruling of the decision is presented to the users by this block. Here, the user
discovers the result of the selection. The system declares whether the user is better off
adopting agile or plan-driven methods. If the result is in the middle, i.e. no clear decision
can be made, then the system suggests that the user either uses a hybrid method or
recruits someone to tailor a process specifically for their organization. In addition to this
decision, the output can include some recommendations and feedback regarding different
aspects and practices for their organization. Also, some on-line resources and support
could be available to the users in case they wish to discuss the results of this selection
with other professionals.
74
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Figure 5 illustrates the schematic o f the decision block.
InferenceEngine
Working Memory
(Data Base)
Knowledge Base
(Rule Base)
Figure 5. Decision Block. (Figure from [Luger]).
Output block
The ruling of the decision is presented to the users by this block. Here, the user
discovers the result of the selection. The system declares whether the user is better off
adopting agile or plan-driven methods. If the result is in the middle, i.e. no clear decision
can be made, then the system suggests that the user either uses a hybrid method or
recruits someone to tailor a process specifically for their organization. In addition to this
decision, the output can include some recommendations and feedback regarding different
aspects and practices for their organization. Also, some on-line resources and support
could be available to the users in case they wish to discuss the results of this selection
with other professionals.
74
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 5
Conclusions
5.1 Summary
The topics studied in this thesis were related to the principles of software
engineering in general and software process management in particular. We made the
assumption that in order to deliver a quality software product, satisfy customer demands,
and achieve organizational excellence, a structured, disciplined, and well-managed
process should be adopted [Benedicenti]. Thereafter, a study of different categories of
software processes was presented. It was discovered that there are two broad and distinct
groups of software process methodologies that are fundamentally different. Agile and
plan-driven approaches are the two types of software process methodologies. Using the
literature available to us, we determined the contrasts and organizational differences
between these two groups. These organizational differences were divided into four
groups: Application Characteristics, Management Characteristics, Technical
Characteristics, and Personnel Characteristics. Each of these characteristics were further
divided into 4 factors for a total of twelve distinguishing factors, referred to as (twelve
factors) [Boehm]. After this, we independently validated the soundness of the twelve
factors using case studies. Once the twelve factors were validated, we divided them into
single verifiable entities called sub-factors. The existence of each sub-factor was
confirmed by asking sample questions (SQ). By compiling the sample questions, a
questionnaire was produced to be given to managers and software developers.
75
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Chapter 5
Conclusions
5.1 Summary
The topics studied in this thesis were related to the principles of software
engineering in general and software process management in particular. We made the
assumption that in order to deliver a quality software product, satisfy customer demands,
and achieve organizational excellence, a structured, disciplined, and well-managed
process should be adopted [Benedicenti]. Thereafter, a study o f different categories of
software processes was presented. It was discovered that there are two broad and distinct
groups of software process methodologies that are fundamentally different. Agile and
plan-driven approaches are the two types o f software process methodologies. Using the
literature available to us, we determined the contrasts and organizational differences
between these two groups. These organizational differences were divided into four
groups: Application Characteristics, Management Characteristics, Technical
Characteristics, and Personnel Characteristics. Each of these characteristics were further
divided into 4 factors for a total of twelve distinguishing factors, referred to as (twelve
factors) [Boehm]. After this, we independently validated the soundness of the twelve
factors using case studies. Once the twelve factors were validated, we divided them into
single verifiable entities called sub-factors. The existence o f each sub-factor was
confirmed by asking sample questions (SQ). By compiling the sample questions, a
questionnaire was produced to be given to managers and software developers.
75
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
An assigned weight was given to each answer of a question on the questionnaire,
which was called Assigned weight of a question; this weight was tabulated using a
percentage value. A value of 100% was to be a perfect match to the plan-driven approach
domain and a 0% a perfect match to the agile development domain. Each of the sub-
factors also was given a general weight. Once the weights were assigned, two models for
processing the answers were presented. The 12-factor weight model analyzed each of the
factors using the sub-factor's general weight and the question's assigned weight. A
percentage for each factor is the result of the 12-factor weight. This value is obtained by
weighted average. The single-weight model used the results of the 12-factor weight and
added a criticality value to each of the factors, which will produce an overall percentage
that indicates in what process methodology domain a specific organization resides. These
two models were validated using the data available in the literature and the concepts of
CMMI and XP.
5.2 Conclusions
The software developers or managers of software development companies are
often unable to decide which type of software processes they should adopt for their
corresponding organizations as much expertise and knowledge is needed to draw such
decisions. It is extremely important for the success of an organization to select a suitable
software process. The implications for adopting an incompatible process for any
organization can be catastrophic [Boehm]. Nevertheless, access to experts who are able
to provide such expertise is expensive and limited. As a result, this study embarked to
propose a DSS to replace such expertise. This DSS is to provide preliminary but reliable
76
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
An assigned weight was given to each answer o f a question on the questionnaire,
which was called Assigned weight o f a question; this weight was tabulated using a
percentage value. A value o f 100% was to be a perfect match to the plan-driven approach
domain and a 0% a perfect match to the agile development domain. Each of the sub
factors also was given a general weight. Once the weights were assigned, two models for
processing the answers were presented. The 12-factor weight model analyzed each of the
factors using the sub-factor’s general weight and the question’s assigned weight. A
percentage for each factor is the result o f the 12-factor weight. This value is obtained by
weighted average. The single-weight model used the results o f the 12-factor weight and
added a criticality value to each of the factors, which will produce an overall percentage
that indicates in what process methodology domain a specific organization resides. These
two models were validated using the data available in the literature and the concepts of
CMMI and XP.
5.2 Conclusions
The software developers or managers of software development companies are
often unable to decide which type of software processes they should adopt for their
corresponding organizations as much expertise and knowledge is needed to draw such
decisions. It is extremely important for the success of an organization to select a suitable
software process. The implications for adopting an incompatible process for any
organization can be catastrophic [Boehm], Nevertheless, access to experts who are able
to provide such expertise is expensive and limited. As a result, this study embarked to
propose a DSS to replace such expertise. This DSS is to provide preliminary but reliable
76
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
means to help managers and software developers with an overview of their organization's
characteristics as well as providing expert opinion on the type of software process they
may adopt. However, by no means is this system able to replace an expert. The primary
function of the system is to only to show the users where their organizations lie in regards
with the compatibility with different process methodologies. Secondly, it facilitates the
decision making process for the users for the selection of a software process
methodology. The proposed system, in addition, offers some unbiased advice and links
to further resources so that the managers can find more information in this regard. It can
also encourage the users to find more information and educate themselves in the areas of
software process management.
In short, it is difficult and expensive to select a suitable process methodology for a
given company. The DSS proposed in this study can definitely aid in selecting a suitable
software process at a reasonable cost, but it cannot completely replace an expert.
5.2 Future work
In the future, it is essential to further validate the two models presented in this
study (12-factor weight and single weight). There are two more validation techniques
presented in chapter four. However, more validation techniques can be devised to verify
the presented models. These models can inspire a good base for any future empirical
work with regards to software process management.
Two additional models have also been proposed (two-weight model and graphical
model). In the future, these models may be further developed and validated.
77
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
means to help managers and software developers with an overview of their organization’s
characteristics as well as providing expert opinion on the type o f software process they
may adopt. However, by no means is this system able to replace an expert. The primary
function of the system is to only to show the users where their organizations lie in regards
with the compatibility with different process methodologies. Secondly, it facilitates the
decision making process for the users for the selection of a software process
methodology. The proposed system, in addition, offers some unbiased advice and links
to further resources so that the managers can find more information in this regard. It can
also encourage the users to find more information and educate themselves in the areas of
software process management.
In short, it is difficult and expensive to select a suitable process methodology for a
given company. The DSS proposed in this study can definitely aid in selecting a suitable
software process at a reasonable cost, but it cannot completely replace an expert.
5.2 Future work
In the future, it is essential to further validate the two models presented in this
study (12-factor weight and single weight). There are two more validation techniques
presented in chapter four. However, more validation techniques can be devised to verify
the presented models. These models can inspire a good base for any future empirical
work with regards to software process management.
Two additional models have also been proposed (two-weight model and graphical
model). In the future, these models may be further developed and validated.
77
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
This study also proposes a design structure for the development of a decision
support system. This structure is divided into three blocks: the input block, the decision
block, and the output block. Also a proposed design for the decision block is given using
a typical expert system scheme. Using the concepts proposed, one should be able to
create the DSS itself. It is also noteworthy to mention that such a system can easily be
made into a web application for online clients.
78
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
This study also proposes a design structure for the development o f a decision
support system. This structure is divided into three blocks: the input block, the decision
block, and the output block. Also a proposed design for the decision block is given using
a typical expert system scheme. Using the concepts proposed, one should be able to
create the DSS itself. It is also noteworthy to mention that such a system can easily be
made into a web application for online clients.
78
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
References
[ADC]
[Agiledata]
[Allen]
[AM]
[Ambler]
[Ambysoft]
[Andreou]
[Beck]
[Beck 2000]
[Benedicenti]
Agile Development Conference website
http://www.agiledevelopmentconference.com/2003/schedule/researchpape
rs.html Accessed October 2004
Agile Data website, Scott Ambler, http://www.agiledata.org/ Accessed
June 24, 2005
XP Explained, Paul Allen, The Cutter Edge, June 5, 2001
Agile Modeling website, Scott Ambler, http://www.agilemodeling.com/
Accessed June 24, 2005
Agile Modeling: Effective Practices for Extreme Programming and the
Unified Process, Scott Ambler, Ron Jeffries, John Wiley and Sons Ltd,
April 2002
AmbySoft website, Scott Ambler http://www.ambysoft.com/ Accessed
June 24, 2005
Introducing a process framework for implementing models of large-scale
real-world systems in software, Andreas Andreou, Wiley Interscience,
Vol. 9 No. 3 (p 133-155)
Extreme Programming Pros and Cons: What Questions Remain?, Kent
Beck, IEEE Computer Society Dynabook, September 2001
Extreme Programming Explained, Kent Beck, Addison-Wesley, 2000
The process Modeling Handbook, L. Benedicenti, University of Regina,
2005
79
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
References
[ADC]
[Agiledata]
[Allen]
[AM]
[Ambler]
[Ambysoft]
[Andreou]
[Beck]
[Beck 2000]
[Benedicenti]
Agile Development Conference website
http://www.agiledevelopmentconference.com/2003/schedule/researchpape
rs.html Accessed October 2004
Agile Data website, Scott Ambler, http://www.agiledata.org/ Accessed
June 24, 2005
XP Explained, Paul Allen, The Cutter Edge, June 5, 2001
Agile Modeling website, Scott Ambler, http://www.agilemodeling.com/
Accessed June 24, 2005
Agile Modeling: Effective Practices for Extreme Programming and the
Unified Process, Scott Ambler, Ron Jeffries, John Wiley and Sons Ltd,
April 2002
AmbySoft website, Scott Ambler http://www.ambysoft.com/ Accessed
June 24, 2005
Introducing a process framework for implementing models of large-scale
real-world systems in software, Andreas Andreou, Wiley Interscience,
Vol. 9 No. 3 (p 133-155)
Extreme Programming Pros and Cons: What Questions Remain?, Kent
Beck, IEEE Computer Society Dynabook, September 2001
Extreme Programming Explained, Kent Beck, Addison-Wesley, 2000
The process Modeling Handbook, L. Benedicenti, University o f Regina,
2005
79
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[Brooks] The Mythical Man-Month: Essays on Software Engineering, 20th
Anniversary Edition, Frederick Brooks, Addison-Wesley, 1995
[Brooks 04] Results of rapid bottom-up software process modeling, Andrew Brooks,
Wiley Interscience, Vol. 9 No. 4 (p 265-278)
[Boehm] Balancing Agility and Discipline: A guide for the Perplexed, Barry
Boehm, Richard Turner, Addison-Wesley, 2002
[Boehm 02 A] CMMI and the Balance of Discipline and Agility, Barry Boehm, USC
CMMI Technology Conference '02, November 13, 2002
[Boehm 02 B] Rebalancing Your Organization's Agility and Discipline, Barry Boehm,
Richard Turner, 2002
[Boehm 03] Value-Based Software Engineering: A Case Study, Barry Boehm, Li Guo
Huang, IEEE Computer Society, March 2003
[Boehm 04] Observations on Balancing Discipline and Agility, Barry Boehm,
University of Southern California, Richard Turner, George Washington
University
[Casey] A practical Application of the IDEAL (SM) Model, Valentine Casey, Ita
Richardson, University of Limerick, Ireland, Software Process
Improvement and Practice, 9 (p123-132), 2004
[CBS] COTS-Based Systems (CBS) Initiative website
http://www.sei.cmu.edu/cbs Accessed June 2005
[CeBASE] Centre for empirically based Software Engineering website,
www.cebase.org Accessed July 2005
80
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[Brooks] The Mythical Man-Month: Essays on Software Engineering, 20th
Anniversary Edition, Frederick Brooks, Addison-Wesley, 1995
[Brooks 04] Results o f rapid bottom-up software process modeling, Andrew Brooks,
Wiley Interscience, Vol. 9 No. 4 (p 265-278)
[Boehm] Balancing Agility and Discipline: A guide for the Perplexed, Barry
Boehm, Richard Turner, Addison-Wesley, 2002
[Boehm 02 A] CMMI and the Balance of Discipline and Agility, Barry Boehm, USC
CMMI Technology Conference ’02, November 13, 2002
[Boehm 02 B] Rebalancing Your Organization’s Agility and Discipline, Barry Boehm,
Richard Turner, 2002
[Boehm 03] Value-Based Software Engineering: A Case Study, Barry Boehm, Li Guo
Huang, IEEE Computer Society, March 2003
[Boehm 04] Observations on Balancing Discipline and Agility, Barry Boehm,
University o f Southern California, Richard Turner, George Washington
University
[Casey] A practical Application of the IDEAL (SM) Model, Valentine Casey, Ita
Richardson, University of Limerick, Ireland, Software Process
Improvement and Practice, 9 (pl23-132), 2004
[CBS] COTS-Based Systems (CBS) Initiative website
http://www.sei.cmu.edu/cbs Accessed June 2005
[CeBASE] Centre for empirically based Software Engineering website,
www.cebase.org Accessed July 2005
80
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[Chan] An Expert System Architectural Framework for Engineering Selection,
Christine Chan, Patrick Lau, University of Regina, Engineering
Applications Artificial Intelligence, Vol. 10. No. 4. (p 357-367), 1997
[Chrissis] CMMI ® Interpretive Guidance Project: What We Learned, Mary Beth
Chrissis, Mike Konrad, Sandy Shrum, Kenneth Smith, Gian Wemyss
http://www.sei.cmu.edu/pub/documents/04.reports/pdf/04sr008.pdf
Accessed October 2004
[CMMI] Capability Maturity Model 0 Integration (CMMI SM), Version 1.1, SEI,
2002, continuous representation
[Coad] Java Modeling in colour with UML, Peter Coad, Eric LeFebvre, and Eric
DeLuca, Prentice-Hall 2000
[Cockburn] Agile Software Development, Alistair Cockburn, Addison-Wesley, 2002
[Cockburn 03] Agile Software Development: It's about Feedback and Change, Laurie
Williams, North Carolina State University; and Alistair Cockburn,
Humans and Technology, Computer Magazine, June 2003
[Constantine] Methodological Agility, Larry Constantine, Software development on-
line, (p 67-69), June 2001
[Dion] Process Academy's White Paper, What is the CMMI?, Version: 1.00,
Francis Dion, July 30, 2003
http://www.dovico.com/documents/What-is-the-CMMI-process-
improvement-v1-00-20030730.pdf
[DoD-STD] http://www.software.org/Quagmire/descriptions/dod-std-2167a.asp
Accessed July 5, 2005
81
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[Chan] An Expert System Architectural Framework for Engineering Selection,
Christine Chan, Patrick Lau, University o f Regina, Engineering
Applications Artificial Intelligence, Vol. 10. No. 4. (p 357-367), 1997
[Chrissis] CMMI ® Interpretive Guidance Project: What We Learned, Mary Beth
Chrissis, Mike Konrad, Sandy Shrum, Kenneth Smith, Gian Wemyss
http://www.sei.cmu.edu/pub/documents/04.reports/pdf/04sr008.pdf
Accessed October 2004
[CMMI] Capability Maturity Model ® Integration (CMMI SM), Version 1.1, SEI,
2002, continuous representation
[Coad] Java Modeling in colour with UML, Peter Coad, Eric LeFebvre, and Eric
DeLuca, Prentice-Hall 2000
[Cockbum] Agile Software Development, Alistair Cockbum, Addison-Wesley, 2002
[Cockbum 03] Agile Software Development: It's about Feedback and Change, Laurie
Williams, North Carolina State University; and Alistair Cockbum,
Humans and Technology, Computer Magazine, June 2003
[Constantine] Methodological Agility, Larry Constantine, Software development on
line, (p 67-69), June 2001
[Dion] Process Academy's White Paper, What is the CMMI?, Version: 1.00,
Franks Dion, July 30, 2003
http://www.dovico.com/documents/What-is-the-CMMI-process-
improvement-v 1 -00-2003 073 O.pdf
[DoD-STD] http://www.software.org/Quagmire/descriptions/dod-std-2167a.asp
Accessed July 5, 2005
81
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[EIA/IEEE] http://standards.ieee.org/reading/ieee/std public/description/se/12207.0-
1996 desc.html Accessed July 5, 2005
[Emery] The Dangers of Extreme Programming, Patrick Emery, 2002,
http://members.cox.net/pemery/ Accessed March 2005
[Evans] A Business Case for Software Process Improvement, Paul Evans, Black
Diamond Software, 2003
[Fowler 2000] Planning Extreme Programming, Kent Beck, Martin Fowler, Addison-
Wesley, October 2000
[Fowler 03] The New Methodology, Martin Fowler, April 2003
http://martinfowler.com/articles/newMethodology.html Accessed June 24,
2005
[GE] General electric website, http://www.ge.com Accessed July 5, 2005
[Giese] Data Collection in a Process-Sensitive Software Engineering
Environment, P. Giese, B. Hoisly, C. M. Lottz, and H. D. Rombach
Research Group for Software Engineering Department of Computer
Science University of Kaiserslautern, Position Paper for ISPW9, 5-7
October 1994
[Highsmith 02 A]
Agile Software Development Ecosystems, Jim Highsmith, Addison-
Wesley, 2002
[Highsmith 02 B]
What Is Agile Software Development?, Jim Highsmith, CrossTalk
magazine, October 2002
82
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[EIA/IEEE] http://standards.ieee.org/reading/ieee/std public/description/se/12207.0-
1996 desc.html Accessed July 5, 2005
[Emery] The Dangers of Extreme Programming, Patrick Emery, 2002,
http://members.cox.net/pemery/ Accessed March 2005
[Evans] A Business Case for Software Process Improvement, Paul Evans, Black
Diamond Software, 2003
[Fowler 2000] Planning Extreme Programming, Kent Beck, Martin Fowler, Addison-
Wesley, October 2000
[Fowler 03] The New Methodology, Martin Fowler, April 2003
http://martinfowler.com/articles/newMethodology.html Accessed June 24,
2005
[GE] General electric website, http://www.ge.com Accessed July 5, 2005
[Giese] Data Collection in a Process-Sensitive Software Engineering
Environment, P. Giese, B. Hoisly, C. M. Lottz, and H. D. Rombach
Research Group for Software Engineering Department o f Computer
Science University o f Kaiserslautern, Position Paper for ISPW9, 5-7
October 1994
[Highsmith 02 A]
Agile Software Development Ecosystems, Jim Highsmith, Addison-
Wesley, 2002
[Highsmith 02 B]
What Is Agile Software Development?, Jim Highsmith, CrossTalk
magazine, October 2002
82
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
http://www.adaptivesd.com/articles/cross oct02.pdf Accessed November
2004
[Highsmith 04]
Agile Project Management: Creating Innovative Products, Jim Highsmith,
Addison-Wesley, 2004
[Hitachi] Hitachi website, http://www.hitachi-soft.com/ Accessed July 4, 2005
[Humphrey 97]
Introduction to the Personal Software Process, Watts Humphrey, Addison-
Wesley, 1997
[Hyde] Intangible benefits of CMM-based software process improvement, Kevin
Hyde, David Wilson, Wiley Interscience Vol. 9 No. 4 (p 217-228)
[IBM] IBM website, http://www.rational.com Accessed July 5, 2005
[IEEE-STD] IEEE standards website, http://standards.ieee.org/ Accessed June 20, 2005
[ISO 15504] ISO 15504: Information Technology - Software Process Assessment
Guide To Qualification Of Assessors, ISO/IEC JTC1/SC7 Software
Engineering Canada (SCC), 1998
[Jeffries] Extreme Programming and the Capability Maturity Model, Ron Jeffries,
2000, http://www.xprogramming.com/xpmag/xp and cmm.htm Accessed
January 2005
[Lee] Multi-project software engineering analysis using systems thinking,
Bengee Lee, James Miller, Wiley Interscience Vol. 9 No. 3(p 173-214)
[Luger] Artificial Intelligence: Structures and Strategies for Complex Problem-
Solving, George Luger, The Benjamin/Cummings Pub. Co., Inc. 2004
83
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
http://www.adaptivesd.com/articles/cross oct02.pdf Accessed November
2004
[Highsmith 04]
Agile Project Management: Creating Innovative Products, Jim Highsmith,
Addison-Wesley, 2004
[Hitachi] Hitachi website, http://www.hitachi-soft.com/ Accessed July 4, 2005
[Humphrey 97]
Introduction to the Personal Software Process, Watts Humphrey, Addison-
Wesley, 1997
[Hyde] Intangible benefits of CMM-based software process improvement, Kevin
Hyde, David Wilson, Wiley Interscience Vol. 9 No. 4 (p 217-228)
[IBM] IBM website, http://www.rational.com Accessed July 5, 2005
[IEEE-STD] IEEE standards website, http://standards.ieee.org/ Accessed June 20, 2005
[ISO 15504] ISO 15504: Information Technology - Software Process Assessment
Guide To Qualification O f Assessors, ISO/IEC JTC1/SC7 Software
Engineering Canada (SCC), 1998
[Jeffries] Extreme Programming and the Capability Maturity Model, Ron Jeffries,
2000, http://www.xprogramming.com/xpmag/xp and cmm.htm Accessed
January 2005
[Lee] Multi-project software engineering analysis using systems thinking,
Bengee Lee, James Miller, Wiley Interscience Vol. 9 No. 3(p 173-214)
[Luger] Artificial Intelligence: Structures and Strategies for Complex Problem-
Solving, George Luger, The Benjamin/Cummings Pub. Co., Inc. 2004
83
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[Manifesto]
[McBreen]
[Mills]
[Nawrocki]
[Paulk]
[Pressman]
[Refactoring]
[Rico]
[Rumpe]
Manifesto website, http://www.agilemanifesto.org/ Accessed on June 6,
2005
Questioning Extreme Programming, Pete McBreen, Addison-Wesley,
2003
Cleanroom Software Engineering, Harlan Mills, Michael Dyer, Richard
Linger, IEEE Software 2, No. 9, (p19-24), 1984
Comparison of CMM Level 2 and Extreme Programming, Jerzy
Nawrocki, Poznan University of Technology, Poland
Extreme Programming from a CMM Perspective, Mark Paulk, Software
Engineering Institute, 2001
Pressman website, http://www.rspa.com/spi/ Accessed June 24, 2005
Refactoring website, Martin Fowler, http://www.refactoring.com/
Accessed June 24, 2005
Using Cost Benefit Analyses to Develop Software Process Improvement
(SPI) Strategies, David Rico, Data &Analysis Center for Software
(DACS), 2000
Quantitative Survey on Extreme Programming Projects, Bernhard Rumpe,
Astrid Schroder, Software & Systems Engineering Munich University of
Technology,
http://www.agilealliance.org/articles/articles/QuantitativeSurvey.pdf
Accessed June 24, 2005
84
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[Manifesto]
[McBreen]
[Mills]
[Nawrocki]
[Paulk]
[Pressman]
[Refactoring]
[Rico]
[Rumpe]
Manifesto website, http://www.agilemanifesto.org/ Accessed on June 6,
2005
Questioning Extreme Programming, Pete McBreen, Addison-Wesley,
2003
Cleanroom Software Engineering, Harlan Mills, Michael Dyer, Richard
Linger,, IEEE Software 2, No. 9, (p i9-24), 1984
Comparison o f CMM Level 2 and Extreme Programming, Jerzy
Nawrocki, Poznan University of Technology, Poland
Extreme Programming from a CMM Perspective, Mark Paulk, Software
Engineering Institute, 2001
Pressman website, http://www.rspa.com/spi/ Accessed June 24, 2005
Refactoring website, Martin Fowler, http://www.refactoring.com/
Accessed June 24, 2005
Using Cost Benefit Analyses to Develop Software Process Improvement
(SPI) Strategies, David Rico, Data &Analysis Center for Software
(DACS), 2000
Quantitative Survey on Extreme Programming Projects, Bernhard Rumpe,
Astrid Schroder, Software & Systems Engineering Munich University of
Technology,
http://www.agilealliance.org/articles/articles/OuantitativeSurvey.pdf
Accessed June 24, 2005
84
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[SCAMPI] Standard CMMI SM Appraisal Method for Process Improvement
(SCAMPI SM), Version 1.1, Members of the Assessment Method
Integrated Team, Method Definition Document, SEI, 2001
[Scacchi] Comparative Case Analysis for Understanding Software Processes, Walt
Scacchi, USC ATRIUM Laboratory, Los Angeles, CA
http://www.usc.edu/dept/ATRIUM/Papers/New/CCA-Draft.html
Accessed June 24, 2005
[Schwaber] Agile Software development with Scrum, Ken Schwaber and Mike
Beedle, Prentice-Hall, 2002
[SEI] http://www.sei.cmu.edu/ Accessed July 5, 2005
[Shull] Knowledge-Sharing Issues in Experimental Software Engineering, Forrest
Shull
http://www.cs.umd.edu/users/basili/cfBasilipapers/Knowledge%20Sharing
%20Issues%2082.91.pdf Accessed June 24, 2005
[Sliwa] Users warm up to agile programming, Carole Sliwa, ComputerWorld p.8,
March 18, 2002
[SW-CMM] Key Practices of the Capability Maturity Model SM, Mark Paulk, Version
1.1, SEI, 1993
[Tyrrell] The Many Dimensions of the Software Process, Sebastian Tyrrell, ACM
Crossroads, Summer 2000
[Williams] Strengthening the Case for Pair Programming, Williams, L., R.R. Kessler,
et al. IEEE Software, 17, 4 (July/August 2000) 19 — 25
[XP] http://www.extremeprogramming.org/ Accessed June 2005
85
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[SCAMPI]
[Scacchi]
[Schwaber]
[SEI]
[Shull]
[Sliwa]
[SW-CMM]
[Tyrrell]
[Williams]
[XP]
Standard CMMI SM Appraisal Method for Process Improvement
(SCAMPI SM), Version 1.1, Members of the Assessment Method
Integrated Team, Method Definition Document, SEI, 2001
Comparative Case Analysis for Understanding Software Processes, Walt
Scacchi, USC ATRIUM Laboratory, Los Angeles, CA
http://www.usc.edu/dept/ATRIUM/Papers/New/CCA-Draft.html
Accessed June 24, 2005
Agile Software development with Scrum, Ken Schwaber and Mike
Beedle, Prentice-Hall, 2002
http://www.sei.emu.edu/ Accessed July 5, 2005
Knowledge-Sharing Issues in Experimental Software Engineering, Forrest
Shull
http://www.cs.umd.edu/users/basili/cfBasilipapers/Knowledge%20Sharing
%20Issues%2082.91 .pdf Accessed June 24,2005
Users warm up to agile programming, Carole Sliwa, ComputerWorld p.8,
March 18, 2002
Key Practices of the Capability Maturity Model SM, Mark Paulk, Version
1.1, SEI, 1993
The Many Dimensions o f the Software Process, Sebastian Tyrrell, ACM
Crossroads, Summer 2000
Strengthening the Case for Pair Programming, Williams, L., R.R. Kessler,
et al. IEEE Software, 17, 4 (July/August 2000) 1 9 - 2 5
http://www.extremeprogramming.org/ Accessed June 2005
85
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Appendix A
Overview of the CMMI
The following paragraphs are directly taken from the literature for the readers' convenience. Readers are encouraged to consult the literature for more in depth information.
Capability Maturity Model Integration (CMMI)
The purpose of CMM Integration is to provide guidance for improving organizations' processes and the ability to manage the development, acquisition, and maintenance of products or services. CMM Integration places proven approaches into a structure that helps organizations appraise its organizational maturity or process area capability, establish priorities for improvement, and implement these improvements. The organizations can use a CMMI model to help set process-improvement objectives and priorities, improve processes, and provide guidance for ensuring stable, capable, and mature processes. A selected CMMI model can serve as a guide for improvement of organizational processes. [CMMI]
Process Maturity
In CMMI, software process maturity is the extent to which a specific process is explicitly defined, managed, measured, controlled, and effective. Maturity implies a potential for growth in capability and indicates both the richness of an organization's software process and the consistency with which it is applied in projects throughout the organization. The software process is well understood throughout a mature organization, usually through documentation and training, and the process is continually being monitored and improved by its users. The capability of a mature software process is known. Software process maturity implies that the productivity and quality resulting from an organization's software process can be improved over time through consistent gains in the discipline achieved by using its software process. [SW-CMM]
Maturity Levels
A maturity level is a well-defined evolutionary plateau toward achieving a mature software process. Each maturity level provides a layer in the foundation for continuous process improvement. Each level comprises a set of process goals that, when satisfied,
86
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Appendix A
Overview of the CMMI
The following paragraphs are directly taken from the literature for the readers’ convenience. Readers are encouraged to consult the literature for more in depth information.
Capability Maturity Model Integration (CMMI)
The purpose of CMM Integration is to provide guidance for improving organizations’ processes and the ability to manage the development, acquisition, and maintenance of products or services. CMM Integration places proven approaches into a structure that helps organizations appraise its organizational maturity or process area capability, establish priorities for improvement, and implement these improvements. The organizations can use a CMMI model to help set process-improvement objectives and priorities, improve processes, and provide guidance for ensuring stable, capable, and mature processes. A selected CMMI model can serve as a guide for improvement of organizational processes. [CMMI]
Process Maturity
In CMMI, software process maturity is the extent to which a specific process is explicitly defined, managed, measured, controlled, and effective. Maturity implies a potential for growth in capability and indicates both the richness of an organization's software process and the consistency with which it is applied in projects throughout the organization. The software process is well understood throughout a mature organization, usually through documentation and training, and the process is continually being monitored and improved by its users. The capability of a mature software process is known. Software process maturity implies that the productivity and quality resulting from an organization’s software process can be improved over time through consistent gains in the discipline achieved by using its software process. [SW-CMM]
Maturity Levels
A maturity level is a well-defined evolutionary plateau toward achieving a mature software process. Each maturity level provides a layer in the foundation for continuous process improvement. Each level comprises a set of process goals that, when satisfied,
86
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
stabilize an important component of the software process. Achieving each level of the maturity framework establishes a different component in the software process, resulting in an increase in the process capability of the organization. There are five maturity levels, numbered 1 through 5. Each maturity level comprises a predefined set of process areas. [SW-CMM]
1. Initial 2. Managed 3. Defined 4. Quantitatively Managed 5. Optimizing
Initial
The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort. There is not a defined process that is consistently followed by different project teams. Activity is chaotic and success depends on heroic efforts of individuals. Measurement and reporting, if they take place at all, vary from project to project. [Evans]
Repeatable
Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications. This level focuses on several practices that bring project under management control and make it possible for an organization to achieve repeatable results. The main areas addressed are project management, requirements, configuration management, and quality assurance. [Evans]
Defined
The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software. This level is about institutionalizing the good practices of level two that is these practices need to be documented and teams need to be trained in them. [Evans]
Managed
Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled. The
87
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
stabilize an important component of the software process. Achieving each level of the maturity framework establishes a different component in the software process, resulting in an increase in the process capability of the organization. There are five maturity levels, numbered 1 through 5. Each maturity level comprises a predefined set of process areas. [SW-CMM]
1. Initial2. Managed3. Defined4. Quantitatively Managed5. Optimizing
Initial
The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort. There is not a defined process that is consistently followed by different project teams. Activity is chaotic and success depends on heroic efforts o f individuals. Measurement and reporting, if they take place at all, vary from project to project. [Evans]
Repeatable
Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications. This level focuses on several practices that bring project under management control and make it possible for an organization to achieve repeatable results. The main areas addressed are project management, requirements, configuration management, and quality assurance. [Evans]
Defined
The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software. This level is about institutionalizing the good practices o f level two that is these practices need to be documented and teams need to be trained in them. [Evans]
Managed
Detailed measures o f the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled. The
87
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
organization institutes a quality and metrics management program. The software process as well as the products produced are quantitatively managed and controlled. [Evans]
Optimizing
Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies. [SW-CMM]
Capability Levels
Capability levels focus on growing the organization's ability to perform, control, and improve its performance in a process area. Capability levels enable you to track, evaluate, and demonstrate your organization's progress as you improve processes associated with a process area. Capability levels build on each other, providing a recommended order for approaching process improvement. [CMMI] There are six capability levels, designated by the numbers 0 through 5: 0. Incomplete 1. Performed 2. Managed 3. Defined 4. Quantitatively Managed 5. Optimizing
CMMI Model Components
Process Areas: A process area is a cluster of related practices in an area that, when performed collectively, satisfy a set of goals considered important for making significant improvement in that area. All CMMI process areas are common to both continuous and staged representations. In the continuous representation, process areas are organized by process area categories. [CMMI]
Specific Goals: Specific goals apply to a process area and address the unique characteristics that describe what must be implemented to satisfy the process area. Specific goals are required model components and are used in appraisals to help determine whether a process area is satisfied. There can be specific practices at different capability levels mapped to the same goal. However, every goal has at least one capability level 1 practice mapped to it. [CMMI]
Specific Practices: A specific practice is an activity that is considered important in achieving the associated specific goal. The specific practices describe the activities expected to result in achievement of the specific goals of a process area. Every specific
88
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
organization institutes a quality and metrics management program. The software process as well as the products produced are quantitatively managed and controlled. [Evans]
Optimizing
Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies. [SW-CMM]
Capability Levels
Capability levels focus on growing the organization’s ability to perform, control, and improve its performance in a process area. Capability levels enable you to track, evaluate, and demonstrate your organization’s progress as you improve processes associated with a process area. Capability levels build on each other, providing a recommended order for approaching process improvement. [CMMI]There are six capability levels, designated by the numbers 0 through 5:0. Incomplete1. Performed2. Managed3. Defined4. Quantitatively Managed5. Optimizing
CMMI Model Components
Process Areas: A process area is a cluster of related practices in an area that, when performed collectively, satisfy a set of goals considered important for making significant improvement in that area. All CMMI process areas are common to both continuous and staged representations. In the continuous representation, process areas are organized by process area categories. [CMMI]
Specific Goals: Specific goals apply to a process area and address the unique characteristics that describe what must be implemented to satisfy the process area. Specific goals are required model components and are used in appraisals to help determine whether a process area is satisfied. There can be specific practices at different capability levels mapped to the same goal. However, every goal has at least one capability level 1 practice mapped to it. [CMMI]
Specific Practices: A specific practice is an activity that is considered important in achieving the associated specific goal. The specific practices describe the activities expected to result in achievement of the specific goals of a process area. Every specific
88
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
practice is associated with a capability level. Specific practices are expected model components. [CMMI]
Typical Work Products: Typical work products are an informative model component that provides example outputs from a specific or generic practice. These examples are called "typical work products" because there are often other work products that are just as effective, but are not listed. [CMMI]
Subpractices: Subpractices are detailed descriptions that provide guidance for interpreting specific or generic practices. Subpractices may be worded as if prescriptive, but are actually an informative component in CMMI models meant only to provide ideas that may be useful for process improvement. [CMMI]
Generic Goals: Each capability level (1-5) has only one generic goal that describes the institutionalization that the organization must achieve at that capability level. Thus, there are five generic goals; each appears in every process area. Achievement of a generic goal in a process area signifies improved control in planning and implementing the processes associated with that process area thus indicating whether these processes are likely to be effective, repeatable, and lasting. Generic goals are required model components and are used in appraisals to determine whether a process area is satisfied. (Only the generic goal title and statement appear in the process areas.)
Generic Practices: Generic practices provide institutionalization to ensure that the processes associated with the process area will be effective, repeatable, and lasting. Generic practices are categorized by capability level and are expected components in CMMI models. [CMMI]
CMMI Staged Vs. Continuous
The continuous representation uses capability levels to measure process improvement, while the staged representation uses maturity levels. The main difference between maturity levels and capability levels is the representation they belong to and how they are applied. [CMMI]
• Capability levels, which belong to the continuous representation, apply to an organization's process-improvement achievement for each process area. There are six capability levels, numbered 0 through 5. Each capability level corresponds to a generic goal and a set of generic and specific practices. [CMMI]
• Maturity levels, which belong to the staged representation, apply to an organization's overall maturity. There are five maturity levels, numbered 1 through 5. Each maturity level comprises a predefined set of process areas. [CMMI]
89
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
practice is associated with a capability level. Specific practices are expected model components. [CMMI]
Typical Work Products: Typical work products are an informative model component that provides example outputs from a specific or generic practice. These examples are called “typical work products” because there are often other work products that are just as effective, but are not listed. [CMMI]
Subpractices: Subpractices are detailed descriptions that provide guidance for interpreting specific or generic practices. Subpractices may be worded as if prescriptive, but are actually an informative component in CMMI models meant only to provide ideas that may be useful for process improvement. [CMMI]
Generic Goals: Each capability level (1-5) has only one generic goal that describes the institutionalization that the organization must achieve at that capability level. Thus, there are five generic goals; each appears in every process area. Achievement of a generic goal in a process area signifies improved control in planning and implementing the processes associated with that process area thus indicating whether these processes are likely to be effective, repeatable, and lasting. Generic goals are required model components and are used in appraisals to determine whether a process area is satisfied. (Only the generic goal title and statement appear in the process areas.)
Generic Practices: Generic practices provide institutionalization to ensure that the processes associated with the process area will be effective, repeatable, and lasting. Generic practices are categorized by capability level and are expected components in CMMI models. [CMMI]
CMMI Staged Vs. Continuous
The continuous representation uses capability levels to measure process improvement, while the staged representation uses maturity levels. The main difference between maturity levels and capability levels is the representation they belong to and how they are applied. [CMMI]
• Capability levels, which belong to the continuous representation, apply to anorganization’s process-improvement achievement for each process area. There are six capability levels, numbered 0 through 5. Each capability level corresponds to a generic goal and a set o f generic and specific practices. [CMMI]
• Maturity levels, which belong to the staged representation, apply to anorganization’s overall maturity. There are five maturity levels, numbered 1through 5. Each maturity level comprises a predefined set o f process areas. [CMMI]
89
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The continuous representation has more specific practices than the staged representation because the continuous representation has two types of specific practices, base and advanced, whereas the staged representation has only one type of specific practice. In the continuous representation, generic practices exist for capability levels 1-5, whereas, in the staged representation, only the generic practices from capability levels 2 and 3 appear; there are no generic practices from capability levels 1, 4, and 5. [CMMI]
Table A. CMMI Staged Vs. Continuous [Emery]
Continuous Representation Staged Representation
Process areas are organized by process area categories. !Process areas are organized by maturity level.
Improvement is measured using capability levels that are used to measure maturity or a particular process across an organization.
Improvement is measured using maturity levels that are used to measure maturity of a set of processes across an organization.
There are six capability levels 0-5. There are five maturity levels 1-5.
There are N + advanced practices because there are two types of specific practices: base and advanced.
There are N practices because there is only onetype of specific practice. The concept of advanced practices is not used.
Capability levels are used to organize the generic practices.
Common features are used to organize generic practices.
All generic practices are listed in each of the process areas.
Only the generic practices that are applicable tothat maturity level are listed in the process areas at that level.
Generic practices exist for capability levels 1-5. Generic practices exist for maturity levels 1-3.
Overview text is written to describe the continuous representation.
Overview text is written to describe the staged representation.
An additional appendix describing equivalent staging is included, which allows comparison between the continuous and staged representations.
There is no equivalence concept back to the continuous representation.
90
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The continuous representation has more specific practices than the staged representation because the continuous representation has two types of specific practices, base and advanced, whereas the staged representation has only one type of specific practice.In the continuous representation, generic practices exist for capability levels 1-5, whereas, in the staged representation, only the generic practices from capability levels 2 and 3 appear; there are no generic practices from capability levels 1, 4, and 5. [CMMI]
Table A. CMMI Staged Vs. Continuous [Emery]
Continuous R epresentation Staged Representation
Process areas are organized by process area categories. Process areas are organized by maturity level.
Improvement is measured using capability levels that are used to measure maturity or a particular process across an organization.
Improvement is measured using maturity levels that are used to measure maturity o f a set of processes across an organization.
There are six capability levels 0-5. There are five maturity levels 1-5.
There are N + advanced practices because there are two types of specific practices: base and advanced.
There are N practices because there is only one type o f specific practice. The concept of advanced practices is not used.
Capability levels are used to organize the generic practices.
Common features are used to organize generic practices.
All generic practices are listed in each o f the process areas.
Only the generic practices that are applicable to that maturity level are listed in the process areas at that level.
Generic practices exist for capability levels 1-5. Generic practices exist for maturity levels 1-3.Overview text is written to describe the continuous representation.
Overview text is written to describe the staged representation.
An additional appendix describing equivalent staging is included, which allows comparison between the continuous and staged representations.
There is no equivalence concept back to the continuous representation.
90
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Appendix B
Overview of the XP
The following paragraphs are directly taken from the literature. Readers are encouraged to consult with the literature for more in depth information.
Extreme Programming
Extreme Programming (XP) is a deliberate and disciplined approach to software development. It is a system of practices that software developers use to address the problem of quickly delivering quality software. XP breaks long projects into a sequence of self-contained 1-3 week mini projects (iterations), which deliver functional, tested software (releases). All programming in XP is done by pairs of programmers i.e. one writes, one reviews, tests are written before code. Everyone on the project owns code. Tested, running code is available at all times XP emphasizes teamwork; customers, managers, and programmers are all part of a team dedicated to delivering quality software. The Customer defines business value, decides what to do and what to defer, and defines the test to show that the system works. The manager coordinates, reports, rewards, and removes obstacles. The programmer analyzes, designs, tests, programs, and integrates the system. XP improves a software project in four essential ways: communication, simplicity, feedback, and courage. [Benedicenti]
These are the most distinct features of XP:
• The software development is split into a number of small increments (each one about 2-3 weeks long), giving the developers fast feedback from the customer; planning is performed just-in-time, only for the forthcoming increment.
• The customer role is crucial; he provides the programmers with user stories (informal, customer-written description of the functionality) and he is capable of changing them at any time. They also specify the acceptance tests.
• Quality assurance is test—centered: writing every piece of code should be preceded by preparation of a set of test cases for the implemented function. If a defect is detected, the programmer writes new test cases that detect the defect if it reappears.
• Programming is done in pairs. This is a technique thought as substitution for reviews and inspections — a pair of programmers work on a single piece of code, so they can review it continuously.
• The code is co-owned by all team members, so that everyone can change anything. It requires a defined coding standard. [Nawrocki]
91
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Appendix B
Overview of the XP
The following paragraphs are directly taken from the literature. Readers are encouraged to consult with the literature for more in depth information.
Extreme Programming
Extreme Programming (XP) is a deliberate and disciplined approach to software development. It is a system of practices that software developers use to address the problem of quickly delivering quality software. XP breaks long projects into a sequence of self-contained 1-3 week mini projects (iterations), which deliver functional, tested software (releases). All programming in XP is done by pairs o f programmers i.e. one writes, one reviews, tests are written before code. Everyone on the project owns code. Tested, running code is available at all times XP emphasizes teamwork; customers, managers, and programmers are all part of a team dedicated to delivering quality software. The Customer defines business value, decides what to do and what to defer, and defines the test to show that the system works. The manager coordinates, reports, rewards, and removes obstacles. The programmer analyzes, designs, tests, programs, and integrates the system. XP improves a software project in four essential ways: communication, simplicity, feedback, and courage. [Benedicenti]
These are the most distinct features of XP:
• The software development is split into a number o f small increments (each one about 2-3 weeks long), giving the developers fast feedback from the customer; planning is performed just-in-time, only for the forthcoming increment.
• The customer role is crucial; he provides the programmers with user stories (informal, customer-written description o f the functionality) and he is capable of changing them at any time. They also specify the acceptance tests.
• Quality assurance is test-centered: writing every piece of code should be preceded by preparation of a set of test cases for the implemented function. If a defect is detected, the programmer writes new test cases that detect the defect if it reappears.
• Programming is done in pairs. This is a technique thought as substitution for reviews and inspections - a pair of programmers work on a single piece of code, so they can review it continuously.
• The code is co-owned by all team members, so that everyone can change anything. It requires a defined coding standard. [Nawrocki]
91
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The Rules and Practices of Extreme Programming
The rules and practices of XP are: • Planning • Designing • Coding • Testing
In planning user stories are written, release-planning meeting creates the schedule. Frequent small releases are made, the project velocity is measured, and project is divided into iterations. Iteration planning starts at each iteration. People are moved around. Stand-up meeting starts each day. Fixes are applied when XP breaks. In designing emphasis is on simplicity, metaphors are chosen, Class Responsibility Collaboration (CRC) cards are used for design sessions. Spikes are applied to the solutions to reduce risk. No functionality is added early on. The Practice of refactoring is used whenever and wherever possible. [Benedicenti]
In coding the following rules are followed: • The customer is always available. • Code must be written to agreed standards. • Code the unit test first. • All code is pair programmed. • Only one pair integrates code at a time. • Integrate often. • Use collective code ownership. • Leave optimization until the last. • No overtime.
In testing all the codes must have unit tests; they must pass all unit tests before it can be released. When a bug is found tests are created. Acceptance tests are run often and the score is published. [Benedicenti]
Table B. illustrates the principals and practices of XP in a snap shot.
92
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
The Rules and Practices of Extreme Programming
The rules and practices o f XP are:• Planning• Designing• Coding• Testing
In planning user stories are written, release-planning meeting creates the schedule. Frequent small releases are made, the project velocity is measured, and project is divided into iterations. Iteration planning starts at each iteration. People are moved around. Stand-up meeting starts each day. Fixes are applied when XP breaks. In designing emphasis is on simplicity, metaphors are chosen, Class Responsibility Collaboration (CRC) cards are used for design sessions. Spikes are applied to the solutions to reduce risk. No functionality is added early on. The Practice o f refactoring is used whenever and wherever possible. [Benedicenti]
In coding the following rules are followed:• The customer is always available.• Code must be written to agreed standards.• Code the unit test first.• All code is pair programmed.• Only one pair integrates code at a time.• Integrate often.• Use collective code ownership.• Leave optimization until the last.• No overtime.
In testing all the codes must have unit tests; they must pass all unit tests before it can be released. When a bug is found tests are created. Acceptance tests are run often and the score is published. [Benedicenti]
Table B. illustrates the principals and practices of XP in a snap shot.
92
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table B. XP principals and XP practices (implementation) (After [Paulk])
Common Sense
Practice
XP Extreme XP Implementation
Code reviews Review code all the time Pair programming Testing Test all the time, even by the customers Unit testing,
functional testing Design Make design part of everybody's daily business Refactoring
Simplicity Always leave the system with the simplest design that supports its current functionality
The simplest thing that could possibly
work Architecture Everybody will work to refine the architecture Metaphor Integration
testing Integrate and test several times a day Continuous
integration Short
Iterations Make the iterations really, really short —
Seconds and minutes and hours not weeks and months
Planning game
Key Practices of Extreme Programming
According to Beck there are twelve key practices in XP. The following are the twelve practices of XP and a brief description of them [Beck]
Planning game. Customers decide the scope and timing of releases based on estimates provided by programmers. Programmers implement only the functionality demanded by the stories in this iteration.
Small releases. The system is put into production in a few months, before solving the whole problem. New releases are made often anywhere from daily to monthly.
Metaphor. The shape of the system is defined by a metaphor or set of metaphors shared between the customer and programmers.
Simple design. At every moment, the design runs all the tests, communicates everything the programmers want to communicate, contains no duplicate code, and has the fewest possible classes and methods. This rule can be summarized as, "Say everything once and only once."
Tests. Programmers write unit tests minute by minute. These tests are collected and they must all run correctly. Customers write functional tests for the stories in an iteration. These tests should also all run, although practically speaking, sometimes a business decision must be made comparing the cost of shipping a known defect and the cost of delay.
93
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Table B. XP principals and XP practices (implementation) (After [Paulk])
CommonSense
Practice
XP Extreme XPImplementation
Code reviews Review code all the time Pair programmingTesting Test all the time, even by the customers Unit testing,
functional testingDesign Make design part of everybody’s daily business Refactoring
Simplicity Always leave the system with the simplest design that supports its current functionality
The simplest thing that could possibly
workArchitecture Everybody will work to refine the architecture MetaphorIntegration
testingIntegrate and test several times a day Continuous
integrationShort
IterationsMake the iterations really, really short -
Seconds and minutes and hours not weeks and months
Planning game
Key Practices of Extreme Programming
According to Beck there are twelve key practices in XP. The following are the twelve practices o f XP and a brief description of them [Beck]
Planning game. Customers decide the scope and timing of releases based on estimates provided by programmers. Programmers implement only the functionality demanded by the stories in this iteration.
Small releases. The system is put into production in a few months, before solving the whole problem. New releases are made often anywhere from daily to monthly.
Metaphor. The shape o f the system is defined by a metaphor or set of metaphors shared between the customer and programmers.
Simple design. At every moment, the design runs all the tests, communicates everything the programmers want to communicate, contains no duplicate code, and has the fewest possible classes and methods. This rule can be summarized as, "Say everything once and only once."
Tests. Programmers write unit tests minute by minute. These tests are collected and they must all run correctly. Customers write functional tests for the stories in an iteration. These tests should also all run, although practically speaking, sometimes a business decision must be made comparing the cost of shipping a known defect and the cost of delay.
93
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Refactoring. The design of the system is evolved through transformations of the existing design that keep all the tests running.
Pair programming. All production code is written by two people at one screen / keyboard / mouse.
Continuous integration. New code is integrated with the current system after no more than a few hours. When integrating, the system is built from scratch and all tests must pass or the changes are discarded.
Collective ownership. Every programmer improves any code anywhere in the system at any time if they see the opportunity.
On-site customer. A customer sits with the team full-time.
40-hour weeks. No one can work a second consecutive week of overtime. Even isolated overtime used too frequently is a sign of deeper problems that must be addressed.
The planning game and small releases depend on the customer providing a set of "stories," or short descriptions of features, that characterize the work to be performed in each release. Releases are two weeks apart, and the team and customer must come to agreement on which stories (simple use cases) will be implemented within a two-week period. A pool of stories characterizes the full functionality desired by the customer, but only the subset identified as those features most desired by the customer for next two-week release are being implemented at any time. New stories can be added to the pool at any time, thus the requirements can be highly volatile, but implementation proceeds in two-week chunks based on the most desired functions currently in the pool, thus the volatility is managed. An on-site customer is needed to support this style of iterative life cycle. [Paulk]
"Metaphor" provides the overarching vision for the project. This could be considered a high-level architecture, but XP emphasizes design while at the same time minimizing design documentation. Some have characterized XP as not allowing documentation outside code [Allen], but it is probably more accurate to say that, since XP emphasizes continual redesign (via refactoring whenever necessary), there is little value to detailed design documentation. Maintainers rarely trust anything other than the code anyway. Design documentation is typically thrown away after the code is written. The only time design documentation is kept is when the customer can no longer come up with any new stories. Then it is time to put the system in mothballs and write a five to ten page "mothball tour" of the system. A natural corollary of the emphasis on refactoring is to always implement the simplest solution to satisfy the immediate need. Changes in the requirements are likely to supersede "general solutions" anyway. Pair programming is one of the more controversial practices in XP since it has resource consequences for the managers who decide whether or not the project will use XP. Although it may appear that pair programming will consume twice the resources, research has shown that pair programming leads to higher quality and decreased cycle time [Williams]. For an experienced team the effort increase may be as little as 15%, while the reduction in cycle
94
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Refactoring. The design of the system is evolved through transformations of the existing design that keep all the tests running.
Pair programming. All production code is written by two people at one screen / keyboard / mouse.
Continuous integration. New code is integrated with the current system after no more than a few hours. When integrating, the system is built from scratch and all tests must pass or the changes are discarded.
Collective ownership. Every programmer improves any code anywhere in the system at any time if they see the opportunity.
On-site customer. A customer sits with the team full-time.
40-hour weeks. No one can work a second consecutive week of overtime. Even isolated overtime used too frequently is a sign o f deeper problems that must be addressed.
The planning game and small releases depend on the customer providing a set of “stories," or short descriptions of features, that characterize the work to be performed in each release. Releases are two weeks apart, and the team and customer must come to agreement on which stories (simple use cases) will be implemented within a two-week period. A pool o f stories characterizes the full functionality desired by the customer, but only the subset identified as those features most desired by the customer for next two- week release are being implemented at any time. New stories can be added to the pool at any time, thus the requirements can be highly volatile, but implementation proceeds in two-week chunks based on the most desired functions currently in the pool, thus the volatility is managed. An on-site customer is needed to support this style of iterative life cycle. [Paulk]
"Metaphor" provides the overarching vision for the project. This could be considered a high-level architecture, but XP emphasizes design while at the same time minimizing design documentation. Some have characterized XP as not allowing documentation outside code [Allen], but it is probably more accurate to say that, since XP emphasizes continual redesign (via refactoring whenever necessary), there is little value to detailed design documentation. Maintainers rarely trust anything other than the code anyway. Design documentation is typically thrown away after the code is written. The only time design documentation is kept is when the customer can no longer come up with any new stories. Then it is time to put the system in mothballs and write a five to ten page "mothball tour" of the system. A natural corollary of the emphasis on refactoring is to always implement the simplest solution to satisfy the immediate need. Changes in the requirements are likely to supersede "general solutions" anyway. Pair programming is one o f the more controversial practices in XP since it has resource consequences for the managers who decide whether or not the project will use XP. Although it may appear that pair programming will consume twice the resources, research has shown that pair programming leads to higher quality and decreased cycle time [Williams], For an experienced team the effort increase may be as little as 15%, while the reduction in cycle
94
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
time may be 40- 50%. For interne-time environments, the increased speed to market may be well worth the increment in effort. Collaboration improves the problem-solving process, and the increase in quality will also have a significant impact on maintenance costs, which appears likely to more than pay for any added resource costs over the total life cycle. Collective ownership means that anyone can change any piece of code in the system at any time. The XP emphasis on continuous integration, continual regression testing, and pair programming are intended as protections against problems here. "Test then code" is the phrase used to express XP's emphasis on testing. It captures the principle that testing should be planned early and test cases developed in parallel with requirements analysis, although the traditional emphasis is on black box testing. Thinking about testing early in the life cycle is a well-known good software engineering practice, even if too infrequently practiced. The basic XP management tool is the metric, and the medium of the metric is the "big visible chart." In the XP style, three or four measures are typically all a team can stand at one time, and those should be actively used and visible to the team. "Project velocity," the number of stories of a given size that can be done in iteration, is one recommended XP metric. [Paulk]
95
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
time may be 40- 50%. For internet-time environments, the increased speed to market may be well worth the increment in effort. Collaboration improves the problem-solving process, and the increase in quality will also have a significant impact on maintenance costs, which appears likely to more than pay for any added resource costs over the total life cycle. Collective ownership means that anyone can change any piece of code in the system at any time. The XP emphasis on continuous integration, continual regression testing, and pair programming are intended as protections against problems here. “Test then code” is the phrase used to express XP's emphasis on testing. It captures the principle that testing should be planned early and test cases developed in parallel with requirements analysis, although the traditional emphasis is on black box testing. Thinking about testing early in the life cycle is a well-known good software engineering practice, even if too infrequently practiced. The basic XP management tool is the metric, and the medium of the metric is the "big visible chart." In the XP style, three or four measures are typically all a team can stand at one time, and those should be actively used and visible to the team. "Project velocity," the number o f stories of a given size that can be done in iteration, is one recommended XP metric. [Paulk]
95
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Appendix C
Bibliography of the case studies
[1]
[2]
[3]
[4]
Business Rules: Managing Released Software and IT Problem Resolutions Using Scrum and Agile, Michael Dwyer, CSM October 6 2004 http ://www.agilealliance.org/articles/articles/BizRulesAndITOps.pdf Accessed March 2005
This paper describes the empirically generated set of rules and tools that allowed an existing IT operation to adjust their workflow in maintaining, enhancing, and supporting business demands — and to do this in a proactive, agile, manner. A Help desk operation.
Framework XP —Building Frameworks using XP, Gerard Meszaros, Jennitta Andrea, Shaun Smith, 2002 http ://www. agi I eallianc e. org/articles/articles/FrameworkXP.p d f Accessed March 2005
Frameworks are different from other kinds of software because they need special care. Learn how a little re-tailoring makes XP suit able for building frameworks.
The Unbearable Lightness of Programming: A Tale of Two Cultures, Laurent Bossavit, 2002 http://www.agilealliance.org/articles/articles/UnbearableLightness.pdf Accessed March 2005 Excellent article summarizing the author's experiences with XP at two different companies with two very different cultures. Both failed due to lack of proper XP culture
Best Practices in Scrum Project Management and XP Agile Software Development, Ken Schwaber, 2004 http://www.obj ectm entor. com/resourc es/arti cl es/Primavera Accessed March 2005 Description of a highly successful agile project at Primavera.
96
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Appendix C
Bibliography of the case studies
[1] Business Rules: Managing Released Software and IT ProblemResolutions Using Scrum and Agile, Michael Dwyer, CSM October 6 2004http://www.agilealliance.org/articles/articles/BizRulesAndITOps.pdf Accessed March 2005
This paper describes the empirically generated set of rules and tools that allowed an existing IT operation to adjust their workflow in maintaining, enhancing, and supporting business demands - and to do this in a proactive, agile, manner. A Help desk operation.
[2] Framework XP -Building Frameworks using XP, Gerard Meszaros,Jennitta Andrea, Shaun Smith, 2002http://www.agilealliance.org/articles/articles/FrameworkXP.pdf Accessed March 2005
Frameworks are different from other kinds o f software because they need special care. Learn how a little re-tailoring makes XP suit able for building frameworks.
[3] The Unbearable Lightness of Programming: A Tale of Two Cultures,Laurent Bossavit, 2002http://www.agilealliance.org/articles/articles/UnbearableLightness.pdf Accessed March 2005Excellent article summarizing the author's experiences with XP at two different companies with two very different cultures.Both failed due to lack of proper XP culture
[4] Best Practices in Scrum Project Management and XP Agile SoftwareDevelopment, Ken Schwaber, 2004 http://www.obiectmentor.com/resources/articles/Primavera Accessed March 2005Description of a highly successful agile project at Primavera.
96
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[5]
[6]
[7]
Agility, Uncertainty, and Software Project Estimation, Todd Little, 2004 http://www.macs.ece.mcgill.ca/—radu/304428W03/AgilityUncertaintyAnd Estimation.pdf Accessed March 2005
This paper presents the results of studies, estimates and actual data for 120 commercial projects.
A Metric Leading to Agility, Ron Jeffries, 2004 http://www.x_programming.com/xpmag/jatRtsMetric.htm Accessed March 2005
Describes a new metric for the number of Running Tested Features delivered in a product and how this leads a team to develop in an agile manner.
Extreme Programming in a Customer Services Organization, Pulugurtha, Srinivasa Neveu, Jean-Noel Lynch, Francis, 2002 http://www.agilealliance.org/articles/articles/XPinCustSvcs.pdf Accessed March 2005
A case study that shows how the adoption of XP practices helps bring a Customer Services organization up to speed. Not much information!
[8] Agile insurance, Thomas Ailgum, 2004 http://www.cio.com/archive/081504/et article.html Accessed March 2005
[9]
Case study of how Pinnacol Assurance had to respond quickly when insurance industry regulators wanted to shut down one of their products. Because of their agile development process, the company was able to quickly change their product to satisfy the regulators.
Quantitative Survey on Extreme Programming Projects, Bernhard Rumpe, Astrid Schroder, 2002 http://www.agilealliance.orearticles/articles/QuantitativeSurvey.pdf Accessed March 2005
Survey with a small sample (49 entries) on where and how XP is used in IT development projects.
97
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[5] Agility, Uncertainty, and Software Project Estimation, Todd Little,2004http://www.macs.ece.mcgill.ca/~radu/304428W03/AgilitvUncertaintyAnd Estimation.pdf Accessed March 2005
This paper presents the results of studies, estimates and actual data for 120 commercial projects.
[6] A Metric Leading to Agility, Ron Jeffries, 2004http://www.xprogramming.com/xpmag/iatRtsMetric.htm Accessed March 2005
Describes a new metric for the number o f Running Tested Features delivered in a product and how this leads a team to develop in an agile manner.
[7] Extreme Programming in a Customer Services Organization,Pulugurtha, Srinivasa Neveu, Jean-Noel Lynch, Francis, 2002 http://www.agilealliance.org/articles/articles/XPinCustSvcs.pdf Accessed March 2005
A case study that shows how the adoption of XP practices helps bring a Customer Services organization up to speed. Not much information!
[8] Agile insurance, Thomas Ailgum, 2004http://www.cio.com/archive/081504/et article.html Accessed March 2005
Case study o f how Pinnacol Assurance had to respond quickly when insurance industry regulators wanted to shut down one o f their products. Because of their agile development process, the company was able to quickly change their product to satisfy the regulators.
[9] Quantitative Survey on Extreme Programming Projects, BernhardRumpe, Astrid Schroder, 2002http://www.agilealliance.org/articles/articles/QuantitativeSurvev.pdf Accessed March 2005
Survey with a small sample (49 entries) on where and how XP is used in IT development projects.
97
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[10] The Challenge: Cost-Cutting, Megan Santosus, 2004 http://www.cio.com/archive/081504/challenge cost.html Accessed March 2005
Short case study about one of CIO Magazine's "Agile 100" organizations that responded in an agile manner to a cost-cutting initiative.
An Essential Distinction of Agile Software Development Processes Based on Systems Thinking in Software Engineering Management, Peter Wendorff, 2002 http://www.agilealliance.orglarticles/articles/EssentialDistinction.pdf Accessed March 2005
An interesting approach which considers Agile Software Development as seen from the viewpoint of General Systems Theory. As a result, the author identifies two sources of project delay and explains how Agile Methods address them.
[12] The Challenge Globalization, Mindy Blodgett, 2004 http://www.cio.com/archive/081504/challenge globalization.html Accessed March 2005
Short case study about one of CIO Magazine's "Agile 100" that had to quickly deal with becoming a global company
[13] FDD Implementations, Jeff De Luca, 2002 http://www.nebulon.com/articles/fdd/fddimplementations.html Accessed March 2005
This article describes some of the key Feature-Driven Development projects through the years.
[14] Inside an Agile Transformation, Stephanie Overby, 2004 http://www.cio.com/archive/081504/profile.html Accessed March 2005
This article describes the transformation of the United States Defence Logistics Agency (DLA).
[15] Testing in the Fast Lane, Lisa Crispin, Tip House, 2002 http://www.agilealliance.org/articles/articles/TestingInFastLane.pdf Accessed March 2005
98
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[10] The Challenge: Cost-Cutting, Megan Santosus, 2004http://www.cio.com/archive/081504/challenge cost.html Accessed March 2005
Short case study about one of CIO Magazine's "Agile 100" organizations that responded in an agile manner to a cost-cutting initiative.
[11] An Essential Distinction of Agile Software Development ProcessesBased on Systems Thinking in Software Engineering Management,Peter Wendorff, 2002http://www.agilealliance.org/articles/articles/EssentialDistinction.pdf Accessed March 2005
An interesting approach which considers Agile Software Development as seen from the viewpoint o f General Systems Theory. As a result, the author identifies two sources o f project delay and explains how Agile Methods address them.
[12] The Challenge Globalization, Mindy Blodgett, 2004http://www.cio.com/archive/081504/challenge globalization.html Accessed March 2005
Short case study about one of CIO Magazine's "Agile 100" that had to quickly deal with becoming a global company
[13] FDD Implementations, Jeff De Luca, 2002http://www.nebulon.com/articles/fdd/fddimplementations.html Accessed March 2005
This article describes some of the key Feature-Driven Development projects through the years.
[14] Inside an Agile Transformation, Stephanie Overby, 2004http://www.cio.com/archive/081504/profile.html Accessed March 2005
This article describes the transformation of the United States Defence Logistics Agency (DLA).
[15] Testing in the Fast Lane, Lisa Crispin, Tip House, 2002http://www.agilealliance.org/articles/articles/TestingInFastLane.pdf Accessed March 2005
98
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Continuing Kent Beck's metaphor of XP as driving a car, the authors argue that the tester is the navigator and plays an important role in XP projects.
[16] Come Together Right Now, Kim Girard, 2004 http://www.cio.com/archive/081504/merge.html Accessed March 2005
The benefits of a merger or acquisition can be lost if IT and business leaders do not act quickly to make staffing and organizational decisions, integrate systems and provide training. These CIO Magazine "Agile 100" honourees describe what it takes to accomplish agile acquisitions.
[17] Lessons in Agility from Internet-Based Development, Scott Ambler http://www.agilealliance.orgiarticles/articles/LessonsInAgility.pdf Accessed March 2005
Describes two Internet start-ups that adopted effective and efficient modeling and documentation practices, one taking a communal, team-based approach and the other a chief-programmer approach.
[18] The Supple Supply Chain, Tracy Mayor, 2004 http://www.cio.com/archive/081504/supply.html Accessed March 2005
Agile companies can adjust their operations to cope with unexpected events, whether it's a surge in new business or a backlog in the warehouse. Four CIO Magazine "Agile 100" honourees tell how IT makes them and their trading partners flexible.
[19] Patterns of Productive Software Organizations, Neil Harrison, James Coplien, 1996 http://www.agilealliance.org/articles/articles/PatternsOfProductiveSoftwar eOrganizations.pdf Accessed March 2005
This paper attempts to isolate important factors that contribute to software productivity. Patterns of organization and process that are characteristic of highly productive software projects are uncovered with visual and quantitative data. Also presented are guiding principles for dramatically increasing productivity.
[20] Extreme Programming by Example, Moacir Pedroso, Marcos Visoli, Joao Antunes, F. G., 2002
99
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Continuing Kent Beck's metaphor o f XP as driving a car, the authors argue that the tester is the navigator and plays an important role in XP projects.
[16] Come Together Right Now, Kim Girard, 2004http://www.cio.com/archive/081504/merge.html Accessed March 2005
The benefits of a merger or acquisition can be lost if IT and business leaders do not act quickly to make staffing and organizational decisions, integrate systems and provide training. These CIO Magazine "Agile 100" honourees describe what it takes to accomplish agile acquisitions.
[17] Lessons in Agility from Internet-Based Development, Scott Amblerhttp://www.agilealliance.org/articles/articles/LessonsInAgilitv.ndf Accessed March 2005
Describes two Internet start-ups that adopted effective and efficient modeling and documentation practices, one taking a communal, team- based approach and the other a chief-programmer approach.
[18] The Supple Supply Chain, Tracy Mayor, 2004http://www.cio.com/archive/081504/supply.html Accessed March 2005
Agile companies can adjust their operations to cope with unexpected events, whether it's a surge in new business or a backlog in the warehouse. Four CIO Magazine "Agile 100" honourees tell how IT makes them and their trading partners flexible.
[19] Patterns of Productive Software Organizations, Neil Harrison, JamesCoplien, 1996http://www.agilealliance.org/articles/articles/PattemsOfProductiveSoftwar eOrganizations.pdf Accessed March 2005
This paper attempts to isolate important factors that contribute to software productivity. Patterns of organization and process that are characteristic of highly productive software projects are uncovered with visual and quantitative data. Also presented are guiding principles for dramatically increasing productivity.
[20] Extreme Programming by Example, Moacir Pedroso, Marcos Visoli,Joao Antunes, F. G., 2002
99
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
http://www.agilealliance.org/articles/articles/Pedroso-Marcos--ExtremeProgrammingbyExample.pdf Accessed March 2005
Describes how XP was adapted for the successful development of a risky project. As a side effect, XP spread throughout the company.
The abstracts of the following articles are provided:
[21] Case Study: IRS Business System Modernization Process Improvement, L. Anderson, M. Fisher, and J. Gross, 2004 http://www.sei.cmu.edu/publications/documents/04.reports/04tr002.html Accessed March 2005
Recognizing problems with its legacy information technology systems, the U.S. Internal Revenue Service (IRS) embarked on a modernization effort over a decade ago, with limited success. In 1998, the IRS embarked on a new approach and awarded a contract to the PRIME Alliance to assume the development and integration role for the systems that were expected to modernize the IRS way of doing business. The IRS Business Systems Modernization Office (BSMO) was established to manage this program.
However, as with past modernization efforts, the BSMO had difficulties in developing the discipline to efficiently and effectively manage the acquisition aspects of this modernization effort. The General Accounting Office suggested that the BSM program in still this discipline by improving a number of management process areas, including its acquisition processes. This suggestion included application of the Software Acquisition Capability Maturity Model® (SA-CMM®) as guidance on how to improve. This paper provides an overview of applying the SA-CMM to the IRS modernization effort to establish and implement more effective acquisition management processes and practices. The experience includes the process improvement planning stages of first selecting the SA-CMM as a framework for process improvement, through to completion of the final assessment where a maturity level 2 rating was achieved against the SA-CMM.
[22] CMMI Acquisition Module (CMMI-AM) Version 1.0 Bernard, T.; Gallagher, B.; Bate, R.; Wilson, H., 2004
http://www.sei.cmu.edu/publications/documents/04.reports/04tr00 Lhtml Accessed March 2005
Building on relevant best practices extracted from the Capability Maturity Model Integration (CMMI) Framework, this report defines effective and
100
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
http://www.agilealliance.org/articles/articles/Pedroso-Marcos-- ExtremeProgrammingbyExample.pdf Accessed March 2005
Describes how XP was adapted for the successful development o f a risky project. As a side effect, XP spread throughout the company.
The abstracts o f the following articles are provided:
[21] Case Study: IRS Business System M odernization ProcessImprovem ent, L. Anderson, M. Fisher, and J. Gross, 2004 http://www.sei.cmu.edu/publications/documents/04.reports/04tr002.html Accessed March 2005
Recognizing problems with its legacy information technology systems, the U.S. Internal Revenue Service (IRS) embarked on a modernization effort over a decade ago, with limited success. In 1998, the IRS embarked on a new approach and awarded a contract to the PRIME Alliance to assume the development and integration role for the systems that were expected to modernize the IRS way of doing business. The IRS Business Systems Modernization Office (BSMO) was established to manage this program.
However, as with past modernization efforts, the BSMO had difficulties indeveloping the discipline to efficiently and effectively manage the acquisition aspects of this modernization effort. The General Accounting Office suggested that the BSM program in still this discipline by improving a number of management process areas, including its acquisition processes. This suggestion included application o f the Software Acquisition Capability Maturity Model® (SA-CMM®) as guidance on how to improve. This paper provides an overview of applying the SA-CMM to the IRS modernization effort to establish and implement more effective acquisition management processes and practices. The experience includes the process improvement planning stages o f first selecting the SA-CMM as a framework for process improvement, through to completion of the final assessment where a maturity level 2 rating was achieved against the SA-CMM.
[22] CMMI Acquisition Module (CMMI-AM) Version 1.0 Bernard, T.;Gallagher, B.; Bate, R.; Wilson, H., 2004
http ://www. sei .emu. edu/publications/documents/04.reports/04tr001 .html Accessed March 2005
Building on relevant best practices extracted from the Capability Maturity Model Integration (CMMI) Framework, this report defines effective and
100
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
efficient practices for government acquisition organizations. Acquisition best practices are focused inside the acquisition organization to ensure the acquisition is conducted effectively, and outside the acquisition organization as it conducts project monitoring and control of its suppliers. These best practices provide a foundation for acquisition process discipline and rigor that enables product and service development to be repeatedly executed with high levels of ultimate acquisition success. This report contains the acquisition practices that should be performed by government acquisition organizations acquiring systems and/or services. These practices, however, can also be used by non-government organizations to improve their acquisition practices. This report does not contain prescribed implementation approaches for achieving acquisition best practices. Instead, the proven content of the CMMI Framework is used as a base and amplifications specific to the acquisition process are added. Questions related to CMMI process areas are provided in the appendix to help managers and executives understand the acquisition organization's documented acquisition practices and the consistent application of those practices. Descriptions of implementation details can be found in the source documents listed in the bibliography.
[23] Integrated Approach to Software Process Improvement at Wipro Technologies: V. Subramanyam, Sambuddha Deb, Priya Krishnaswamy, Rituparna Ghosh, 2004
http://www.sei.cmu.edu/publications/documents/04.reports/04tr006.html Accessed March 2005
This report captures the details of Wipro's quality journey through continuous process improvement. This journey towards excellence has led to the prestigious Institute of Electrical and Electronics Engineers (IEEE) Computer Society Award for Software Process Achievement in 2003. This award is for achieving high soft-ware process capability and establishing a basis for moving to a broad improvement program that concerns people and products, rather than just the processes. This report details the process improvement activities and the evolution of processes and systems over a period of time. Wipro's integrated approach to quality-veloci-Q-is detailed with an emphasis on the process improvement initiatives, supporting technology, and people capability that bring positive business results and enable Wipro to meet its customers' ever-increasing demands. The challenges and benefits accrued from Wipro's total quality approach are outlined, including the quantitative results of measuring the impact of Wipro's process improvement model.
[24] CMMI® Interpretive Guidance Project: What We Learned Chrissis, M.; Konrad, M.; Shrum, S.; Smith, K.; & Wemyss, G., 2004
101
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
efficient practices for government acquisition organizations. Acquisition best practices are focused inside the acquisition organization to ensure the acquisition is conducted effectively, and outside the acquisition organization as it conducts project monitoring and control of its suppliers. These best practices provide a foundation for acquisition process discipline and rigor that enables product and service development to be repeatedly executed with high levels o f ultimate acquisition success. This report contains the acquisition practices that should be performed by government acquisition organizations acquiring systems and/or services. These practices, however, can also be used by non-government organizations to improve their acquisition practices. This report does not contain prescribed implementation approaches for achieving acquisition best practices. Instead, the proven content o f the CMMI Framework is used as a base and amplifications specific to the acquisition process are added. Questions related to CMMI process areas are provided in the appendix to help managers and executives understand the acquisition organization's documented acquisition practices and the consistent application of those practices. Descriptions of implementation details can be found in the source documents listed in the bibliography.
[23] Integrated Approach to Software Process Improvement at WiproTechnologies: V. Subramanyam, Sambuddha Deb, Priya Krishnaswamy, Ritupama Ghosh, 2004
http://www.sei.cmu.edu/publications/documents/04.reports/04tr006.html Accessed March 2005
This report captures the details of Wipro's quality journey through continuous process improvement. This journey towards excellence has led to the prestigious Institute of Electrical and Electronics Engineers (IEEE) Computer Society Award for Software Process Achievement in 2003. This award is for achieving high soft-ware process capability and establishing a basis for moving to a broad improvement program that concerns people and products, rather than just the processes. This report details the process improvement activities and the evolution of processes and systems over a period of time. Wipro's integrated approach to quality-veloci-Q-is detailed with an emphasis on the process improvement initiatives, supporting technology, and people capability that bring positive business results and enable Wipro to meet its customers' ever-increasing demands. The challenges and benefits accrued from Wipro's total quality approach are outlined, including the quantitative results o f measuring the impact of Wipro's process improvement model.
[24] CMMI® Interpretive Guidance Project: What We Learned Chrissis, M.;Konrad, M.; Shrum, S.; Smith, K.; & Wemyss, G., 2004
101
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
http://www.sei.cmu.edu/publications/documents/04.reports/04sr008.html Accessed March 2005
This report summarizes the results of the Capability Maturity Model Integration (CMMI) Interpretive Guidance Project. It summarizes and analyzes the 7500 comments received regarding CMMI adoption that were reported by CMMI users and potential users. It also describes the actions being taken by the Software Engineering Institute (SEI) to address the issues identified by Interpretive Guidance Project participants. Although the initial goal of the project was to develop interpretive guidance, after data gathering and analysis the team realized that most respondents' input did not require interpretive guidance. Based on a relatively small number of comments, interpretive guidance was planned, including papers, frequently asked questions (FAQs), and new CMMI courses. However, participant comments clearly showed CMMI interpretive guidance to be less of an adoption issue than suspected. Some comments covered issues already being addressed as part of SEI activities, including the development of Standard CMMI Appraisal Method for Process Improvement (SCAMPIsm) Class B and C methods, the collection of cost and benefit information, and the creation and improvement of CMMI training courses. The majority (approximately 80%) of the actionable comments received were best handled as change requests to help guide the ongoing improvement of the CMMI Product Suite.
[25] CMMIR1-Based Process Improvement and Schedule Deviation in Software Maintenance, Jung, H. & Goldenson, D. , 2003 http ://www.sei . cmu. edu/pub lications/docum ents/03 .reports/03 tn015 .htm I Accessed March 2005
The objective of this study is to evaluate the predictive validity of the Capability Maturity Model ERI(CMMERI) for Software (SW-CMM) as applied to software maintenance. The SW-CMM is intended to apply to both software development and maintenance. A basic premise (hypothesis) of the SW-CMM is that improving process maturity will result in better project performance and product quality. The extent to which that hypothesis is supported empirically is called a test of its predictive validity. No previous evaluation exists of the predictive validity of the SW-CMM in a maintenance context. The extent to which schedule estimates differ from reality is one important measure of project performance. But is higher maturity in fact correlated with a reduction in schedule deviation? Data from 752 maintenance projects drawn from 441 SW-CMM assessments are analyzed using a zero inflated Poisson (ZIP) regression model, and the results are validated using a bootstrap estimation method. Projects from higher maturity organizations typically
102
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
http://www.sei.cmu.edu/publications/documents/04.reports/04sr008.html Accessed March 2005
This report summarizes the results o f the Capability Maturity Model Integration (CMMI) Interpretive Guidance Project. It summarizes and analyzes the 7500 comments received regarding CMMI adoption that were reported by CMMI users and potential users. It also describes the actions being taken by the Software Engineering Institute (SEI) to address the issues identified by Interpretive Guidance Project participants. Although the initial goal of the project was to develop interpretive guidance, after data gathering and analysis the team realized that most respondents' input did not require interpretive guidance. Based on a relatively small number o f comments, interpretive guidance was planned, including papers, frequently asked questions (FAQs), and new CMMI courses. However, participant comments clearly showed CMMI interpretive guidance to be less of an adoption issue than suspected. Some comments covered issues already being addressed as part of SEI activities, including the development of Standard CMMI Appraisal Method for Process Improvement (SCAMPIsm) Class B and C methods, the collection o f cost and benefit information, and the creation and improvement o f CMMI training courses. The majority (approximately 80%) of the actionable comments received were best handled as change requests to help guide the ongoing improvement of the CMMI Product Suite.
[25] CMM,R,-Based Process Improvement and Schedule Deviation inSoftware Maintenance, Jung, H. & Goldenson, D . , 2003 http://www.sei.cmu.edu/publications/documents/03.reports/03tn015.html Accessed March 2005
The objective of this study is to evaluate the predictive validity o f the Capability Maturity Model [R](CMM[R]) for Software (SW-CMM) as applied to software maintenance. The SW-CMM is intended to apply to both software development and maintenance. A basic premise(hypothesis) o f the SW-CMM is that improving process maturity willresult in better project performance and product quality. The extent to which that hypothesis is supported empirically is called a test o f its predictive validity. No previous evaluation exists of the predictive validity o f the SW-CMM in a maintenance context. The extent to which schedule estimates differ from reality is one important measure of project performance. But is higher maturity in fact correlated with a reduction in schedule deviation? Data from 752 maintenance projects drawn from 441 SW-CMM assessments are analyzed using a zero inflated Poisson (ZIP) regression model, and the results are validated using a bootstrap estimation method. Projects from higher maturity organizations typically
102
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
report less schedule deviation than those from organizations assessed at lower maturity levels.
[26] Interpreting Capability Maturity Modef ill Integration (CMMIIRI) for Service Organizations-a Systems Engineering and Integration Services Example, Herndon, M.; Moore, R.; Phillips, M.; Walker, J.; & West, L. 2003 http ://www. sei. cmu. edu/pub lications/docum ents/03 .reports/03tn005 .html Accessed March 2005
Capability Maturity Modellin Integration (CMMI[R]) provides a framework for improving the processes organizations use to develop, deliver, and maintain products and services. This technical note presents one organization's interpretation of CMMI best practices for organizations that primarily provide services. Service organizations can use this example interpretation of CMMI practices to inform management and staff about how CMMI practices apply to their work. The interpretation will also help appraisal team members ensure that implemented practices provide the business value necessary to satisfy the goals for quality process improvement that are stated in the CMMI models.
[27] Demonstrating the Impact and Benefits of CMMI: An Update and Preliminary Results, Goldenson, D. & Gibson, D. , 2003
http ://www.sei.cmu. edu/publications/documents/03.reports/03sr009.html Accessed March 2005
There is a widespread demand for evidence about the impact and benefits of process improvement based on Capability Maturity ModeltRi Integration (CMMIrRI) models. Much has been documented about the practice of CMMERI-based process improvement and its value for the development and maintenance of software and software-intensive systems; however, the existing information is sometimes outdated and there are increasing calls for evidence directly based on CMMI experience. This special report presents selected results from twelve case studies drawn from 11 organizations. While still limited, the case studies provide credible evidence that CMMI-based process improvement can help organizations achieve better project performance and produce higher quality products. The report also describes plans for gathering further evidence from organizations using CMMI models.
103
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
report less schedule deviation than those from organizations assessed at lower maturity levels.
[26] Interpreting Capability Maturity ModelIR| Integration (CMMI,R|) forService Organizations-a Systems Engineering and Integration Services Example, Herndon, M.; Moore, R.; Phillips, M.; Walker, J.; & West, L. 2003http://www.sei.cmu.edu/publications/documents/03.reports/03tn005.html Accessed March 2005
Capability Maturity Model[R] Integration (CMMI[R]) provides a framework for improving the processes organizations use to develop, deliver, and maintain products and services. This technical note presents one organization's interpretation of CMMI best practices for organizations that primarily provide services. Service organizations can use this example interpretation of CMMI practices to inform management and staff about how CMMI practices apply to their work. The interpretation will also help appraisal team members ensure that implemented practices provide the business value necessary to satisfy the goals for quality process improvement that are stated in the CMMI models.
[27] Demonstrating the Impact and Benefits of CMMI: An Update andPreliminary Results, Goldenson, D. & Gibson, D ., 2003
http://www.sei.cmu.edu/publications/documents/03.reports/03sr009.html Accessed March 2005
There is a widespread demand for evidence about the impact and benefits o f process improvement based on Capability Maturity Model[R] Integration (CM M I^) models. Much has been documented about the practice of CMM[R]-based process improvement and its value for the development and maintenance of software and software-intensive systems; however, the existing information is sometimes outdated and there are increasing calls for evidence directly based on CMMI experience. This special report presents selected results from twelve case studies drawn from 11 organizations. While still limited, the case studies provide credible evidence that CMMI-based process improvement can help organizations achieve better project performance and produce higher quality products. The report also describes plans for gathering further evidence from organizations using CMMI models.
103
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[28] CMMI Interpretive Guidance Project: Preliminary Report, Chrissis, M.; Wemyss, G.; Goldenson, D.; Konrad, M.; Smith, K.; & Svolou, A. , 2003 http://www.sei.cmu.edu/publications/documents/03.reports/03sr007.html Accessed March 2005
The CMMI[RI (Capability Maturity Model[R1 Integration) Interpretive Guidance project was formed to help commercial software, information technology (IT), and information systems (IS) organizations adopt CMMI. Project members collected data to learn more about how CMMI is being accepted by these organizations. This report describes the data- collection activities and includes summaries of the data collected through August 2003. The project received both positive and negative comments that lead to some interesting and surprising observations. Overall, the positive comments greatly outnumbered the negative. Input provided by commercial software, IT, and IS organizations was similar to input from organizations from other disciplines. Organizations reported that CMMI is adequate for guiding their process improvement activities and that CMMI training courses and appraisal methods are suitable for their needs, although there are specific opportunities for improvement. Having two representations caused concern and confusion for some but was a benefit for others, so the project will investigate these comments further to see what can be done to address these concerns. The cost of CMMI is an issue that affected adoption decisions for some but not for others. Finally, return-on-investment information is usually helpful to organizations when making the business case to adopt CMMI.
[29] CMM®-Based Process Improvement and Schedule Deviation in Software Maintenance, Ho-Won Jung Dennis R. Goldenson, 2003 http://www.sei.cmu.edu/pub/documents/03.reports/pdf/03tn015.pdf Accessed March 2005
The objective of this stud is to evaluate the predictive validity of the Capability Maturity Model (CMM®) for Software (SW-CMM) as applied to software maintenance. The SW-CMM is intended to apply to both software development and maintenance. A basic premise (hypothesis) of the SW-CMM is that improving process maturity will result in better project performance and product quality. The extent to which that hypothesis is supported empirically is called a test of its predictive validity. No previous evaluation exists of the predictive validity of the SW-CMM in a maintenance context. The extent to which schedule estimates differ from reality is one important measure of project performance. But is higher maturity in fact correlated with a reduction in schedule deviation? Data from 752 maintenance projects drawn from 441 SW-CMM assessments are analyzed using a zero inflated Poisson (ZIP)
104
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
[28] CMMI Interpretive Guidance Project: Preliminary Report, Chrissis,M.; Wemyss, G.; Goldenson, D.; Konrad, M.; Smith, K.; & Svolou, A. , 2003http://www.sei.cmu.edu/publications/documents/03.reports/03sr007.html Accessed March 2005
The CMMI[R] (Capability Maturity Model[R] Integration) Interpretive Guidance project was formed to help commercial software, information technology (IT), and information systems (IS) organizations adopt CMMI. Project members collected data to learn more about how CMMI is being accepted by these organizations. This report describes the data- collection activities and includes summaries o f the data collected through August 2003. The project received both positive and negative comments that lead to some interesting and surprising observations. Overall, the positive comments greatly outnumbered the negative. Input provided by commercial software, IT, and IS organizations was similar to input from organizations from other disciplines. Organizations reported that CMMI is adequate for guiding their process improvement activities and that CMMI training courses and appraisal methods are suitable for their needs, although there are specific opportunities for improvement. Having two representations caused concern and confusion for some but was a benefit for others, so the project will investigate these comments further to see what can be done to address these concerns. The cost o f CMMI is an issue that affected adoption decisions for some but not for others. Finally, retum-on-investment information is usually helpful to organizations when making the business case to adopt CMMI.
[29] CMM®-Based Process Improvement and Schedule Deviation inSoftware Maintenance, Ho-Won Jung Dennis R. Goldenson, 2003 http://www.sei.cmu.edu/pub/documents/03.reports/pdf/03tn015.pdf Accessed March 2005
The objective o f this study is to evaluate the predictive validity of the Capability Maturity Model (CMM®) for Software (SW-CMM) as applied to software maintenance. The SW-CMM is intended to apply to both software development and maintenance. A basic premise (hypothesis) of the SW-CMM is that improving process maturity will result in better project performance and product quality. The extent to which that hypothesis is supported empirically is called a test of its predictive validity. No previous evaluation exists of the predictive validity of the SW-CMM in a maintenance context. The extent to which schedule estimates differ from reality is one important measure o f project performance. But is higher maturity in fact correlated with a reduction in schedule deviation? Data from 752 maintenance projects drawn from 441 SW-CMM assessments are analyzed using a zero inflated Poisson (ZIP)
104
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
regression model, and the results are validated using a bootstrap estimation method. Projects from higher maturity organizations typically report less schedule deviation than those from organizations assessed at lower maturity levels.
[30] Benefits of CMM-Based Software Process Improvement: Executive Summary of Initial Results, James Herbsleb, Anita Carleton, James Rozum, Jane Siegel, David Zubrow 1994 http://www.sei.cmu.edu/publications/documents/94.reports/ 94.sr.013.html Accessed March 2005
Data from 13 organizations were collected and analyzed to obtain information on the results of software process improvement efforts that were based on the capability maturity model (CMM). We report the cost and business value of improvement efforts, as well as the yearly improvement in productivity, early defect detection, time to market, and post-release defect reports. Case studies of improvement efforts and results in 5 organizations are summarized. We end with conclusions about the results of software process improvement (SPI) efforts.
105
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
regression model, and the results are validated using a bootstrap estimation method. Projects from higher maturity organizations typically report less schedule deviation than those from organizations assessed at lower maturity levels.
[30] Benefits of CMM-Based Software Process Improvement: ExecutiveSummary of Initial Results, James Herbsleb, Anita Carleton, James Rozum, Jane Siegel, David Zubrow 1994http://www.sei.cmu.edu/publications/documents/94.reports/ 94.sr.013.html Accessed March 2005
Data from 13 organizations were collected and analyzed to obtain information on the results o f software process improvement efforts that were based on the capability maturity model (CMM). We report the cost and business value of improvement efforts, as well as the yearly improvement in productivity, early defect detection, time to market, and post-release defect reports. Case studies o f improvement efforts and results in 5 organizations are summarized. We end with conclusions about the results o f software process improvement (SPI) efforts.
105
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Appendix D
Analysis, questions and weights of twelve factors and their sub-factors
LEGEND:
SQ: Sample question
Comfortably Agile 0% Somewhat Agile: 25% Mixed, Hybrid, Tailored: 50% Somewhat Plan-Driven: 75% Comfortably Plan-Driven: 100%
General weight scheme: 5: Decisive 4: Heavy 3: Moderate 2: Light 1: Very light 0: Non-issue (Can be ignored comfortably)
Application Characteristics
Primary Goals
Continuous delivery The need to see things as they are built SQ: Do you or your client need the working software delivered in phases? YES: Agile 0% No: Plan-Driven 100% May be: Hybrid / Tailored 50% Not Sure: Follow up question, Disregard
General weight: 3
SQ: Do you or your client need to physically see the progress of the SW? YES: Agile 0% No: Plan-Driven 100%
106
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Appendix D
Analysis, questions and weights of twelve factors and their sub-factors
LEGEND:
SQ: Sample question
Comfortably Agile 0%Somewhat Agile: 25%Mixed, Hybrid, Tailored: 50%Somewhat Plan-Driven: 75%Comfortably Plan-Driven: 100%
General weight scheme:5: Decisive 4: Heavy 3: Moderate 2: Light 1: Very light0: Non-issue (Can be ignored comfortably)
Application Characteristics
Primary Goals
Continuous deliveryThe need to see things as they are builtSQ: Do you or your client need the working software delivered in phases?YES: Agile 0%No: Plan-Driven 100%May be: Hybrid / Tailored 50%Not Sure: Follow up question, Disregard
General weight: 3
SQ: Do you or your client need to physically see the progress o f the SW?YES: Agile 0%No: Plan-Driven 100%
106
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
May be: Hybrid / Tailored 50% Not Sure: Follow up question, Disregard
General weight: 3
Responsiveness The flexibility to changing environment, requirements, marketplace, technology SQ: How responsive your organization is or wants to be? Very much: Agile 0% Fairly: Agile 25% Somewhat: Tailored / Hybrid 50% Not much: 75% Plan-Driven Not at all: 100% Plan-Driven
General weight 3
Return-on Investment Analysis SQ: Does a Return-on Investment document exist? YES: 50% NO: Agile 0%
General weight 3
SQ: The importance of following such analysis (return-on investment)? Very Important: Plan-driven 100 % Important: Plan-Driven 75% Not Very Important: Agile 25% Not Important / NA: Agile 0% Not sure: Follow up question / discard
General weight 3
Quick Build: Whether there is a need for a quick fix or quick delivery of product SQ: Do your products have to be delivered quickly? YES: Agile 0% Somewhat: Hybrid /Tailored 50% NO: Plan-Driven 100% Not sure: Follow up question / discard
General weight 3
Short Term optimization: Whether there is a need for a quick fix of the process SQ: Are you looking for a short-term solution to improve your process? YES: Agile 0%
107
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
May be: Hybrid / Tailored 50%Not Sure: Follow up question, Disregard
General weight: 3
ResponsivenessThe flexibility to changing environment, requirements, marketplace, technology SQ: How responsive your organization is or wants to be?Very much: Agile 0%Fairly: Agile 25%Somewhat: Tailored / Hybrid 50%Not much: 75% Plan-Driven Not at all: 100% Plan-Driven
General weight 3
Return-on Investment AnalysisSQ: Does a Retum-on Investment document exist?YES: 50%NO: Agile 0%
General weight 3
SQ: The importance of following such analysis (retum-on investment)?Very Important: Plan-driven 100 %Important: Plan-Driven 75%Not Very Important: Agile 25%Not Important / NA: Agile 0%Not sure: Follow up question / discard
General weight 3
Quick Build:Whether there is a need for a quick fix or quick delivery of product SQ: Do your products have to be delivered quickly?YES: Agile 0%Somewhat: Hybrid /Tailored 50%NO: Plan-Driven 100%Not sure: Follow up question / discard
General weight 3
Short Term optimization:Whether there is a need for a quick fix of the processSQ: Are you looking for a short-term solution to improve your process?YES: Agile 0%
107
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
NO: 50% Not sure: Follow up question / discard
General Weight 2
Predictability: Prediction is based on the measurements of prior standard activities SQ: How foreseeable the process and the end product shall be (Time lines, Product quality) Very much: Plan-driven 100% Fairly: Plan-Driven 75% Somewhat: Tailored / Hybrid 50% Not much: Agile 25% No need: agile 0% Not sure: Follow up question / discard
General weight 3
SQ: Do your organization want to have Work Products, Verification / Validation strategies? YES: Plan-Driven 100% NO: Agile 0% Maybe: 50% Not sure: Follow up question / discard
General weight 3
Stability: The existence of unprecedented projects with high rate of unforeseeable change SQ: Do your projects have high rate of unforeseeable change? YES: Agile 0% To Some Extent: Agile 25% Somewhat: Tailored / Hybrid 50% Not very often: Plan-Driven 75% NO / NA: Plan-Driven 100% Not sure: Follow up question / discard
General Weight: 4
High Assurance: Safety-critical Projects SQ: How critical is the quality / reliability of the SW? (E.g. Game / MRI SW) Highly critical: Plan-Driven 100% * Decisive Moderately critical: Plan-Driven 75% Somewhat Critical: 50% Not very critical: Agile 25%
108
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
NO: 50%Not sure: Follow up question / discard
General Weight 2
Predictability:Prediction is based on the measurements o f prior standard activitiesSQ: How foreseeable the process and the end product shall be (Time lines, Productquality)Very much: Plan-driven 100%Fairly: Plan-Driven 75%Somewhat: Tailored / Hybrid 50%Not much: Agile 25%No need: agile 0%Not sure: Follow up question / discard
General weight 3
SQ: Do your organization want to have Work Products, Verification / Validation strategies?YES: Plan-Driven 100%NO: Agile 0%Maybe: 50%Not sure: Follow up question / discard
General weight 3
Stability:The existence o f unprecedented projects with high rate o f unforeseeable change SQ: Do your projects have high rate of unforeseeable change?YES: Agile 0%To Some Extent: Agile 25%Somewhat: Tailored / Hybrid 50%Not very often: Plan-Driven 75%NO / NA: Plan-Driven 100%Not sure: Follow up question / discard
General Weight: 4
High Assurance:Safety-critical ProjectsSQ: How critical is the quality / reliability o f the SW? (E.g. Game / MRI SW) Highly critical: Plan-Driven 100% * DecisiveModerately critical: Plan-Driven 75%Somewhat Critical: 50%Not very critical: Agile 25%
108
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Not critical at all: Agile 0% Not sure: Follow up Question
General Weight: 5 for High critical projects make this factor final to be Plan-Driven
Size
Number: The Number of employees working on a given project including managers, support, clients on site, engineers, developer, programmers/analysts 0-10 0 Agile * Decisive 10-40 Agile25% 40-150 Plan-Driven75% 150+ Plan-Driven 100% *Decisive
General Weight: 5 * Decisive
Scaling up: SQ: Is your organization going to grow (number of employees) in near future? By how many? (Including your current) 0-11 0 Agile * Decisive 10-41 Agile25% 40-151 Plan-Driven75% 150+ Plan-Driven 100% *Decisive
General Weight: 5 * Decisive
Note: Scaling up is impossible with agile
Environment
Requirements Rate of Change: Whether the requirements change or new requirements emerge SQ: Are the requirements determinable in advance? YES: Plan-Driven 100% No: Agile 0% Somewhat: 50% Not Sure: Follow up questions/ discard
General weight: 4
109
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Not critical at all: Agile 0%Not sure: Follow up Question
General Weight: 5 for High critical projects make this factor final to be Plan-Driven
Size
Number:The Number o f employees working on a given project including managers, support, clients on site, engineers, developer, programmers/analysts 0-10 0 Agile * Decisive10-40 Agile25%40-150 Plan-Dri ven7 5 %150+ Plan-Driven 100% *Decisive
General Weight: 5 * Decisive
Scaling up:SQ: Is your organization going to grow (number of employees) in near future? By how many? (Including your current)0-11 0 Agile * Decisive10-41 Agile25%40-151 Plan-Driven7 5 %150+ Plan-Driven 100% *Decisive
General Weight: 5 * Decisive
Note: Scaling up is impossible with agile
Environment
Requirements Rate of Change:Whether the requirements change or new requirements emerge SQ: Are the requirements determinable in advance?YES: Plan-Driven 100%No: Agile 0%Somewhat: 50%Not Sure: Follow up questions/ discard
General weight: 4
109
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
SQ: What percentage is the Requirements-Change per month? 1% and less: Plan-Driven 100% 1-5%: Plan-Driven 75% 5-10%: Hybrid / Tailored 50% 10-30%: Agile 25% 30%+: Agile 0% Not Sure: Follow up questions/ discard
General weight: 4
Organizational Concerns: Product line, Design, architecture, systems engineering, human factors, outsourcing, distributed development, far-off users SQ: Is your organization concerned / involved in the above-mentioned concepts? Yes Very much: Plan-driven 100% *Decisive To some degree: Plan-Driven 75% Somewhat: Tailored /Hybrid 50% Not really: Agile 25% Not at all / NA: Agile 0%
General Weight: 5 for YES make this factor final to be Plan-Driven
Stovepipes: SQ: Do several independently evolved applications have to subsequently be closely integrated? (Rephrase the question of course) YES: Plan-Driven 100% *Decisive No: Agile 0% Not sure: Follow up question / discard
General weight 5
Information Sclerosis: SQ: Do temporary procedural standards harden into unchangeable constraints on system development and cause unnecessary rework? YES: Plan-Driven 100% No: Agile 0% Not sure: Follow up question / discard
General weight 3
Bridging Situations: SQ: Does new software incrementally replace the old one? YES: Plan-Driven 100% No: Agile 0% Not sure: Follow up question / discard
110
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
SQ: What percentage is the Requirements-Change per month?1% and less: Plan-Driven 100%1-5%: Plan-Driven 75%5-10%: Hybrid / Tailored 50%10-30%: Agile 25%30%+: Agile 0%Not Sure: Follow up questions/ discard
General weight: 4
Organizational Concerns:Product line, Design, architecture, systems engineering, human factors, outsourcing, distributed development, far-off usersSQ: Is your organization concerned / involved in the above-mentioned concepts?Yes Very much: Plan-driven 100% *Decisive To some degree: Plan-Driven 75%Somewhat: Tailored /Hybrid 50%Not really: Agile 25%Not at all / NA: Agile 0%
General Weight: 5 for YES make this factor final to be Plan-Driven
Stovepipes:SQ: Do several independently evolved applications have to subsequently be closely integrated? (Rephrase the question of course)YES: Plan-Driven 100% *Decisive No: Agile 0%Not sure: Follow up question / discard
General weight 5
Information Sclerosis:SQ: Do temporary procedural standards harden into unchangeable constraints on system development and cause unnecessary rework?YES: Plan-Driven 100%No: Agile 0%Not sure: Follow up question / discard
General weight 3
Bridging Situations:SQ: Does new software incrementally replace the old one?YES: Plan-Driven 100%No: Agile 0%Not sure: Follow up question / discard
110
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
General weight 3
Monolithic Requirements: SQ: Can the product be delivered in modules? YES: Agile 0% No: Plan-Driven 100%*Decisive Not sure: follow up question / discard
General Weight: 5 for Yes make this factor final to be Plan-Driven
Continuity Requirements: Does the familiarity with the system across a large, mission-critical user base have to be maintained? (Rephrase the question of course) YES: Plan-Driven 100% *Decisive No: Agile 0% Not sure: Follow up question / discard
General Weight: 5 for YES make this factor final to be Plan-Driven
Process Improvement: The idea that the processes of the organization shall improve once the model is placed SQ: How Important is it for you to continuously improve the processes of your organization? Very much: Plan-Driven 100% Somewhat: 50% Not very much: Agile 25% Not at all, N/A: Agile 0% Not sure: Follow up question / discard
General weight 3
Management Characteristics
Customer relations
Collocated Customer: The need for the presence of an on-site customer SQ: Are your customers willing / able to be on-site and devote themselves to the development of the project? YES: Agile 25% No: Plan-Driven 75% May be: Hybrid / Tailored 50% Not Sure: Follow up question, Disregard General Weight: 4
111
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
General weight 3
Monolithic Requirements:SQ: Can the product be delivered in modules?YES: Agile 0%No: Plan-Driven 100%*Decisive Not sure: follow up question / discard
General Weight: 5 for Yes make this factor final to be Plan-Driven
Continuity Requirements:Does the familiarity with the system across a large, mission-critical user base have to be maintained? (Rephrase the question of course)YES: Plan-Driven 100% *Decisive No: Agile 0%Not sure: Follow up question / discard
General Weight: 5 for YES make this factor final to be Plan-Driven
Process Improvement:The idea that the processes o f the organization shall improve once the model is placed SQ: How Important is it for you to continuously improve the processes of your organization?Very much: Plan-Driven 100%Somewhat: 50%Not very much: Agile 25%Not at all, N/A: Agile 0%Not sure: Follow up question / discard
General weight 3
Management Characteristics
Customer relations
Collocated Customer:The need for the presence o f an on-site customerSQ: Are your customers willing / able to be on-site and devote themselves to the development o f the project?YES: Agile 25%No: Plan-Driven 75%May be: Hybrid / Tailored 50%Not Sure: Follow up question, Disregard General Weight: 4
111
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
SQ: Are your Customers knowledgeable enough to make project related decisions? YES: Agile 75% No: Plan-Driven 0% May be: Hybrid / Tailored 50% Not Sure: Follow up question, Disregard
General weight: 4
Contract Specification: Whether the organization is contract base SQ: Does your organization depend on formalised contract specification? SQ: Is the contract specification a source of trust (or lack of it a source of stress) between your organization and your customers? YES: Plan-Driven 100% NO: Agile 25% May be / Not sure: Follow up question, disregard
General Weight: 3
Process Maturity: SQ: Has your customers asked you about the maturity of your processes? (i.e. Do they except your organisation's processes be compatible with some well established standards such as CMM,CMMI?) YES: Plan-Driven 100% No: Agile 25%
General weight: 1
Planning and Control
Tacit knowledge vs. explicit documented knowledge SQ: Does your organisation thrive on the tacit knowledge of its developers? YES: Agile 0% No: Plan Driven 100% A mix of both: Tailored/hybrid 50% Not sure: follow up question, disregard
General weight: 3
Pair programming: SQ: Does the interpersonal skill level of your developers allow the implementation of the "pair programming" idea? YES: Agile 0% NO: Plan-Driven 100% Mix: Tailored / Hybrid 50% Not sure: Follow up question, disregard
112
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
SQ: Are your Customers knowledgeable enough to make project related decisions?YES: Agile 75%No: Plan-Driven 0%May be: Hybrid / Tailored 50%Not Sure: Follow up question, Disregard
General weight: 4
Contract Specification:Whether the organization is contract baseSQ: Does your organization depend on formalised contract specification?SQ: Is the contract specification a source of trust (or lack of it a source o f stress) between your organization and your customers?YES: Plan-Driven 100%NO: Agile 25%May be / Not sure: Follow up question, disregard
General Weight: 3
Process Maturity:SQ: Has your customers asked you about the maturity of your processes? (i.e. Do they except your organisation’s processes be compatible with some well established standards such as CMM,CMMI?)YES: Plan-Driven 100%No: Agile 25%
General weight: 1
Planning and Control
Tacit knowledge vs. explicit documented knowledgeSQ: Does your organisation thrive on the tacit knowledge of its developers?YES: Agile 0%No: Plan Driven 100%A mix of both: Tailored/hybrid 50%Not sure: follow up question, disregard
General weight: 3
Pair programming:SQ: Does the interpersonal skill level of your developers allow the implementation of the “pair programming” idea?YES: Agile 0%NO: Plan-Driven 100%Mix: Tailored / Hybrid 50%Not sure: Follow up question, disregard
112
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
General Weight: 3
Meetings SQ: Are you willing to specify a time slot everyday for a short informal meeting? (Shake hands meeting) YES: Agile 0% NO: Plan-driven 75% May be: Tailored / Hybrid 50% Not Sure: Disregard
General weight: 2
Shared code Ownership SQ: Is it feasible in your company to share the produced code across the organisation? YES: Agile 0% NO: Plan-driven 100% May be: Tailored / Hybrid 50% Not Sure: Disregard
General weight: 2
On-Site Development: SQ: Are the projects built for local (in house) applications? Yes: Agile 25% No: Plan-Driven 75% Mix: Tailored / Hybrid 50% No answer: disregard
General Weight: 2
Developing tacit knowledge: SQ: Are you willing to devote 20% of your time and resources in developing the tacit knowledge of your developers through practices mentioned above? (It is noteworthy to mention that the larger the organisation and the projects are, the longer this will take and the more expensive) YES: Agile 0% NO: Plan-Driven 75% Maybe: 50% Not sure: Follow up question, disregard
General weight: 2
Developing explicit knowledge: SQ: Does your organisation rely heavily on schedules, milestones, procedures, requirement, architecture, and standards?
113
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
General Weight: 3
MeetingsSQ: Are you willing to specify a time slot everyday for a short informal meeting? (Shake hands meeting)YES: Agile 0%NO: Plan-driven 75%May be: Tailored / Hybrid 50%Not Sure: Disregard
General weight: 2
Shared code OwnershipSQ: Is it feasible in your company to share the produced code across the organisation? YES: Agile 0%NO: Plan-driven 100%May be: Tailored / Hybrid 50%Not Sure: Disregard
General weight: 2
On-Site Development:SQ: Are the projects built for local (in house) applications?Yes: Agile 25%No: Plan-Driven 75%Mix: Tailored / Hybrid 50%No answer: disregard
General Weight: 2
Developing tacit knowledge:SQ: Are you willing to devote 20% of your time and resources in developing the tacit knowledge of your developers through practices mentioned above? (It is noteworthy to mention that the larger the organisation and the projects are, the longer this will take and the more expensive)YES: Agile 0%NO: Plan-Driven 75%May be: 50%Not sure: Follow up question, disregard
General weight: 2
Developing explicit knowledge:SQ: Does your organisation rely heavily on schedules, milestones, procedures, requirement, architecture, and standards?
113
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
YES: Plan-Driven 100% No: Agile 0% Somewhat: tailored / hybrid 50% Do not know / should we? : Follow up questions, disregard
General weight: 2
SQ: Are accurate future projections by the means of preserving historical data important to your organisation? (Does your organisation rely on future forecasts) YES: Plan-driven 100% NO: Agile 25% May be: Tailored / hybrid 50% Not sure: follow up question, disregard
General weight: 2
Project Communication
Person-to-person communication: Does your organisation encourage / is willing to share the knowledge across the organisation by person-to-person interactions (i.e. pair programming, stand-up meetings...) YES: Agile 0% NO: Plan-Driven 100% Somewhat: 50% Not sure: Follow up questions, disregard
General weight: 2
Note: scalability is an issue in this regard for n persons there are n(n-10/2 different means of communication.
Note: the assumption that everybody's tacit knowledge is consistent across an organisation is highly risky.
Reports: SQ: Do you use progress reports, process descriptions...? i.e. one way communication) for passing knowledge across? Or you have no other choice but to do so? YES: Plan-Driven 100% NO: Agile 0% Somewhat: 50% Not sure: Follow up questions, disregard
General weight: 2
114
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
YES: Plan-Driven 100%No: Agile 0%Somewhat: tailored / hybrid 50%Do not know / should we? : Follow up questions, disregard
General weight: 2
SQ: Are accurate future projections by the means of preserving historical data important to your organisation? (Does your organisation rely on future forecasts)YES: Plan-driven 100%NO: Agile 25%Maybe: Tailored / hybrid 50%Not sure: follow up question, disregard
General weight: 2
Project Communication
Person-to-person communication:Does your organisation encourage / is willing to share the knowledge across the organisation by person-to-person interactions (i.e. pair programming, stand-up meetings...)YES: Agile 0%NO: Plan-Driven 100%Somewhat: 50%Not sure: Follow up questions, disregard
General weight: 2
Note: scalability is an issue in this regard for n persons there are n(n-10/2 different means of communication.
Note: the assumption that everybody’s tacit knowledge is consistent across an organisation is highly risky.
Reports:SQ: Do you use progress reports, process descriptions...? i.e. one way communication) for passing knowledge across? Or you have no other choice but to do so?YES: Plan-Driven 100%NO: Agile 0%Somewhat: 50%Not sure: Follow up questions, disregard
General weight: 2
114
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Note: both types of knowledge (explicit / implicit) / communication (person-to-person, one-way) should exist in both methods to be successful
Note: less experienced developers in plan-driven environment tend to take up most of the time creating unnecessary documentation for a security blanket.
Technical Characteristics
Requirements
Formal Vs. Informal SQ: Are your requirements formalised (specific)? YES: Plan-Driven 100% No: Agile 0% Somewhat: Tailored / Hybrid 50% Not sure: Follow up questions, disregard
General weight: 4
Prioritized Requirements SQ: Do your customers need to prioritize the requirements? YES: Agile 0% NO: Plan-Driven 100% Maybe: Follow up questions, disregard
General weight: 3
Adjustability SQ: Do you prefer to negotiate the contents of the requirements on an on going basis (e.g. once a month) rather than having an established set of requirements? YES: Agile 0% NO: Plan-Driven 100% Somewhat: Tailored / hybrid 50% Not sure: Follow up questions, disregard
General weight: 4
Quality, Risk Management SQ: Does your organisation find the presence of the following concepts important? (Risk management, Quality handling, reliability, throughput, real-time deadline satisfaction, scalability) VERY MUCH: Plan-Driven 100% YES: Plan-Driven 75%
115
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Note: both types o f knowledge (explicit / implicit) / communication (person-to-person, one-way) should exist in both methods to be successful
Note: less experienced developers in plan-driven environment tend to take up most of the time creating unnecessary documentation for a security blanket.
Technical Characteristics
Requirements
Formal Vs. InformalSQ: Are your requirements formalised (specific)?YES: Plan-Driven 100%No: Agile 0%Somewhat: Tailored / Hybrid 50%Not sure: Follow up questions, disregard
General weight: 4
Prioritized RequirementsSQ: Do your customers need to prioritize the requirements?YES: Agile 0%NO: Plan-Driven 100%Maybe: Follow up questions, disregard
General weight: 3
AdjustabilitySQ: Do you prefer to negotiate the contents of the requirements on an on going basis (e.g. once a month) rather than having an established set o f requirements?YES: Agile 0%NO: Plan-Driven 100%Somewhat: Tailored / hybrid 50%Not sure: Follow up questions, disregard
General weight: 4
Quality, Risk ManagementSQ: Does your organisation find the presence of the following concepts important? (Risk management, Quality handling, reliability, throughput, real-time deadline satisfaction, scalability)VERY MUCH: Plan-Driven 100%YES: Plan-Driven 75%
115
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Somewhat: Tailored / Hybrid 50% NO: Agile 25% NOT AT ALL: Agile 0% Not sure: Follow up questions, disregard
General Weight: 4
Development
Refactoring SQ: Do you posses the kind of developers that make the practice of refactoring (rework) inexpensive? YES: Agile 0% NO: Plan-Driven 75% Somewhat: 50% Not sure: Follow up questions, disregard
General weight : 2
New features (Scalability) SQ: Is there a possibility that the application (software) becomes larger (New features to be added)? YES: Plan-Driven 100% NO: Agile 0% Not Many: Plan-Driven 75% Somewhat: 50% Only a few: Agile 25% Not sure: Follow up questions, disregard
General weight: 4
Quality attributes SQ: Is there a possibility that the quality attributes such as reliability, throughput, and response time to increase during development? YES: Plan-Driven 100% NO: Agile 0% Somewhat: Tailored / Hybrid 50% Not sure: Follow up questions, disregard
General weight: 4
Multinational Operations SQ: Is your organisation's operation multinational that creates multilingual applications? YES: Plan-Driven 100% NO: Agile 0% Not sure: Follow up questions, disregard
116
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Somewhat: Tailored / Hybrid 50%NO: Agile 25%NOT AT ALL: Agile 0%Not sure: Follow up questions, disregard
General Weight: 4
Development
RefactoringSQ: Do you posses the kind of developers that make the practice of refactoring (rework) inexpensive?YES: Agile 0%NO: Plan-Driven 75%Somewhat: 50%Not sure: Follow up questions, disregard
General w eight: 2
New features (Scalability)SQ: Is there a possibility that the application (software) becomes larger (New features to be added)?YES: Plan-Driven 100%NO: Agile 0%Not Many: Plan-Driven 75%Somewhat: 50%Only a few: Agile 25%Not sure: Follow up questions, disregard
General weight: 4
Quality attributesSQ: Is there a possibility that the quality attributes such as reliability, throughput, and response time to increase during development?YES: Plan-Driven 100%NO: Agile 0%Somewhat: Tailored / Hybrid 50%Not sure: Follow up questions, disregard
General weight: 4
Multinational OperationsSQ: Is your organisation’s operation multinational that creates multilingual applications? YES: Plan-Driven 100%NO: Agile 0%Not sure: Follow up questions, disregard
116
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
General weight 4
Program efficiency SQ: Do you prefer a very simple design for your applications and you are not concerned about extra features, quality attributes.. .(an efficient program at present and you are not going to need it YAGNI) YES: Agile 0% No: Plan-Driven 100% Somewhat: Tailored / Hybrid 50% Not sure: Follow up questions, disregard
General weight 3
Architecture based design SQ: Does your organisation conventionally (readily) use an architecture-based design to create software? YES: Plan-driven 75% NO: Agile 0% Somewhat: 50% Not sure: Follow up questions, disregard
General weight 2
Software reuse SQ: Is the concept of software reuse across product lines important to your operations? (I.e. you don't have a rapidly changing environment, which allows you to reuse your design architecture, product lines) YES: Plan-Driven 100% No: agile 0% Somewhat: 50% Not sure: Follow up questions, disregard
General weight 3
Note: Technically one could incorporate some agile practices in Plan-driven development
Testing
Continuous regression testing SQ: Do you want to be able to test the requirements? YES: Agile 0% NO: Plan-Driven 100% Not sure: Follow up questions, disregard
SQ: Do you want to avoid documentation for requirements?
117
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
General weight 4
Program efficiencySQ: Do you prefer a very simple design for your applications and you are not concerned about extra features, quality attributes.. .(an efficient program at present and you are not going to need it YAGNI)YES: Agile 0%No: Plan-Driven 100%Somewhat: Tailored / Hybrid 50%Not sure: Follow up questions, disregard
General weight 3
Architecture based designSQ: Does your organisation conventionally (readily) use an architecture-based design to create software?YES: Plan-driven 75%NO: Agile 0%Somewhat: 50%Not sure: Follow up questions, disregard
General weight 2
Software reuseSQ: Is the concept o f software reuse across product lines important to your operations? (I.e. you don’t have a rapidly changing environment, which allows you to reuse your design architecture, product lines)YES: Plan-Driven 100%No: agile 0%Somewhat: 50%Not sure: Follow up questions, disregard
General weight 3
Note: Technically one could incorporate some agile practices in Plan-driven development
Testing
Continuous regression testingSQ: Do you want to be able to test the requirements?YES: Agile 0%NO: Plan-Driven 100%Not sure: Follow up questions, disregard
SQ: Do you want to avoid documentation for requirements?
117
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
Customers Collaborative Responsive Authorized Committed Knowledgeable (CRACK) Customer SQ: Do you have customers that are Collaborative, Responsive, Authorized, Committed and Knowledgeable (CRACK)? YES: Agile 0% NO: Plan-Driven 100% Somewhat: 50% Not sure: Follow up questions, disregard
General Weight 4
Developers
Interpersonal Skills SQ: Do your developers possess high interpersonal skills (friendliness, communication skills)? YES: Agile 0% NO: Plan Driven 100% Somewhat: 50% Not sure: Follow up questions, disregard
Levels of software developers The percent presence of the following level personnel -1 may have technical skills, but unable or unwilling to collaborate or follow shared
methods 1B with training, able to perform procedural method steps (e.g. coding a simple
method, simple refactoring, following coding standards and CM procedures, running tests). With experience, can master some level 1A skills.
lA with training, able to perform discretionary method steps (e.g. sizing stories to fit increments, composing patterns, compound refactoring, complex COTS integration). With experience, can become level 2
2 Able to tailor a, method to fit a precedented new situation 3 Able to revise a method (break its rules) to fit an unprecedented new situation
SQ: Indicate the percentage of Level 1B and Level lA in your organisation 0-10: Agile 0% 10-20: Agile 25% 20-30: Hybrid / Tailored 50% 30-40: Plan-Driven 75% 40%+: Plan-Driven 100% Not sure: Follow up questions, disregard
General Weight 4
119
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
CustomersCollaborative Responsive Authorized Committed Knowledgeable (CRACK) CustomerSQ: Do you have customers that are Collaborative, Responsive, Authorized, Committed and Knowledgeable (CRACK)?YES: Agile 0%NO: Plan-Driven 100%Somewhat: 50%Not sure: Follow up questions, disregard
General Weight 4
Developers
Interpersonal SkillsSQ: Do your developers possess high interpersonal skills (friendliness, communication skills)?YES: Agile 0%NO: Plan Driven 100%Somewhat: 50%Not sure: Follow up questions, disregard
Levels of software developersThe percent presence of the following level personnel-1 may have technical skills, but unable or unwilling to collaborate or follow shared
methodsIB with training, able to perform procedural method steps (e.g. coding a simple
method, simple refactoring, following coding standards and CM procedures, running tests). With experience, can master some level 1A skills.
1A with training, able to perform discretionary method steps (e.g. sizing stories to fit increments, composing patterns, compound refactoring, complex COTS integration). With experience, can become level 2
2 Able to tailor a, method to fit a precedented new situation3 Able to revise a method (break its rules) to fit an unprecedented new situation
SQ: Indicate the percentage of Level IB and Level 1A in your organisation 0-10: Agile 0%10-20: Agile 25%20-30: Hybrid / Tailored 50%30-40: Plan-Driven 75%40%+: Plan-Driven 100%Not sure: Follow up questions, disregard
General Weight 4
119
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
SQ: Indicate the percentage of level 2 and 3 in your organisation 0-15: Plan-Driven 100% 15-20: Plan Driven 75% 20-25: Tailored / hybrid 50% 30-35: Agile 25% 35%+: Agile 0%
General weight 4
Culture
SQ: Do your people feel comfortable or empowered when they are trusted to do whatever work necessary? (Many degrees of freedom) YES: Agile 0% Somewhat: Tailored / Hybrid 50% NO: Plan-Driven 100% Not sure: Follow up questions, disregard
General weight 4
SQ: Do your people feel comfortable if their roles are defined by the means of policies and procedures? YES: Plan-Driven 100% Somewhat: Hybrid / Tailored 50% No: Agile 0%
General weight 4
120
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
SQ: Indicate the percentage o f level 2 and 3 in your organisation 0-15: Plan-Driven 100%15-20: Plan Driven 75%20-25: Tailored / hybrid 50%30-35: Agile 25%35%+: Agile 0%
General weight 4
Culture
SQ: Do your people feel comfortable or empowered when they are trusted to do whatever work necessary? (Many degrees o f freedom)YES: Agile 0%Somewhat: Tailored / Hybrid 50%NO: Plan-Driven 100%Not sure: Follow up questions, disregard
General weight 4
SQ: Do your people feel comfortable if their roles are defined by the means o f policies and procedures?YES: Plan-Driven 100%Somewhat: Hybrid / Tailored 50%No: Agile 0%
General weight 4
120
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.