Slides - Crest
Download
Report
Transcript Slides - Crest
Search-Based Software Project
Staffing: Challenges, Solutions,
Promises, and Limitations
Massimiliano Di Penta
[email protected]
Ack
This work has been carried out together
with:
Giulio Antoniol
Mark Harman
Fahim Qureshi
Motivations
Project planning is a crucial task for software
maintenance projects
Poor planning can cause unacceptable costs and
delays
Main causes of many software project failures
Project staffing/scheduling
modeled as a search problem
Search-based staffing approach
Search problem:
Determine the (near) optimal WP ordering in the
queue and the people distribution across teams
Objective: minimize the project completion time
provided that precedence constraints are satisfied
Fitness function: completion time obtained by
simulating the queuing model
Further details:
Massimiliano Di Penta, Mark Harman, Giuliano
Antoniol, "The use of Search-Based Optimization
Techniques to Schedule and Staff Software Projects:
an Approach and an Empirical Study", Software:
Practice and Experience, (to appear), 2010, Wiley
Representation
WP
Ordering
4
2
1
3
WP1 WP2 WP3 WP4
Maintainers
Allocation
T2 T2 T3 T1
D1
D2
D3
D4
Team 1
D4
Team 2
D1
WP1 WP4 WP2 WP3
Team 3
D3
D2
How long does it take a team of n
persons to complete a task requiring
e person/months?
The Mythical Man Month
Famous book by Frederick Brooks, firstly
published in 1975
Brooks’ Law:
“Adding manpower to a late software
project makes it later”
However, the sentence before says:
“Oversimplifying outrageously, we state Brooks’
Law”
Brooks also makes the observation:
“there is no simple linear conversion between
person–months and staff levels”
Search based analysis of communication
overhead
Explore the impact of communication overhead
over:
Project completion time
Maintainers distribution across teams
What happens when increasing the staffing levels
Different communication overhead models are
formalized and simulated
Further details:
Massimiliano Di Penta, Mark Harman, Giuliano
Antoniol, Fahim Qureshi: The Effect of
Communication Overhead on Software Maintenance
Project Staffing: a Search-Based Approach. ICSM
2007: 315-324
Communication overhead models
Communication overhead
months
months
Perfectly partitionable task
persons
Task not partitionable
months
months
Complex communication overhead
persons
persons
persons
Formally…
e
t
n
Perfectly partitionable task
(Brooks’ Law does not apply)
e
t ce n(n 1) / 2 Communication involving
pairs
n
e
ce n(n 1) / 2 n(n 1)(n 2) / 3!... n(n 1)...(n k 1) / k!
n
e
k n
Complex Communication
ce j 1
n
j
t
e
t ce n
n
t
e
ce log(n)
n
Linear communication overhead
(some structure of communication)
Logarithmic communication overhead
(good communication structure)
Empirical Study
Objective: analyze the effect of different staffing levels
and of communication overhead models on the
completion time and on the resource assignment to
teams when staffing and scheduling a software
maintenance project using a search-based approach
Communication models considered in the study: log
(structured communication), quadratic (pair
communication), cubic (up to 3 people communication)
Context: data from 2 industrial projects
Project A: Massive Y2K remedial project
– 84 WPs
– No dependencies
Project B: Evolution of a multiplatform system
– 108 WPs
– 102 WP dependencies
Research questions
RQ1: what’s the project completion time for
different staffing levels
RQ2: would it be possible to handle
handling specialized teams?
RQ3: what’s the effect of communication
overhead?
Completion time for different staffing levels
Project A
Above a certain staffing level benefits result reduced…
Completion time for different staffing levels
Project B
…even more when there are complex dependencies…
Tradeoff between completion time and
staffing level
Multi-objective optimization using NSGA-II
Handling specialized teams
Database
70 12
58
56
53
Networking
Middleware
Core
Compl. Time
(person months)
49
48
Staffing
Staffing
60 10
50
8
40
30 6
GUI
40
39
6
7
8
7
8
37
20 4
10
2
0
0
1
2
1
3
2
4
3
5
4
5
Configuration
Configuration
6
Effect of communication overhead
Quadratic
Cubic
Log
190
170
150
130
110
0
1
2
3
4
5
6
7
8
9
% of communication overhead
Project A
10
Completion time
[days]
Completion time
[days]
Log
Quadratic
Cubic
600
500
400
300
200
0
1
2
3
4
5
6
7
8
9
% of communication overhead
Project B
Significant difference among different models for any
communication overhead percentage
Log model introduces a significantly lower overhead
For 4%≤overhead%≤8% (Project A) and
2%≤overhead%≤9% (Project B) cubic model significantly
increases the completion time with a high effect size
By using team re-balancing, the manager can minimize the
impact of communication overhead
10
Varying staffing and communication
Quadratic
Cubic
No overhead
170.0
153.0
150.0
130.0
145.4
131.5
142.0
132.8
134.8
126.7
122.4
110.0
126.1
113.8
35
40
45
50
Staffing level
Project A
55
Log
Completion time
[days]
Completion time
[days]
Log
Quadratic
Cubic
No overhead
500
400
300
200
10
15
20
25
30
Staffing level
Project B
Project A: significant differences among models
– All models able to benefit for increasing staffing level up to
46 (optimal staffing we found in [TSE 2004])
– Different models benefit in different measures
more evident gain for log model
Project B: benefits less evident above 20 (actual staffing)
– Even some increase…
35
Limitations and Risks of SBSE planning
and scheduling
SBSE scheduling/staffing is not going to
solve all your problems
Modeling expertises:
WPs often require specific expertises, even
multiple ones
Depending on the skills, performances of
people on specific tasks can vary
– I could be able to develop a network module, but
an expert would do it in 50% of my time
How to evaluate it? How to model it?
Limitations and Risks of SBSE planning
and scheduling
Dealing with uncertainty
Effort estimation is imprecise
Unexpected activities can arise
– E.g. unexpected requirements, re-development of some
modules
Project managers might want to build a robust
schedule such that:
– The project is staffed in a way to ensuring missing deadlines
even in presence of unexpected events or bad estimations
Details:
S. Gueorguiev, M. Harman, and G. Antoniol, ‘Software
project planning for robustness and completion time
in the presence of uncertainty using multi objective
search based software engineering’, in Genetic and
Evolutionary Computation Conference, GECCO 2009,
Proceedings, Montreal, Quebec, Canada, July 8-12,
2009, pp. 1673–1680. ACM, (2009).
Limitations and Risks of SBSE planning
and scheduling
Dealing with project dynamics
Simple SBSE approaches could assume a (fairly) fixed
team staffing
This is not the case in reality
– Staffing is re-distributed among teams during the project
Possible solution: combine search-based methods and
simulation
– Determine a sequence of events over time
– See the racing game simulation challenge at GECCO 2009
Example
T1:
T1:
…
T4:
…
T7:
…
assign Person 1 to Team A
assign Person 1 to Team B
dispatch WP1 to Team A
move Person 1 to Team B
Application to FLOSS
FLOSS projects have, wrt. industrial
projects, a more self-organizing nature
Cathedral vs. Bazaar projects
Activities are entirely based on a voluntary
basis
Thus, no real project scheduling
Everybody works whenever has time
However…
Also in FLOSS, change requests (bug fixing)
cannot be handled in any order
There are complex dependency relations among
bugs
Some of them blocking relations
Empirical studies have indicated a significant
correlation between change entropy and faultproneness [Hassan, 2009]
Changes performed on many files
Files touched by many developers
How SBSE could play a role here…
It could help the project core team to assign
bugs to contributors
Inputs:
Developer expertise (from previous tasks, see [Anvik
et al. 2006])
Availability for a given time period
Bug dependencies/blocking relations (from BTS)
Bug priorities (from BTS)
Objective: support bug triaging
Assign bugs to developer such that they will be fixed
in the shortest time possible
Keep into account bug priorities
SBSE Challenges
Search-based techniques could be used to aid
the project manager
But should not replace her!
In principle models could incorporate many
parameters
Expertise, communication overhead, training,
uncertainty
Too many variables, however…
Work-in-progress:
Can SBSE be applied to support coordination in FLOSS
projects?
Thank you!
Questions?