Professional Documents
Culture Documents
Department of Computing
Imperial College
180 Queen's Gate
London SW7 2BZ
tel. +44 (0) 20 7594 8216
fax. +44 (0) 20 7594 8215
ramil@doc.ic.ac.uk
http://www.doc.ic.ac.uk/~ramil
15 May 2001 (c) All rights reserved. Juan F. Ramil
-1-
89c.lect2[charts]
Objectives
-2-
89c.lect2[charts]
Study of OS/360 and other systems during late 60s and early 70s led to
- dynamic models of program growth such as:
Belady and Lehman 1972,75; Riordan 1977 and Woodside 1979
Such models replicated observed growth trends over time and releases
- suggested management guidelines
In late 80s and early 90s that dynamic modelling of software processes gains wider interest
but with focus on ab initio development
- triggered, at least in part, by Abdel-Hamids book on Software Project Dynamics
Not wide interest in dynamic modelling of long-term evolution, with a few exceptions
This contrasts with the fact that evolution - not ab initio development - consumes largest
portion of effort in software organisations
-3-
89c.lect2[charts]
Exogenous
Change
Application Domain
Predictive
Views
Operational
Program
Evolving
Understanding
and Structure
Program
Theories, Models,
Procedures, Laws
of Application and
System Domains
Computational
Procedures
and
Algorithms
Program
Definition
Requirements
Analysis
-4-
89c.lect2[charts]
Anti-regressive activity - undertaken to control complexity and its growth and in principle
not altering properties of software as experience by users
-5-
89c.lect2[charts]
Some assumptions:
Total_effort (e.g. person-hours per month) = Progressive_effort + Anti_Regressive_effort
Anti-Regressive Effort = Total Effort * Anti_Regressive_Work_Fraction
0 <= Anti_Regressive_Work_Fraction <= 1.0
-6-
89c.lect2[charts]
Base Model
Work Waiting
Exogenous work requests
Implementation
Work
Implemented
-7-
89c.lect2[charts]
First Refinement
Work Waiting
Exogenous work requests
Implementation
USER CHANGE
REACTION
MULTIPLIER
<TIME
STEP>
Cumulative
Work
Released
Release
RELEASE TIMING
-8-
89c.lect2[charts]
Communication Losses
In a group of size n, number of communication channels is n(n-1)/2
Assuming that the loss per communication link is constant impact on software development rate of team
can be modelled, for example, by function that decreases as the size of the team increases:
Communication Losses in percent = {1-[k(n-1)n]/100}
~ [1- (k n2/100)]
where n is the team size (number of people in the team) and k is a suitable constant, obtained from
empirical data
Abdel-Hamid and Madnick, for example, have suggested that for a team of 30 people,
50 percent of the effort is subsumed by communication activity and hence unavailable for
software development - this observations leads to k = 0.06
15 May 2001 (c) All rights reserved. Juan F. Ramil
-9-
89c.lect2[charts]
- 10 -
89c.lect2[charts]
10
20
30
Team Size
40
20
Team Size
40
Productivity of an Individual
Team Member
Combined Effect
Potential Productivity
Productivity of an Individual Team
Member
Communication Losses
10
20
Team Size
30
40
Behaviour is qualitatively as expected - quantitative detail will certainly vary from project to
project and organisation to organisation
Of course, one will need to be calibrate behaviour to real data - for the moment, an starting
point
- 11 -
89c.lect2[charts]
Third Refinement
Work Waiting
Implementation
Work
Implemented
USER CHANGE
REACTION
DELAY
Productivity
Progressive effort
<TIME
STEP>
Cumulative
Work
Released
TEAM SIZE
NOMINAL
PRODUCTIVITY
Release
RELEASE TIMING
Productivity =
- 12 -
89c.lect2[charts]
Look Up Table
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
1000
2000
3000
Of course, one would need to be calibrated to real data - for the moment, an starting point
15 May 2001 (c) All rights reserved. Juan F. Ramil
- 13 -
89c.lect2[charts]
Fourth Refinement
Work Waiting
Exogenous work requests
Cumulative Work
Implemented
Implementation
USER CHANGE
REACTION
MULTIPLIER
TEAM SIZE
Work
Implemented
USER CHANGE
REACTION
DELAY
NOMINAL
PRODUCTIVITY
Release
ANTI REGRESSIVE
WORK FRACTION
RELEASE TIMING
Productivity Loss =
f(Anti Regressive
Deficit)
Productivity Loss
<TIME
STEP>
Cumulative
Work
Released
Productivity
Progressive effort
Cumulative Anti
regressive Activity
- 14 -
89c.lect2[charts]
- 15 -
89c.lect2[charts]
4,500
3,000
1,500
0
0
20
40
60
80
100
120
Time (Month)
140
160
180
200
Simulation results support the convenience of an appropriate level of antiregressive activity in a software process
Next step, model refinement to reflect higher level of process detail
15 May 2001 (c) All rights reserved. Juan F. Ramil
- 16 -
89c.lect2[charts]
PREPARATION
PRODUCTIVITY FACTOR
PREPARATION EFFORT
MULTIPLIER
Acceptance Flow
Work
Accepted
Preparation
flow
Submision Flow
IN PROGRESS
TARGET
Work Identified
Preparation effort
In Progress
Other additions and
changes identified
Demand obsolescense
Progressive effort
NORMAL
PRODUCTIVITY
Productivity
Implementation
flow
SYSTEM TYPE
MULTIPLIER
Requirement
Change flow
TEAM SIZE
VALIDATION AND
INTEGRATION
EFFORT
MULTIPLIER
Cumulative
Fielded
Functionality
RELEASE
POLICY
F
PROGRESSIVE
FRACTION
INTEGRATION
PRODUCTIVITY
FACTOR
TIME STEP
<Time>
Fielded Functionality
Satisfying Current
Needs
Software
release
Work Ready
to Release
Work Implemented
Integration flow
- 17 -
89c.lect2[charts]
Further refinement
ACCEPTED
TARGET
PREPARATION
PRODUCTIVITY FACTOR
PREPARATION EFFORT
MULTIPLIER
Acceptance Flow
Submision Flow
Work
Accepted
Preparation
Flow
IN PROGRESS
TARGET
Work Identified
Preparation effort
In Progress
Additions and
Changes Identified
by Others
Cumulative
Progressive
Work
Demand obsolescense
Progressive effort
NORMAL
PRODUCTIVITY
F
PROGRESSIVE
FRACTION
Productivity
Implemented
SYSTEM TYPE
MULTIPLIER
Requirement
Change flow
TEAM SIZE
Cumulative Anti
Regressive Work
INTEGRATION
SUCCESS
FACTOR
Cumulative
Fielded
Functionality
Rejected as
needing
rework
RELEASE
POLICY
VALIDATION AND
INTEGRATION
EFFORT
MULTIPLIER
TIME STEP
<Time>
Fielded Functionality
Satisfying Current
Needs
Software
release
Work Ready
to Release
Work Implemented
Successfully
integrated
- 18 -
89c.lect2[charts]
Warning - Large differences in quantitative detail may be expected from process to process
Thus, a model must be calibrated to real data reflecting a particular software evolution
process before its use as policy assessment tool
Start data collection as soon as possible, making use of cheap, available records, first
- data collection is expensive and must be well justified
- modelling unprecedented situations and/or without reference modes is difficult
15 May 2001 (c) All rights reserved. Juan F. Ramil
- 19 -
89c.lect2[charts]
Process maturity
- higher maturity presumes higher degree of repeatability, improved performance
- 20 -
89c.lect2[charts]
According to Tom DeMarco - in a recent presentation at Imperial College - these are some
of the skills that a manager in a software organisation requires -note that most of them
are people skills, such as
- hiring
- thanksgiving
- praising
- conflict resolution
- team work - in particular, works as a team with other managers
- product and process management - e.g. simulation techniques
- 21 -
89c.lect2[charts]