FULLTEXT01
FULLTEXT01
FULLTEXT01
Computer Science
Thesis no: MCS-2008:5
January 2008
Redha Cherif
Department of
Systems and Software Engineering
School of Engineering
Blekinge Institute of Technology
Box 520
SE – 372 25 Ronneby
Sweden
This thesis is submitted to the Department of Systems and Software Engineering, School of
Engineering at Blekinge Institute of Technology in partial fulfilment of the requirements for the
degree of Master of Science in Computer Science (Intelligent Software Systems). The thesis is
equivalent to 20 weeks of full time studies.
Contact Information:
Author: Redha Cherif
E-mail : [email protected]
University advisor:
Professor Paul Davidsson
Department of Systems and Software Engineering
1
ACKNOWLEDGEMENTS
I would like to take this opportunity to express my gratitude to my advisor
Professor Paul Davidsson for his help and encouragement since the start of this
research. His guidance was primordial in focusing on the “relevant” and “significant”
individual characteristics to cover in this work. In this context, Professor Claes Wohlin
also deserves credit and thanks for advising me on the nature of these characteristics.
Also, I would like to thank Thomas Birath from UIQ technologies AB in Ronneby,
for his precious time and for giving me the opportunity to investigate the software
development process at UIQ. Even if this did not lead to a full-scale case study, for
me, the added knowledge was truly beneficial.
2
CONTENTS
ABSTRACT ............................................................................................................................1
1 INTRODUCTION ..........................................................................................................7
1.1 BACKGROUND ...........................................................................................................7
1.2 AIMS AND OBJECTIVES..............................................................................................8
1.3 CONTRIBUTION .........................................................................................................8
1.4 SCIENTIFIC RELEVANCE ............................................................................................8
1.5 RESEARCH QUESTIONS ..............................................................................................8
1.6 EXPECTED OUTCOMES ..............................................................................................8
1.7 RESEARCH METHODOLOGY ......................................................................................9
1.7.1 Literature review (RQ 1,2 & 3) ........................................................................9
1.7.2 Simulations (Model validation) ........................................................................9
1.7.3 Quantitative methods (RQ 4) ............................................................................9
1.7.4 Qualitative analysis (RQ 5 and 6) ....................................................................9
2 RELATED WORK.......................................................................................................10
2.1 SOFTWARE PROCESS SIMULATION MODELLING.....................................................10
2.2 SYSTEM DYNAMICS .................................................................................................10
2.3 SYSTEM DYNAMICS APPLIED TO SPSM ..................................................................11
2.4 SOCIAL CONSIDERATIONS .......................................................................................11
2.5 AGENT-BASED SIMULATION MODELLING ...............................................................12
2.5.1 The idea ..........................................................................................................12
2.5.2 The attempts....................................................................................................12
2.6 MODELLING SOFTWARE DEVELOPERS’ PERFORMANCE AND COGNITIVE
CHARACTERISTICS ..............................................................................................................13
2.6.1 Performance characteristics...........................................................................13
2.6.2 Cognitive characteristics ................................................................................13
3 SOFTWARE PROCESS SIMULATION MODELLING.........................................15
3.1 SOFTWARE DEVELOPMENT AS A PROCESS ..............................................................15
3.1.1 The “Water fall” model ..................................................................................15
3.1.2 The Incremental model ...................................................................................15
3.2 MODELLING THE SOFTWARE DEVELOPMENT PROCESS ...........................................16
3.2.1 Effort Performance Model (EPM) ..................................................................16
3.2.2 Knowledge Model (HKM)...............................................................................18
3.2.3 Artefact Quality Model (AQM) .......................................................................20
3.2.4 Integrating the models ....................................................................................21
3.2.5 Developer/artefact interaction model.............................................................21
3.3 SIMULATION FRAMEWORK .....................................................................................22
3.3.1 Framework overview ......................................................................................22
3.3.2 Framework’s model variables manipulation..................................................23
4 MULTI AGENT-BASED SIMULATION MODEL..................................................26
4.1 AGENTS AND THEIR ENVIRONMENT ........................................................................26
4.1.1 Situation (environment) ..................................................................................26
4.1.2 Characteristics of the simulation environment...............................................26
4.1.3 Autonomy ........................................................................................................27
4.1.4 Intelligence .....................................................................................................27
4.2 IMPLEMENTATION ...................................................................................................28
4.2.1 Agents .............................................................................................................28
4.2.2 Decision making .............................................................................................28
3
5 SYSTEM DYNAMICS SIMULATOR .......................................................................29
5.1 MODEL PREREQUISITES ..........................................................................................29
5.2 A SYSTEM DYNAMICS MODEL OF A DEVELOPMENT PROCESS ...............................29
5.2.1 Feedback dynamics structure .........................................................................29
5.2.2 Levels ..............................................................................................................30
5.2.3 Flows ..............................................................................................................30
5.2.4 Auxiliary variables..........................................................................................30
5.2.5 Difficulties.......................................................................................................30
5.3 IMPLEMENTATION ...................................................................................................31
6 VERIFICATION AND VALIDATION......................................................................32
6.1 VERIFICATION .........................................................................................................32
6.2 VALIDATION ...........................................................................................................32
6.2.1 Face validity ...................................................................................................32
6.2.2 Internal validity ..............................................................................................32
6.2.3 Tracing............................................................................................................33
6.2.4 Model-to-Model validation.............................................................................33
6.2.5 Predictive validation.......................................................................................33
6.2.6 Preliminary validity conclusions ....................................................................33
7 COMPARING MABS TO SD .....................................................................................34
7.1 COMPARING OUTCOMES .........................................................................................34
7.1.1 Experiment overview ......................................................................................34
7.1.2 Analysis...........................................................................................................35
7.2 COMPARING MODELLING ISSUES ............................................................................37
7.2.1 Model elicitation.............................................................................................37
7.2.2 Model configuration and initialisation ...........................................................37
8 DISCUSSION................................................................................................................38
8.1 RESULTS..................................................................................................................38
8.1.1 Modelling the individual-based view..............................................................38
8.1.2 Comparing MABS to SD.................................................................................38
8.1.3 Lessons learned from MABS and SD modelling.............................................38
8.1.4 The cost of MABS............................................................................................39
8.2 SHORTCOMINGS ......................................................................................................39
8.2.1 The EPM model and its Locus of Control scale .............................................39
8.2.2 The Knowledge Model ....................................................................................39
8.2.3 Relating requirement scope to effort ..............................................................40
9 CONCLUSIONS...........................................................................................................41
9.1 SUMMARY OF RESULTS...........................................................................................41
9.1.1 Accomplishments ............................................................................................41
9.1.2 Contributions ..................................................................................................41
9.1.3 Lessons learned ..............................................................................................41
9.2 FUTURE WORKS ......................................................................................................42
9.2.1 Improvements..................................................................................................42
9.2.2 Experimentation..............................................................................................42
9.2.3 Application......................................................................................................42
9.2.4 MAS and SPSM...............................................................................................42
9.2.5 Optimisation features......................................................................................42
REFERENCES .....................................................................................................................43
4
A.1.1 Single high performing developer working round-the-clock ............................1
A.1.2 Effect of weekend breaks on progress...............................................................1
A.1.3 Restricting work hours to the interval [8 – 17[ ................................................2
A.1.4 Accounting for lunch breaks .............................................................................2
A.1.5 Doubling the human resources .........................................................................3
A.2 PRELIMINARY FACE VALIDITY TESTING OF PERFORMANCE ......................................4
A.2.1 An “ideal” developer........................................................................................4
A.2.2 Two equally “ideal” developers .......................................................................5
A.2.3 Two quite “normal” developers with different performance levels .................5
A.3 MODEL-TO-MODEL COMPARISON WITH HKM .........................................................6
A.3.1 Case 1-1............................................................................................................6
A.3.2 Case 1-2............................................................................................................7
A.3.3 Case 1-3............................................................................................................8
APPENDIX B QUESTIONNAIRES ..............................................................................1
B.1 THE LOCUS OF CONTROL SCALE ..............................................................................1
B.2 SELF-ESTEEM QUESTIONNAIRE .................................................................................3
B.3 ACHIEVEMENT NEEDS QUESTIONNAIRE ....................................................................4
LIST OF FIGURES
Figure 1 The Empirical Performance Model representing the parameters affecting effort
and performance as empirically determined by Rasch and Tosi [25].............................18
Figure 2 A somewhat simplified UML class diagram of the simulation platform............23
Figure 3 Overview of the various catalogues and their files used to set-up a simulation .24
Figure 4 Example of a phases catalogue containing individual phase definition files......24
Figure 5 A system dynamics model of a software development phase.............................29
Figure 6 The progress of 1000 different MABS (in red) and SD (in blue) simulation runs
as a function of duration. ................................................................................................35
Figure 7 A single developer working round-the-clock at 100% efficiency completes a
task of 100 hours in exactly 100 hours. ............................................................................1
Figure 8 A single developer working round-the-clock at 100% efficiency except on
weekends (48 hours delay) completes a task of 100 hours in 148 hours..........................2
Figure 9 A single developer working regular hours only on weekdays at 100% efficiency
completes a task of 100 hours in 361 hours......................................................................2
Figure 10 A single developer working regular hours on regular weekdays with lunch
breaks between 12:00 to 13:00, performing at 100% takes 388 hours to complete a 100-
hour task. 3
Figure 11 Two identical developers collaborating on the same 100-hour task. They
terminate after 194 hours, which is exactly half the time it takes a single developer to
perform that task. ..............................................................................................................3
Figure 12 Single developer with an “ideal” IC = {1.0, 1.0, 1.0} and knowledge level
greater than required knowledge level..............................................................................4
Figure 13 Two developers with IC = {1.0, 1.0, 1.0} and knowledge level greater than
required knowledge level, complete a task worth 100 hours in 53 hours (actually 52,3).5
Figure 14 Two developers. D1 = {0.6, 0.7, 0.2} and D2 = {0.6, 0.7, 0.7} both with a
knowledge level greater than required, complete a task worth 100 hours in 67 hours
(actually 66.6)...................................................................................................................6
Figure 15 Single developer with IC = {0.5, 0.6, 0.5} and KC = {100, 100, 30}
corresponding to case 1-1 of Hanakawa et al. [13]...........................................................7
Figure 16 Single developer with IC = {0.7, 0.6, 0.5} and KC = {0, 100, 30}
corresponding to case 1-2 of Hanakawa et al. [13]...........................................................8
Figure 17 Single developer with IC = {0.7, 0.6, 0.5} and KC = {70, 300, 10}
corresponding to case 1-3 of Hanakawa et al. [13]...........................................................9
5
LIST OF TABLES
Table 1 Rasch and Tosi [25]’s definitions of the various individual characteristics they
considered.......................................................................................................................17
Table 2 Empirical Performance Effects; as reported by Rasch and Tosi [25].................18
Table 3 Example of a roles definition file .......................................................................24
Table 4 A simplistic example of a phase definition file pertaining to the design phase..25
Table 5 An example of a project’s phases definition file. Among other things it specifies
that the software design phase will complete once quality has reached at least 96%.....25
Table 6 The currently supported termination criteria, their syntax and description ........25
Table 7 Situation action rules describing the agent’s decision-making process. Text in
bold face represents primitive actions. Clock in and out helps the simulator in
bookkeeping a developer’s effort. ..................................................................................28
Table 8 Result of the statistical analysis of 200 simulation pairs of MABS and SD based
on random project scopes, in range 10 to 60 hours. .......................................................33
Table 9 Individual and knowledge characteristics of the five participants......................34
Table 10 Result of the statistical analysis of 1000 simulation pairs of MABS and SD runs
with varying project scopes drawn at random in the range 100 to 1000 hours...............36
6
1 INTRODUCTION
1.1 Background
Software process simulation modelling (SPSM) is an approach to analysing,
representing and monitoring a software process phenomenon. It addresses a variety of
such phenomena, from strategic software management to software project
management training [16]. Simulation is a means of experimentation, and so is SPSM.
Such experimentation attempts to predict outcomes and improve our understanding of
a given software process. While controlled experiments are too costly and time
consuming [23] SPSM carries the hope of providing researchers and software
managers with “laboratory-like” conditions for experimenting with software processes.
There are numerous techniques for proceeding with SPSM. Kellner et al. [16]
enumerate a number of these, such as: state-based process models, discrete event
simulations and system dynamics (SD) [10]. The two former are discrete in nature
while the latter is continuous.
A number of SD models have been quite successful in matching real life
quantitative data [7]; most notable are those of Abdel-Hamid [1],[2], Abdel-Hamid and
Madnick [3], Madachy [20], Glickman and Kopcho [11]. However, these represent a
centralistic activity-based view that does not capture the interactions at the individual
level [31]. When activity-based view is applied to SPSM the various characteristics of
the developers, that are individual in nature, are represented by group averages such as
average productivity, average assimilation delay and average transfer delay, as in [2].
Models based on these views are in effect assuming homogeneity among the
developers [31], which may result in the model not being able to account for or explain
certain facts observed in real-life as noted by Burke [7].
Since software development is a human-intensive activity, an interest for
incorporating social considerations in to SPSM models has emerged [31]. Christie and
Staley [8] were among the first to introduce social issues into such models. They
attempted to study how the effectiveness of human interactions affected the quality
and timeliness of a JAD1 requirement process. For this purpose, they used a discrete
event-based approach to model the organisational process, while continuous
simulation was used for their social model. Integrating the continuous social model
into the discrete organisational one proved problematic [8] due to the fundamental
difference between these temporal paradigms. Burke [7] followed up by integrating
social considerations in the modelling of a high-maturity software organisation, GSFC2
at NASA. Here too, system dynamics was used.
However, as it was noted above, equation based models such as system dynamics
often embody assumptions of homogeneity yielding less accurate results than those
excluding such assumptions. Parunak et al. [24] illustrate this in a case study
comparing agent-based modelling (ABM) to equation-based modelling (EBM). Their
findings are that ABMs are “most appropriate” for modelling domains characterised by
being highly distributed and dominated by discrete decisions, while EBMs are more
appropriate for domains that can be modelled centrally, “and in which the dynamics
are dominated by physical laws rather than information processing”.
Finally, Wickenberg and Davidsson [31], build the case for applying multi agent-
based simulation (MABS) to software development process (SDP) simulation. They
base their arguments on a review of the field and enlist most of the shortcomings,
described above: activity-based views, homogeneity assumptions and the human-
intensive (thus individual) nature of software processing. Despite all these arguments
1
Joint Application Development
2
Goddard Space Flight Centre
7
in favour of MABS [31], consolidated by the information processing dynamics [24] of
SPSM, hardly any research can be found on integrating the two.
1.3 Contribution
Based on our review of the literature, there appears to be grounds for claiming that
MABS is an appropriate alternative for SPSM, probably more appropriate than SD in
simulating the software process from an individual-based view. However, we are not
aware of any evidence of this, as there seems not to exist any serious attempts to apply
MABS to SPSM and even less so to compare it to SD (in an SPSM context).
Our primary contribution would be in establishing the appropriateness of MABS
to SPSM, and probably even provide first evidence that MABS is actually more
appropriate than SD in this context (and under certain conditions).
8
1.7 Research Methodology
For the purpose of our research a number of qualitative and quantitative research
methods were used to answer our various questions and to validate our models.
9
2 RELATED WORK
In this section we discuss the various researches and articles that pertain to our
work. Given that our research questions are at the junction of a number of fields,
namely: simulation modelling (SPSM, SD and ABM), software engineering (Software
processes and developer characteristics), psychology (various theories of motivation
and human performance) computer science (the agency paradigm), we chose to
organise our review under the following headings.
10
2.3 System dynamics applied to SPSM
Abdel-Hamid’s work [1],[2] (including Abdel-Hamid and Madnick [3]) from the
1980’s are of the most notable, and very likely the first applications of system
dynamics to the field of software process simulation. The original work [1], a PhD.
dissertation, was carried in light of the then termed “software crisis” (Pressman 1982,
as cited in [1]) which refers to software engineering’s difficulties in terms of cost and
schedule overruns as well as failing to satisfy customer expectations. The concern in
[1] was originally from a managerial perspective, however the derived model was an
“integrative” one that included:
…both the management-type functions (e.g., planning, controlling, staffing) as well as
the software production-type activities (e.g., designing, coding, reviewing, testing).
The model is based on a battery of 27 interviews of software project managers in
five different well-established software organisations, supported by an extensive
review of the literature that provided for a large amount of empirical findings. The
purpose of the model was to improve the then understanding of the software
development process. According to Abdel-Hamid [1], SD’s “powerful formalization
and simulation tools” helped manage the complexity of the model and its hundreds of
variables. This model was then used in a case study of a sixth software-producing
organisation in which it showed to be highly accurate in replicating the history of a
selected project especially on workforce level, schedule and cost variables [1].
3
Joint Application Development
11
2.5 Agent-based simulation modelling
2.5.1 The idea
Wickenberg and Davidsson [31], on simulating the software development process
note that despite such processes being performed by a set of cooperating individuals,
they usually are modelled using a centralistic activity-based view instead of an
individual-based view. They were the first to suggest that multi agent-based simulation
was a feasible alternative to activity-based approaches for simulating the software
development process. Their investigation was about the applicability of MABS to SDP
in general. Therefore they treated the problem from several abstraction levels and
found MABS to be a feasible alternative. Simulations concerned with the very minutes
of the interactions between developers can benefit of MABS, as it could “(in
principle)” model and capture “conversations” between the various developers. Those
simulations designed for higher levels of abstractions such as studying employee
turnover can also benefit from a MABS approach. Wickenberg and Davidsson [31],
note that at an even higher level of abstraction, agents need not necessarily represent
only the individuals within an organisation. They could be used to model departments
within organisations, the organisations themselves, or other SDP stakeholders and the
interaction among these. According to them, MABS applied to SDP suffers from a
serious limitation. In many cases there is only limited knowledge or information
available about the individual behaviour, more than just the role defined by the
process. Another hinder for using MABS within an SDP setting regards the lack of
statistical data documenting the individual behaviour of the participants during such a
process. There is therefore little to gain using MABS if the behaviour is only known in
terms of collective measures (averages) of their performance and if the role-played by
the developer maps directly to the process, i.e is clearly predictable.
Our work uses this document ([31]) as its starting point. During our study of the
problem, we came to experience the lack of statistical data regarding the individual
behaviour of developers. We partially remedied to this problem by using an integrative
model as explained in section 3.2 which shifts the problem from being the collection of
behavioural data that is difficult to evaluate and measure to the collection of data
related to the variables that affect this behaviour, which are better defined and
therefore easier to identify and measure.
4
Rational Unified Process
12
In another study, Smith and Capilupp [29] attempted to apply agent-based
simulation modelling to open source software (OSS) to study the relation between size,
complexity and effort. They present a model in which complexity is considered a
hindering factor to productivity, fitness to requirement and developer motivation. They
highlight the fundamental difference between “traditional” proprietary software
development and that of the more cooperative and distributed OSS in terms of both
process and evolution. To validate their model they compared its results to four large
OSS projects. This model could not, so far, account for the evolution of size in an OSS
project.
We find this model to be rather simplistic as both developers and requirements are
“indiscriminately” modelled as agents and implemented as patches on a grid5. This
grid introduces a spatial metaphor that we find inappropriate. The authors for example
use the notion of physical vicinity to model the “chances” of a given requirement to
attract a developer “passing through cyberspace”. Although they speak of cyberspace,
vicinity actually implies physical space.
One of the strengths of the agency paradigm is that it allows designing systems
using metaphors close to the problem domain, especially in presence of distributed and
autonomous individuals or systems. Therefore, using physical vicinity of a
requirement or a task to a bypassing individual as a measure of the probability of the
individual taking interest in that task is a metaphor that, in our opinion, does not map
well to reality suggesting therefore an inappropriate use of agents.
5
Smith and Capilupp [29] used freely available agent software NetLogo that represents agents as cells
in a grid each of which is responsible for maintaining its own state information.
13
given threshold the task is considered as being too difficult and only very little
knowledge maybe gained.
14
3 SOFTWARE PROCESS SIMULATION MODELLING
In this section, we deal with the modelling issues related to the simulation of the
software development process. The first subsection is a succinct overview of software
engineering from a process or sequence model perspective which provides us with a
background to the following subsection in which we attempt to model the process; to
finally present the simulation framework that implements this model.
15
incompleteness, inconsistency and/or conflicting requirements early on in the project.
Early remedy to such shortcomings –thanks to their early detection– is obviously much
more economical than late remedy.
The main difference between the two sequence models from a simulation
perspective is the management of remaining phase activities that need to be completed
in a coming iteration including pending improvements or corrections. This
management applies only to the incremental sequence model.
16
3.2.1.1 Expectancy theory
Expectancy theory has been widely used in studying motivational issues (Baker et
al., 1989; Brownell and McInnes, 1986; Butler and Womer, 1985; Harrell and Stahl,
1984; Kaplan, 1985; Nickerson and McClelland, 1989) as cited in [25]. This theory is
based on the belief that highly motivated individuals will exert higher level of effort
resulting in higher performance as compared to less motivated ones [25].
According to [25], expectancy theory relates performance to an individual’s effort-
level, ability and role perceptions.
17
Self esteem
Goal difficulty 0 .1
5
0.1 -0.1
9 1
9
0.3 0.18
1
Achievement 0.1
4
0.5
need
Locus of control
Ability
Figure 1 The Empirical Performance Model representing the parameters affecting effort
and performance as empirically determined by Rasch and Tosi [25].
18
question, or if this is not feasible then one can rely on the experience of the developer
for quantifying the adequacy of his or her knowledge [13]. As to the workload it is
quantified by analysing the volume of artefacts produced previously on similar
projects. From such documents two types of information are extracted (i) size of a
given activity and (ii) type of knowledge applied. Hanakawa et al.[12] present the
example of a, previous, design document in a project similar to the one being
estimated. From that document they would count the type of knowledge required in the
making of each page of the document. In their example the design document was 500
pages of which 50 were concerned by RDB issues while 100 pages addressed SQL
matters. The RDB workload therefore accounts for 10% while SQL presents a
workload of 20% of the total workload. Knowing the requirement size, in function
points, of the new project makes extrapolation simple. If the new project requirements
represents half the function points of the previous project, then Hanakawa et al.[12]
estimate that the new design document would result in 250 pages of which 25 require
knowledge of RDB while 50 pages require SQL knowledge.
We find these latest extrapolations quite hazardous especially if the new project
had less function points precisely because no database was required, in which case
both RDB and SQL workload would amount to zero. However, Hanakawa et al.[12]
were careful in saying that the comparison should be applied to a previous yet similar
project.
Hanakawa et al.[12]’s original model consisted of three sub-models: Activity,
Productivity and Knowledge model. Of these only the later is relevant for our research.
19
3.2.3 Artefact Quality Model (AQM)
Quality, as its name suggests, is hard to quantify. In our attempt, we first identify a
causal relation between quality, knowledge and experience.
Knowledge provides a developer with the abstract and theoretical foundations for
accomplishing a given task. Experience enhances these foundations with a practical
perspective allowing one to gain awareness of the limits of certain theories or practices
and the crucial importance of others. It is our opinion that experience is a balancing
utility for weighing decision factors, of inherently different nature, against each other
in order to optimise decision outcomes. The EPM abstracts knowledge and experience
in the factor ability. For modelling purposes we shall rely on this abstraction, i.e. use
ability in lieu of knowledge and experience, to relate to artefact quality.
An artefact as such is the synthesis of several sub-activities carried out by probably
more than one person. The size s of an artefact a, at any time, depends on the
performance of the individual(s) working on it. Similarly the quality q depends on the
ability of the individuals performing it.
20
3.2.4 Integrating the models
In order to provide us with a performance value, the EPM model requires as input,
among other variables, ability, task difficulty and task clarity. However the HKM
model provides us with a measure of knowledge adequacy relative to a required level
of knowledge and a model that captures the dynamic fluctuation of the former.
3.2.4.1 Ability
In the EPM model, ability is defined by measuring native intellectual capacity and
the quality of ones formal studies. This leads us to conclude that we can use level of
knowledge as provided by the HKM model to represent ability.
Abilityi,j = bi,j (3-7)
21
item “GUI” and then “RDB” thereafter he, or some tester, will apply the activity “Test
cases design” to first the “GUI” then “RDB”.
Our (simulated) project manager decides on which activity to allocate to which
agent using this template.
For an output artefact to be complete, all input artefact items need be “subjected”
to every type of activity defined in the phase (actually in its template).
For example, let us define the following activities A = { a1, a2,…, an} which are to
be applied to an artefact “analysis specification” that includes items I ={i1, i2,…, im}.
Algorithm 1 shows how the input artefact is converted to an output artefact
However, the above algorithm does not show how developers are allocated
activities according to their role or competence. In the example above, the phase
template specifies that, for example, a tester and not a software developer should carry
out ”Test case design”. In our implementation, the manager compares the required role
type for an activity specified in a process phase template with the role(s) that an agent
represents. If the activity is not adequate the manager looks up the next activity in his
list until some adequate activity is found else “null” is returned, whereby the developer
has nothing more to do during this phase.
22
KnowledgePrimitive
-type
-name
-importance
AverageDeveloper Calendar
Project -c
-costRegularHours
-requirementSpecification : Artefact
-costExtraHours +getTime()
-phases[] : Phase
-holidayPeriods[] * +getDate()
+getTotalDuration()
#requestTask() +increment()
+getTotalPerformance()
#performTask() +isHoliday(in date) : bool
+getTotalQuality()
#updateAbility() +isWeekEnd(in date) : bool
+getTotalCost()
+getDifficulty() +isWeekDay(in date) : bool
+getPerformance() +isBusinessHour(in time) : bool
* 1 -s
+isRegularHour(in time) : bool
Simulator
+isLunch(in time) : bool
-type
1 -project : Project 1
-calendar : Calendar
-s
SD MABS
23
resources
|--- database
| |--- project <name>
| | |--- phases.txt
| | |--- requirements specification.txt
| | |--- settings.txt
| |
| |--- developers.txt
|
|--- knowledgebase
| |--- knowledgeabilities.txt
| |--- knowledgeprimitives.txt
|
|--- process
| |--- <name>
| | |--- phases
| | | |--- <phase 1>.txt
| | | |--- <phase 2>.txt
| | | | .
| | | | .
| | | |--- <phase p>.txt
| | |
| | |--- roles.txt
| |
|--- settings
|--- config.txt
Figure 3 Overview of the various catalogues and their files used to set-up a simulation
While a phase catalogue would look something like the example presented in
Figure 4
phases
|--- analysis.txt
|--- design.txt
|--- implementation and unit testing.txt
|--- integration testing.txt
|--- validation testing.txt
Figure 4 Example of a phases catalogue containing individual phase definition files
24
3.3.2.2 Phase definition
Each phase of a process is defined in a phase file named after that phase, which
enumerates the activities that need to be carried out, and the qualification/role of the
agent performing that activity. Note that an agent may play several roles.
Number Activity Required knowledge Participant(s) by role
level (%)
1 Software design 80 SE,TE
2 Test case design 85 TE
Table 4 A simplistic example of a phase definition file pertaining to the design phase
25
4 MULTI AGENT-BASED SIMULATION MODEL
4.1 Agents and their environment
Wooldridge [32] summarises what most AI readers know that there is probably
more controversy than agreement over what an agent actually is. He provides however
a tentative definition that we chose to adhere to as much as it suits our needs. “An
agent is a computer system that is situated in some environment, and that is capable of
autonomous action in this environment in order to meet its design objectives.” [32]. In
addition, Wooldridge [32] finds an agent-based solution to be appropriate when the
problem has one or more of the following characteristics:
- The Environment is open, highly dynamic, uncertain or complex.
- Agents provide for a natural metaphor in solving the problem.
- Data, control or expertise is distributed.
We find the above to characterise well the attributes of software process
development indicating further the appropriateness of MABS to SPSM.
As to the actual agent definition, our opinion is that from a practical perspective
the exact definition does not matter. From this perspective, agents or their use is not
and should not be an objective by itself; what matters is the advantage one can take out
of the agency paradigm, its “utility” value. In our case the autonomy of agents
provides us with the correct metaphor for representing “autonomous” developers. In
our simulations, a software developer is autonomous only to a certain extent; he or she
cannot for instance just refuse a task that management has decided to allocate him. He
will however refuse to work during his weekends and holidays. So our agent is
sufficiently autonomous, but not more, “to meet its design objectives.” [32].
4.1.1.1 Artefacts
Artefacts are the various requirements, specifications and code that are submitted
to the developer at the beginning of each phase for him to use as a platform to develop
the artefacts of the next phase.
4.1.1.2 Process
The process defines the set of input that the developer (agent) will use, at a given
phase, and what artefacts are expected as output of this phase.
4.1.1.3 Time
Time affects both the process and the developer. As to the process, termination
criterion for any phase can be defined in terms of time such as deadlines, whereas the
developer’s environment, artefacts and process state, change with time as a result of
the action of other agents too. Yet the main impact of time on the developer is in terms
of working hours. A developer is not required to work irregular hours (unless specified
by management) and neither is he or she expected to work on weekends and holidays.
26
4.1.2.1 Partially observable
The environment is partly observable for the developer because at any given time,
he or she is only aware of a subset of the activities to carry on, namely those he or she
has been allocated. This image of the “world” is incomplete in that the developer
cannot say whether or not the phase is completed as he or she has little insight on the
contribution of the other agents.
4.1.2.2 Stochastic
The environment may appear to be stochastic because it is only partially
observable [28], however it is also stochastic because from an agent’s perspective the
next state does not solely depend on the actions taken by that particular agent on the
current state. There are other agents acting on the environment concurrently.
4.1.2.3 Episodic
The environment is episodic because the agent’s choice of an action is uniquely
dependant on the current state of the environment, irrespective of the actions of other
agents. The decision is mostly based on whether the date and time correspond to a
working day and hour and on whether the developer has anything to do in which case
he will carry on the remaining activity or request a new set from the project manager
instead.
4.1.2.4 Dynamic
The environment is dynamic because it changes with time while the agent is
performing some activity or choosing the next action (deliberating), other agents may
concurrently alter the state of the environment. In other words, the output artefact is
incremented with new contributions from some agents while others are still
deliberating.
4.1.3 Autonomy
Our agent is autonomous as far as his or her design objectives are met. For
example, the developer may refuse to work on weekends, but he or she may not refuse
to take on a task it has been assigned.
4.1.4 Intelligence
Intelligence or the lack thereof, is probably the most controversial aspect in the
debate around the agency paradigm. For the purpose of our work, Brooks’ [6] rejection
of symbolic AI is justified. In addition his subsumption architecture [5] inspired our
agents’ decision-making model, however this was later abandoned for a simpler
situation action rule suite. Although the difference is subtle it is worth explaining.
Strictly speaking Brooks’ subsumption architecture [5] divides the decision-making
process into a hierarchy of layers of competence. Higher priority layers can subsume
the roles of lower ones and even interfere with their data flows. In addition all layers
are assumed to be running concurrently. Although this is practical for the purpose of
building robots or physical agents, it is too sophisticated for our case. Instead we
implement a simple hierarchy of “if” statements, testing conditions about the
environment to make high level decisions and delegating lower level decisions to
lower level “if” statements (embedded within). Here ends the resemblance, as our “if”
statements need not and do not run concurrently. Seen from this perspective we can
characterise our agents as simple reactive ones.
27
4.2 Implementation
4.2.1 Agents
Our multi agent system is implemented as java threads6 (the agents) interacting
with java objects representing artefacts, performance and knowledge models.
6
All of our work is implemented in Java based on SE 1.5.0_08
28
5 SYSTEM DYNAMICS SIMULATOR
System dynamics modelling is mainly a task of defining a system in terms of
levels (stocks) and rates (flows) and eventual feedbacks. Given the purpose of our
model, which is to estimate required effort and output quality, we found it most
appropriate to use the artefact as our main level, with performance and quality being
two independent rates.
Impact of
Task clartiy knowledge
on quality
Knowledge
characteristics
of all
Artefact participants Artefact
(phase p) Knowledge (phase p+1)
gain
Performance
rate
Individual
characteristics
of all
participants
29
determines the clarity of the tasks it implies, which in turn impacts on the performance
of the team. The initial performance is determined by the individual characteristics of
the developers. As the team performs, their knowledge of the task at hand increases
and so does the clarity of the tasks, for them, again increasing their performance. As
the knowledge of the team increases, so does the quality of their artefact p+1.
5.2.2 Levels7
In our SD model, artefact, knowledge and quality are three quantities that fluctuate
with time and so we chose to represent these as levels. Knowledge however is a level
that can only increase with time. Although inactivity could negatively impact on
knowledge HKM does not provide support for this and therefore it has been left out of
the model.
5.2.3 Flows8
There are two rates of fluctuation in our SD model that we represent as flows:
knowledge gain determined by our HKM using the knowledge characteristics of the
team and the size of the performed task at each increment; and performance which is
determined by our EPM model based on individual characteristics and task clarity.
5.2.5 Difficulties
A first problem when designing the model was to account for the individual
developers. Although much can be done at implementation, we did not find an obvious
way to account for individual developers and their individual knowledge and
performance characteristics. The actual problem resides in the static character of the
model. Since knowledge and performance are inherently individual we would like
these to be modelled as part of each participant. However, although it is possible to
model as many participants as we want, it is not possible to “instantiate” them out of a
single model, which means that participants are “hard coded” into the main SD model
and therefore neither their number nor their characteristics may change from one
simulation to another –without changing the SD model itself.
In a sense, SD can be seen to take a structural/procedural approach to modelling.
Although SD views system behaviours to be dynamic, the structure of the system itself
is made static and cannot be expected to change dynamically. We think this is the
primary reason SD is more adapted to activity-based views than individual ones.
On this particular point, comparing SD to MABS ressembles comparing a
procedural programming language with an object-oriented one. Although it is possible,
in principle, to coerce the procedural language into object-orientation, at least
somewhat, its underlying ideas belong to another paradigm.
Another problem was in using averages to represent the various characteristics of
the developers. The only practical averages we could provide were those constituting
IK and IC. However average IK and IC values do not result in the average
performance of those persons in question. An alternative that is likely to solve this
problem, is to instantiate all the required developers with their respective IK and IC
values, query our EPM model for performance and HKM for knowledge levels of each
developer, derive the average of these, pass them over to SD, update the abilities of
each developer, query … average out … pass over… update each developer. This is
possible was it not for one problem… the paradigm! By relying on a multitude of
7
In some references these are termed Stocks
8
Also known as Rates
30
developers for which we quire individual characteristics then update each developer
individually, then we are actually running a MABS simulation and not SD.
5.3 Implementation
To provide an objective comparison ground, ensure an exact similar use of the
models, and the various necessary utilities such as calendars and clock functions we
implemented the system dynamics model as a single “average” developer, running on
our simulator framework, who’s individual characteristics represent an average of all
participants within a phase and who’s performance is proportional to the number of
developers considered for the simulation.
These characteristics being averages are no longer individual, instead they provide
the variables and constants that our SD model needs (directly or derived).
A reason why this platform “reuse”, provided by our simulator framework, is
possible, is that although it could be recommended, there need not be a one to one
mapping between a model and its implementation if there is another possible
implementation that remains true to the model. What is important in our case is that
the single average developer implementation preserves all the characteristics of our SD
model. Indeed this is true because in our simulation platform artefacts cumulate
contributions from the developer(s), which are quantified and qualified. And as
contributions are added, knowledge gains of the developer(s) are updated in separate
levels as defined in our SD model. These results in an integral over contributions,
which is what our SD levels mathematically represent.
31
6 VERIFICATION AND VALIDATION
Verification is the process of ensuring that the problem is correctly solved, while
validation is the process of ensuring that the right problem is being solved. In our case
the former would amount to controlling the correctness of the implementation, while
the later concerns the correctness of our model and how “true” it is to the reality it
attempts to abstract.
6.1 Verification
A number of steps were taken to ensure the correctness of the code. Such activities
do not lend them selves well to documentation so we can only mention those we used.
Among these there were: trace analysis, input output testing, code debugging,
calculation verification as mentioned in [33]. In a complex system, such verification
techniques cannot be exhaustive, and therefore, despite all of these precautions, the
corrections they involved and the errors they uncovered, it is not possible to guarantee
the correctness of the implementation. At best, we have only minimised the number of
defects in the code and the risk of errors occurring because of these.
6.2 Validation
Establishing the validity of the model, however, is probably the most difficult
aspect of simulation modelling, and in all likelihood full validity cannot be established.
As in the case of verification, the only validation methods available can only help us
improve our confidence in the model (by reducing the risk of error).
Xian et al. [33] describe a number of model validation techniques such as: face
validity, tracing, internal validity, historical data, sensitivity analysis and predictive
validation. Another technique, they mention, model-to-model comparison (“also
known as back-to back testing or docking”) [33] is quite practical when another
“validated” model (or implementation) of the same abstracted reality exists. In this
case quite large automated testing scenarios can be run to compare the output of both
based on the same input.
However, not all of these methods can be applied at all time. For example it is not
always possible to get hold of historical data, for practical, confidentiality, or other
reasons and it is not always so that there exists an equivalent, yet established model, to
compare with. We present therefore, the methods we used to improve our confidence
in the model.
9
For a more detailed discussion see A.1 & A.2 in Appendix A
32
and adjusted our implementation until no significant variance, between the runs, could
be observed.
6.2.3 Tracing
According to [33], tracing is a technique similar to animation during which the
behaviour of the individual entities and variables of the model are monitored closely
and followed to ensure the correctness of the logic. We used the two for this very
purpose. Tracing and animation, however, are dynamic activities in nature it is
therefore difficult to document their unfolding in this “static” document.
10
For a more detailed discussion see A.3 in Appendix A
33
7 COMPARING MABS TO SD
Once the simulation platform was in place and its preliminary validity was
established, we wanted to study the differences, if any, between MABS and SD.
34
7.1.2 Analysis
7.1.2.1 Graphical analysis
Figure 6 The progress of 1000 different MABS (in red) and SD (in blue) simulation runs
as a function of duration.
Figure 6 illustrate the output of the simulators in terms of duration, after 1000
MABS and SD runs. The Y-axis represents the effort completed or size of artefact (in
hours), while the X-axis represents the time spent (in hours). In this figure, red curves
represent MABS simulations, while the blue ones represent SD simulations. It is worth
mentioning that for each random scope value, the SD simulation proceeds first then
does MABS. Therefore, when a MABS point is plotted on an already existing SD
point, that point is likely to turn red, which explains the predominantly red colour of
most points and curves in the figure.
Although there are blue and red curves on both sides of a virtually ascending
diagonal, one can see how a blue trend seems to dominate the upper left side, while a
red one dominates its lower right side. This seems to suggest that SD projects shorter
durations than does MABS. The following statistical analysis will help us evaluate the
significance of this observation.
35
MABS SD Analysis
Variable M s M S z-value p<=1%
Duration (Hours) 772.24 343.41 731.41 325.91 2.73 True
Performance (Effort/Hour,%) 72.98 8.66 77.04 6.26 -12.01 True
Cost (K-SEK) 519.20 240.99 478.08 217.54 4.01 True
Quality (%) 59.82 5.35 61.49 6.82 -6.09 True
Table 10 Result of the statistical analysis of 1000 simulation pairs of MABS and SD runs
with varying project scopes drawn at random in the range 100 to 1000 hours
7.1.2.3 Duration
With regards to duration, MABS presents a mean M =772.24 hours for this five
developer-strong project which is greater than SD’s M = 731.41 hours. This suggests
that either MABS overestimates or SD underestimates the duration of the project.
A good explanation for this is that a project, with a quite small team, terminates
only once the slowest developer is done. This is quite true in real-life too.
Given MABS’s individual-based view, it easily reproduces this phenomenon in its
projection, while SD is unable to account for it. The reason being that for SD, there is
no such thing as the slowest developer, or the fastest for that matter. All developers are
averaged out to become equally productive. So the slowest is as productive as the
average that in turn is as productive as the fastest developer. Therefore, we are inclined
to believe that SD underestimates the true duration.
7.1.2.4 Performance
For performance however, the opposite happens, i.e. it suggests that either MABS
underestimates performance (at M=72.98 for the cumulated effort of the five
developers) or SD overestimates that team’s performance (at M = 77.04). This is
consistent with the previous explanation, as performance is inversely proportional to
duration (i.e. the higher the performance, the lower the duration).
7.1.2.5 Cost
MABS presents a mean cost MMABS greater than MSD. Again we believe that
it is SD that underestimates this number and not MABS that overestimates it, as
the former cannot account for the extra delay induced by the individual
characteristics of the slowest developer while the later can. This explains that
MABS presents us with a significantly higher cost than SD.
7.1.2.6 Quality
The last output variable is quality. As we explain in our AQM model, we consider
quality of the output artefact to be based on the knowledge level of the various
contributors at the moment they delivered their contribution. This means that earlier
contributions sink the quality of the artefact while the later ones raise this value,
mainly due to the knowledge gain achieved during the process. MABS takes an
individual approach in calculating these gains, as each developer improves
independently of the others while SD computes an average gain for the entire team.
From Table 10 we see that MABS predicts a lower quality than SD. Note that this
outcome is independent of the three prior ones. However, given that MABS is using a
more realistic approach in calculating the knowledge gain of each developer separately
while SD is only approximating this value, we are more inclined in relying on the
MABS result for this variable.
36
7.2 Comparing modelling issues
7.2.1 Model elicitation
Typically in an SPSM context, one first starts by eliciting a model of the software
process to abstract. This task can be quite tedious, as it requires unveiling both the
apparent structure of the “reality” but also its lesser “intuitive” and interdependent
feedback loops.
When eliciting a model that will later on be used for MABS, there are many
possible approaches that one can choose from. Quite formal methodologies such as
MAS-CommonKADS can be applied, as in Henesey et al. [15], or when appropriate
less formal ones can be used too. However, this freedom of approach can be perceived
as a lack of methodology.
In the case of SD, however, the modeller is not as free, as SD is quite strongly
built around the concepts of levels and flows to the point, as we experienced it, one
starts to look mainly for the flows and levels exhibited by the system, maybe at the
expense of other crucial aspects of the model. Although a “free” model prepared for
MABS usage and an SD one may capture the same reality, it is felt that in SD model
elicitation and notation are so intertwined that the modeller barely discriminates
between them.
We are encouraged in this opinion, by examining Abdel-Hamid [1]’s model
development chapter. Here he explains how he first started out his modelling effort by
carrying out a series of interviews that lead to an initial SD model.
The information collected in this phase, complimented with our own software
development experience, were the basis for formulating a "skeleton" system dynamics
model of software project management. [1]
It is interesting to note that he mentions a system dynamic model of software
project management and not just a model of software project management. A system
dynamic model in our opinion is not a declarative one, i.e. it does not just state
(“declare”) relational facts (the what); it goes much further in expressing the
proportions and equations governing these relations (the how). Therefore we feel that
SD abstracts some modelling phase or activities. In other words: SD goes “too fast”
from domain problem formulation to “seeing” levels and flows all over the place.
37
8 DISCUSSION
8.1 Results
8.1.1 Modelling the individual-based view
Based on our literature review in section 2, Related Work, we identified, analysed
and integrated an individual model of performance (EPM), an individual cognitive
model (HKM) and an artefact quality model (AQM), that we derived; resulting in an
integrative model that made it possible to design a simulation framework to compare
MABS and SD on equal basis.
After verification and validation, which provided us with relative confidence in
our integrated model, we can say that we now have an individual-based model that
accounts for what we believe to be the most important individual factors for a software
developer, namely effort/performance abilities, experience (knowledge gain) and their
resulting quality of the developers contributions.
38
existence of feedback, MABS reproduces the feedback structure of a system, even
though the feedback need not explicitly be present in its model.
For SD, a modernisation, in our opinion, requires little less than an update to its
notation to allow for a dynamic “class diagram” instead of just a static “object
diagram” as is the case currently. However even though notation is just a technicality
to be resolved, we expect it to be quite difficult to manage “politically” within a well-
established research community such as that of SD.
8.2 Shortcomings
8.2.1 The EPM model and its Locus of Control scale11
Our work heavily relies on Rasch and Tosi’s [25] empirical effort performance
model, which in turn integrates a number of theoretical models. Besides being
relatively old, the model relies on theoretical instruments that have been challenged in
a number of publications. Rasch and Tosi [25] measure Locus of Control (LoC) using
Rotter’s 15-item Internal-External (I-E) scale [26]. Although Rotter’s 1966 publication
[26] is considered a cornerstone on the matter of LoC, the scale he developed has been
criticised since [30], [18], [9] mainly for being mono-dimensional and therefore
excluding important nuances. Rotter did however reply to some of his critics in a
journal publication [27]. Yet another critical issue is the susceptibility of the scale’s
questionnaire to social desirability bias, [9], [17]. The later problem is in fact quite
apparent from just reading the questions, which significantly reduces the reliability of
the collected responses.
11
See B.1 in Appendix B for the Locus of Control questionnaire
39
would reflect the “experience” of the developer with the task and provide a
dynamic update of the knowledge levels.
40
9 CONCLUSIONS
Based on our background review of the literature we concluded that there were
grounds to claim that Multi Agent-Based Simulation was an appropriate approach to
the Software Process Simulation Modelling field, probably even better suited than
System Dynamics, a well established methodology in this field. However, and as we
indicated earlier, we found no evidence for these conclusions in prior researches.
The purpose of our thesis was to establish these evidences, of the appropriateness
of MABS to the SPSM field, and provide first indication of how MABS is more
appropriate than SD for certain SPSM applications.
9.1.2 Contributions
The main contribution of our thesis is to having provided evidence of (i) MABS is
feasible for SPSM and (ii) MABS is appropriate for SPSM in that it lends itself quite
neatly to the metaphors of the individual-based view of SPSM.
The next contribution is having compared MABS to SD and uncovered how the
former tends to be risk averse when compared to the later. Our experiment shows that
SD tends to underestimate duration and cost while it overestimates both performance
and quality, when compared to MABS.
From a modelling perspective we showed how MABS is more model elicitation
friendly while SD heavily influences the modeller by its concepts and notation. On the
other hand SD requires less data collection effort for the initialisation of its model
variables, which puts it at an advantage over MABS that requires individual-based data
collection effort.
41
9.2 Future works
9.2.1 Improvements
A first indication for future work could be found in the shortcomings discussed in
8.2. A major improvement would be to define how requirement specification could
give an indication of the estimated effort, without the user needing to do so. It could be
that the entire model need review to eliminate the need for time estimates all together,
but there is the risk that the simulator can no longer provide durations expressed in a
time scale.
9.2.2 Experimentation
A possible future application would be to complete the simulator so to see if it can
reproduce well-established patterns of software engineering projects. This would
improve the validity of the model as well as its experimentation features.
Another experimentation possibility would be to reproduce Abdel-Hamid’s [1]
case studies and experimentation scenarios, simulated using SD, this time using our
MABS simulator to further investigate the differences, similitude, advantages and
disadvantages of both.
9.2.3 Application
Carrying a number of case studies would give a better indication of the usefulness
and shortcomings of our simulation environment. These studies would have to among
other things, collect individual related data and probably calibrate the simulator when
studying its output with regards to either historical data or an ongoing effort that could
be simulated.
42
REFERENCES
[1] Abdel-Hamid T.: The Dynamics of Software Development Project Management: An
Integrative System Dynamics Perspective. PhD diss., MIT, 1984.
[2] Abdel-Hamid T.: The Dynamics of Software Project Staffing: A System Dynamics Based
Simulation Approach, IEEE Transactions on Software Engineering 15(2), pp109-120,
1989.
[3] Abdel-Hamid, T. and S. Madnick: Software Project Dynamics. Englewood Cliffs, NJ,
Prentice Hall, 1991.
[5] Brooks, R. A.: A Robust Layered Control System For A Mobile Robot. IEEE Journal of
Robotics and Automation, pp 14–23, 1986.
[6] Brooks, R. A.: Intelligence without reason. In Proceedings of the 12th International Joint
Conference on Artificial Intelligence (IJCAI-91), Sydney, Australia, pp. 569-595, 1991.
[7] Burke S.: Radical Improvements Require Radical Actions: Simulating a High Maturity
Software Organization. Technical Report, CMU/SEI-96-TR-024 ESC-TR-96-024,
Carnegie Mellon University, Pittsburgh, Pennsylvania US 1997.
[8] Christie A.M. and Staley J.M.: Organizational and Social Simulation of a Software
Requirements Development Process. Proceedings of the Software Process Simulation
Modeling Workshop (ProSim 99), Silver Falls, Oregon, 1999.
[9] Duttweiler, P.C.: The Internal Control Index: A Newly Developed Measure of Locus of
Control. Educational and Psychological Measurement, 44, pp 209-221, 1984.
[10] Forrester J.: System Dynamics and the Lessons of 35 Years. In K. B. D. Greene, editor,
Systems-Based Approach to Policymaking. Kluwer Academic Publishers, 1993.
[12] Hanakawa N., Matsumoto K. and Torii K.: A Knowledge-Based Software Process
Simulation Model. Annals of Software Engineering 14, pp383–406, 2002.
[13] Hanakawa, N., Matsumoto K. and Torii K.: Application of Learning Curve Based
Simulation Model for Software Development to Industry. In Proceedings of the 11th
International Conference on Software Engineering and Knowledge, Kaiserslautern,
Germany, World Scientific Publishing, pp. 283–289, 1999.
[14] Hanakawa, N., Morisaki S., and Matsumoto K.: A Learning Curve Based Simulation
Model for Software Development. In Proceedings of the 20th International Conference
on Software Engineering, Kyoto, Japan, IEEE Computer Society Press, pp. 350–359.
[15] Henesey L., Notteboom T., and Davidsson P.: Agent-based simulation of stakeholders
relations: An approach to sustainable port and terminal management. In Proceedings of
the International Association of Maritime Economists Annual Conference, Busan,
KOREA, 2003.
43
[16] Kellner, M.I. Madachy, R.J. and Raffo, D.M.: Software process simulation modeling:
Why? What? How? Journal of Systems and Software 46(2-3), pp91–105, 1999.
[17] Kestenbaum J.M.: Social Desirability Scale Values of Locus of Control Scale Items.
Journal of Personality assessment, 40(3), pp 306-309, 1976.
[19] Low, G.C.; Jeffery, D.R.: Function points in the estimation and evaluation of the software
process. IEEE Transactions on Software Engineering 16(1), pp 64–71, 1990.
[20] Madachy, R.: Process Modeling with Systems Dynamics. 1996 SEPG Conference,
Atlantic City, NJ, Software Engineering Institute, Carnegie Mellon University, 1996.
[21] Matson, J.E.; Barrett, B.E.; Mellichamp, J.M.: Software development cost estimation
using function points. Transactions on Software Engineering 20(4), pp 275–287, 1994.
[22] Matson, J.E.; Mellichamp, J.M.: An Object Oriented tool for Function Point Analysis.
Expert Syst. 10, pp 3–14, 1993.
[23] Myers, G.: Software Reliability: Principles and Practices. John Wiley & Sons, Inc., New
York, 1976.
[24] Parunak V.D., Savit R., and Riolo R.: Agent-Based Modeling vs. Equation-Based
Modeling: A Case Study and Users Guide. Multi-Agent Systems and Agent-Based
Simulation, LNAI, Vol. 1534, Springer Verlag, Berlin Germany, 1998.
[25] Rasch R. H. and Tosi H.: Factors affecting software developers’ performance: An
integrated approach, MIS quarterly 16(3), pp 395, 1992.
[27] Rotter, J. B: Some problems and misconceptions related to the construct of internal
versus external control of reinforcement. Journal of Consulting and Clinical Psychology,
43, pp 56-67, 1975.
[28] Russel S. J., Norvig P.: Artificial Intelligence, A Modern Approach, second edition,
Pearson Education, Inc., Upper Saddle River, New Jersey, 2003.
[29] Smith N., Capiluppi A. and Fernández-Ramil J.: Agent-Based Simulation of Open Source
Evolution. Software Process: Improvement and Practice 11(4), pp423-434, 2006.
[30] Weiner, B.: Achievement Motivation and Attribution Theory. General Learning Press,
New Jersey, 1974.
[31] Wickenberg T. and Davidsson P.: On Multi Agent Based Simulation of Software
Development Process, Multi Agent Based Simulation II, LNAI, Vol. 2581, pp171-180,
Springer, 2003.
[32] Wooldridge M.: MultiAgent Systems. John Wiley & Sons Chichester, England, 2002.
44
[33] Xiang, X., Kennedy, R., and Madey, G.: Verification and Validation of Agent-based
Scientific Simulation Models. In Proceedings of the 2005 Agent-Directed Simulation
Symposium (ADS'05), San Diego, CA, pp 47-55, 2005.
[34] Yilmaz L. and Phillips J.: The Impact of Turbulence on the Effectiveness and Efficiency
of Software Development Teams in Small Organizations. Software Process:
Improvement and Practice 12(3), pp 247-265, 2007.
45
Appendix A VALIDATION OF SIMULATION
FRAMEWORK
The properties tested here are specific to the model of the simulation framework
not to MABS or SD that produce quite similar results, on these tests, which ever
simulator is used, except as explained in the discussion section. For this reason, and for
reasons of space, we document in this appendix only the validation steps conducted
using MABS.
A.1 Preliminary face validity testing of time dimension
To evaluate the face validity of our simulator from a time perspective we run a
number of simple tests for which the outcomes are easily predictable or deducible
without the simulator so that we can control the simulator frameworks reliability (at
least on these “easy” cases).
Please note that in the graphs presented in this section A.1, the X-axis represents
time spent working on the task while the Y-axis represents the size of the artefact
produced.
Please also note that the project (a single phase) starts on 2007-11-20 at 08:00,
which is a Tuesday.
A.1.1 Single high performing developer working round-the-clock
In Figure 7 a single developer performs an activity defined to require 100 hours of
effort. The developer’s performance was set to 100%, and as expected the developer
presented a linear progress curve that terminated with an x and y value of 100.
1
Figure 8 A single developer working round-the-clock at 100% efficiency except on
weekends (48 hours delay) completes a task of 100 hours in 148 hours.
Figure 9 A single developer working regular hours only on weekdays at 100% efficiency
completes a task of 100 hours in 361 hours.
This result is consistent with reality. We can demonstrate it in the following way.
We know that a single business day, with no lunch break, at 100% productivity would
result in an effort of nine hours, over a period of 24 hours and that a five-day week
period would therefore result in 45 hours of effort, over a period of 168 hours. Yet we
must keep in mind that our project starts on a Tuesday, therefore the very first week
will only produce 36 hours of effort over a duration of 144 hours.
Let wx denote week x. Hence, for our single developer to produce an effort of 100
hours, he or she can only progress as follows: w1 = 36 h. effort over 144 h. duration;
w2 = 45 h. effort over 168 h. duration and finally w3 = 9*2+1=19 h. effort over
24*2+1 = 49 h. in duration. i.e. 36+45+19 = 100 h. effort requires a duration of:
144+168+49 = 361 h.
2
12 work days (12x8 = 96), 12 after work intervals (12x15 = 180), 2 weekends (2x48 =
96) + 1 half day (4 hours) as well as 12 lunch breaks (12 hrs).
This too is consistent with real life and can be demonstrated as earlier, except that
a single day includes now only eight productive hours, a week therefore only 40 and
the very first week that starts on Tuesday only includes 32 productive hours.
The progress this time is w1= 32 h. by 144 h; w2= 40 h. by 168 h.; w3 = 3*8+4 =
28 by 24*3+4=76. i.e 32+40+28 = 100 h. effort requires a duration of: 144+168+76 =
388 h.
One would at first expect the difference between this scenario and the previous one
to be 12 extra (lunch) hours i.e. this scenario should normally complete at 360 + 12 =
372, leaving us with 15 non-expected hours. These are due to the fact that the
developer needs to go home for the day and come back to complete the last four hours
on Thursday, 6th of December 2007.
Figure 10 A single developer working regular hours on regular weekdays with lunch
breaks between 12:00 to 13:00, performing at 100% takes 388 hours to complete
a 100-hour task.
A.1.5 Doubling the human resources
In Figure 11, we introduced a second “high performing” developer with the exact
same characteristics as the first and observed how the project progressed. This time the
project took 194 hours to complete which is exactly half of that required by a single
developer (388 hours)
Figure 11 Two identical developers collaborating on the same 100-hour task. They
terminate after 194 hours, which is exactly half the time it takes a single
developer to perform that task.
3
A.2 Preliminary face validity testing of performance
In the previous tests, performance was set to 100%. In the following tests we
integrate the EPM model and see how it affects progress in the most intuitive ways,
again to be able to observe if the simulator predicts these “obvious” scenarios
correctly. In the following tests individual characteristics (IC) represent: Achievement-
needs (AN), self-esteem (SE) and Locus of Control (LC). An IC will be noted as IC =
{AN, SE, LC} or just {AN, SE, LC}.
A.2.1 An “ideal” developer
We start by setting a developer’s individual attributes all to their maximum value
i.e. {1.0, 1.0, 1.0}. For now we “deactivate” the knowledge model, buy setting the
developers knowledge level of the current task to higher than that required. This means
that there is no knowledge to gain resulting in a constant level of knowledge and hence
performance. Figure 12 shows how the above values result in a performance near to
95.6%. With such a performance level, 100 hours should normally take 100/0.956 =
104.6 hours. However, our calendar uses only full hour increments and hence the 105
hours displayed.
Figure 12 Single developer with an “ideal” IC = {1.0, 1.0, 1.0} and knowledge level greater
than required knowledge level.
Another interesting point with this simulation is that it shows that according to the
EPM model a developer can expect to be productive –at best– “only” 96% of the time.
One explanation is that according to the EPM model, Task difficulty is negatively
correlated to performance yet positively correlated to effort, which in turn is positively
correlated to performance. Using our interpretation of task difficulty as being the
difference between current knowledge ability and the required level, it is possible to
face tasks of 0 difficulty which improves performance, but reduces Effort which in
turn reduces the Performance result. So 100% performance is unachievable using
EPM. Although this might be seen as a limitation of the model, it is quite realistic in a
real life environment.
4
A.2.2 Two equally “ideal” developers
The next step was to test a multi-developer project and see the impact on the
results. Figure 13, shows that our simulator behaves predictably in that two developers
with highest individual attribute values, performing round the clock, finish nearly
exactly within half the time it took the single developer. In Figure 12, the lonely
developer required 105 hours, actually 104.6, to complete a task worth 100 hours. Our
two developers required 52.3 hours, however the simulator clock ticks full hour
increments, because it was not designed for minute precision, hence the 53 hours result
displayed.
Figure 13 Two developers with IC = {1.0, 1.0, 1.0} and knowledge level greater than
required knowledge level, complete a task worth 100 hours in 53 hours (actually
52,3).
A.2.3 Two quite “normal” developers with different performance levels
In this test we set the individual attributes of the EPM model to less extreme
values. Developer 1 (id 1) = {0.6, 0.7, 0.2} and Developer 2 (id 2) = {0.6, 0.7, 0.7}.
Figure 14, shows how the performance of developer 1 is 0.75 while developer 2,
who has a more internal locus of control, has a 0.79 performance. What is interesting
here is to see that the simulator stops after 66.6 hours (67 as shown in the figure). As
expected, this corresponds to the time it takes the least performing developer, i.e.
developer 1, to complete 50% of the total effort (50hrs/75% = 66.6 hrs).
5
Figure 14 Two developers. D1 = {0.6, 0.7, 0.2} and D2 = {0.6, 0.7, 0.7} both with a
knowledge level greater than required, complete a task worth 100 hours in 67
hours (actually 66.6).
6
therefore that performance will remain constant. Hanakawa et al. [13] project that such
a situation would take the developer 6.71 months (6.71 * 172 = 1154 hours).
Figure 15 shows the result of our simulator under similar conditions. Our
simulator projects a result of 1089 hours. The difference d = 65 hours or 5.7%.
Figure 15 Single developer with IC = {0.5, 0.6, 0.5} and KC = {100, 100, 30} corresponding
to case 1-1 of Hanakawa et al. [13]
7
knowledge gain. Indeed they use the total size of a task as a multiplication factor at
each increment while we use only the size of the effort performed since the last
increment to reflect how actual experience affects the gain to the developer. This
explains why their developer gains knowledge, despite the “drastic” values used in the
simulation, while ours remains by large as “ignorant” by the end of the project as he or
she started it out.
Figure 16 Single developer with IC = {0.7, 0.6, 0.5} and KC = {0, 100, 30} corresponding to
case 1-2 of Hanakawa et al. [13]
8
Hanakawa et al. [13]’s simulation, the developer is done after 7.68 months, which
represents 1321 hours a difference of barely 4 hours, or 0.3%.
Please refer to section 8.2.2. for a discussion over the uncertainties about the HKM
model and its time scales.
Figure 17 Single developer with IC = {0.7, 0.6, 0.5} and KC = {70, 300, 10} corresponding to
case 1-3 of Hanakawa et al. [13]
9
Appendix B QUESTIONNAIRES
In this appendix we present the various questionnaires required to collect the
individual characteristics needed for our EPM model, as used in [25].
1 a. Children get into trouble because their parents punish them too much.
b. The trouble with most children nowadays is that their parents are too easy with them.
2 a. Many of the unhappy things in people's lives are partly due to bad luck.
b. People's misfortunes result from the mistakes they make.
3 a. One of the major reasons why we have wars is because people don't take enough
interest in politics.
b. There will always be wars, no matter how hard people try to prevent them.
4 a. In the long run people get the respect they deserve in this world.
b. Unfortunately, an individual's worth often passes unrecognized no matter how hard
he tries.
7 a. No matter how hard you try some people just don't like you.
b. People who can't get others to like them don't understand how to get along with
others.
10 a. In the case of the well prepared student there is rarely if ever such a thing as an unfair
test.
b. Many times exam questions tend to be so unrelated to course work that studying in
really useless.
1
11 a. Becoming a success is a matter of hard work, luck has little or nothing to do with it.
b. Getting a good job depends mainly on being in the right place at the right time.
13 a. When I make plans, I am almost certain that I can make them work.
b. It is not always wise to plan too far ahead because many things turn out to be a matter
of good or bad fortune anyhow.
16 a. Who gets to be the boss often depends on who was lucky enough to be in the right
place first.
b. Getting people to do the right thing depends upon ability, luck has little or nothing to
do with it.
17 a. As far as world affairs are concerned, most of us are the victims of forces we can
neither understand, nor control.
b. By taking an active part in political and social affairs the people can control world
events.
18 a. Most people don't realize the extent to which their lives are controlled by accidental
happenings.
b. There really is no such thing as "luck."
21 a. In the long run the bad things that happen to us are balanced by the good ones.
b. Most misfortunes are the result of lack of ability, ignorance, laziness, or all three.
23 a. Sometimes I can't understand how teachers arrive at the grades they give.
b. There is a direct connection between how hard 1 study and the grades I get.
24 a. A good leader expects people to decide for themselves what they should do.
b. A good leader makes it clear to everybody what their jobs are.
25 a. Many times I feel that I have little influence over the things that happen to me.
b. It is impossible for me to believe that chance or luck plays an important role in my
life.
2
b. There's not much use in trying too hard to please people, if they like you, they like
you.
29 a. Most of the time I can't understand why politicians behave the way they do.
b. In the long run the people are responsible for bad government on a national as well as
on a local level.
12
Coopersmith S.: The Antecedents of Self-Esteem, Freeman, San Francisco, CA, 1967.
3
B.3 Achievement needs questionnaire
Manifest Needs Questionnaire (MNQ)13 (*Only achievement needs items are included here).
Reply by: always, almost always, usually, sometimes, seldom, almost never, never. (seven-
point Likert scales) the following five questions.
01. I do my best work when my job assignments are fairly difficult.
02. I try very hard to improve on my past performance at work.
03. I take moderate risks and stick my neck out to get ahead at work.
04 I try to avoid any added responsibilities on my job (inversed scale!).
05 I try to perform better than my co-workers.
13
Steers R. M., Braunstein D. N.: A Behaviorally-Based Measure of Manifest Needs in Work settings.
Journal of Vocational Behaviour 9, pp 251 – 266, 1976.