Upload
sivarupan
View
129
Download
1
Embed Size (px)
Citation preview
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 1
Lecture 5
Software Project Scheduling
HIT3309 Software Project
Practices and Management
2
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
3
Principal References
Bob Hughes and Mike Cotterell, Software Project
Management (4th Edition), McGraw-Hill, 2005, Chapter
6.
Roger S. Pressman, Software Engineering - A
Practitioners Approach (7th Edition), McGraw-Hill, 2010,
Chapter 27.
Ian Sommerville, Software Engineering (8th Edition),
Addison-Wesley, 2007, Chapter 5.
IEEE PMBOK (3rd Edition), 2004, Chapter 6
(available from Blackboard).
4
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 2
5
Project Scheduling
Project Scheduling requires
Estimations for time and resources required to complete
the activities of the project.
Goal:
Organizing those activities in a coherent order.
Activities must not necessarily be worked upon sequentially!
6
Why do we need to schedule?
A project schedule helps to have a better idea on:
Feasibility assessment,
Risk assessment,
Resource allocations,
Project duration,
Detailed costing,
Project coordination,
…
7
Project Scheduling Steps (I)
Activity definition:
Identifying the specific activities that the project team
members and stakeholders must perform to produce the
project deliverables.
Activity resource estimation:
Estimating the type and quantities of resources required to
perform each scheduled activity.
Activity duration estimation:
Estimating the number of work periods that are needed to
complete individual activities.
Source: IEEE PMBOK, 2004, pp. 123 8
Project Scheduling Steps (II)
Dependencies identification:
Identifying and documenting the relationships between
project activities.
Schedule development:
Analysing activity sequences, activity duration estimates,
resource requirements and schedule constraints to create
the project schedule.
Schedule control:
Controlling changes to the project schedule.
Source: IEEE PMBOK, 2004, pp. 123
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 3
9
Activity Sequencing
Purpose: to determine the inter-dependencies between
activities as listed in the WBS,
product descriptions,
project assumptions, and
project constraints.
Output:
A list of all project activities with their dependencies.
10
Example - Activities and Dependencies
Id. Activity Name Dependencies
A Hardware Selection and Delivery
B Hardware Installation A
C Legacy System Analysis
D Software Design C
E System Implementation and Testing B,D
F Data Migration C
G System Deployment E,F
H User Documentation
I User Training H
11
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
12
Milestones and Deliverables
Milestone
Is an end-point of a software process activity
At each milestone, there must be a (formal) output that can be used to show the completion of the corresponding activities.
Deliverable
Is a project result that is either delivered to customer or required as part of the process/management lifecycle model.
Is usually produced at the end of some major project phase
Will evolve as the project progresses!
Milestones and deliverables help to monitor progress
Should be scheduled at „appropriate‟ intervals
A deliverable is usually a milestone but not vice versa!
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 4
13
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
14
Schedule Development
Purpose: develop a realistic project schedule.
include milestones and deliverables!
May need several iterations of the previous steps in order to have a final project schedule (if possible at all).
Tools and Techniques (amongst others):
Critical Path Method (aka. Critical Path Analysis)
Critical Chain Method
PERT: Program Evaluation and Review Techniques
Precedence Diagramming Method (PDM)
Gantt Charts.
15
To Consider during Scheduling
Resource availability
Resource allocation
Staff skills and responsibilities
Project Monitoring
Cash flow forecasting
Re-planning of the project towards the pre-defined goal
16
Scheduling Techniques
Predictive scheduling (“traditional”) Scope is known upfront and does not change (a lot)
Problem/solution space is very well understood
A detailed plan for most of the project activities can be done upfront
Activities, activity dependencies and risks calculated
Adaptive scheduling (“agile”) Project defined mainly in terms of goals and vision, but scope may change
(substantially)
Problem/solution space not clearly defined
Detailed plan can only be created for a short term (3-4 weeks)
Risks are managed “dynamically”
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 5
17
Scheduling Techniques (cont.)
Time-boxed
Fix amount of time available
Choose scope so that it can be completed within time-box
Basic “building block” of most agile methodologies
Activity based
Fix amount of work to be completed
Define schedule and allocate resources so that all tasks can
be completed.
Mainly used in predictive planning and scheduling.
18
Problems with Scheduling
Estimating the complexity of problems and hence the cost of developing a solution is difficult.
Productivity is not proportional to the number of people working on a task.
Adding people to a late project makes it later because of communication overheads.
The unexpected always happens. Always allow contingency in planning.
Source: Ian Sommerville, Software Engineering (8th Edition), Chapter 5.
19
Scheduling Techniques (cont.)
Simple Sequencing:
Activities are arranged in a sequential manner taking into account availability of resources,
Suitable for small projects only!
Networking techniques:
Arrange activities in such a way to use workflows optimally
Suitable for large projects.
Examples:
Critical Path Method (CPM), Critical Chain Method
PERT: Program Evaluation and Review Technique
Precedence Diagramming Method (PDM)
20
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 6
21
Critical Path Method
Developed by Du Pont Chemical Company; first published in
1958
1 million US$ saving in first year after inception by Du Pont!
Primary objectives:
Schedule all project activities so that it can be completed as quickly as
possible,
Identifying those activities that, if delayed, are likely to affect the overall
project completion time
Critical Path: path joining the (time-)critical events
Critical events that are delayed may delay the completion of project.
22
Critical Path Method (cont.)
Capture the activities and their inter-relationships using a graph
Arrows represent activities (this is the “activities on arrows” approach;
there is also an “activities on nodes” approach, which is perhaps easier to
understand and use).
Nodes represent start and termination of activities
Calculate the earliest start time of each activity
Calculate the latest start time of each activity
Calculate the slack time of each node:
slack = latest start time – earliest start time
Identify the critical path and the critical events
Critical event: an event that has zero slack
23
Slacks and Floats
Slack (or float) is the time allowed for an activity to delay without
affecting the project completion
2 different types of floats:
Total float: the time allowed without affecting the completion of the project
Total float = latest start time – earliest start time
Free float: the time allowed without affecting the next activity
Free float = earliest start time of next activity – latest end time of previous
activity
Significance of slack:
The slack information provides a basis for negotiating project schedules
and is an essential tool in risk management!
24
The Student Paradox
Estimated Duration Float
Standard planning with float:
Deadline
Estimated DurationFloat
Student planning with float:
Deadline
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 7
25
Representing Events
3
5
61
Event Number
Earliest start time Latest start time
Slack
26
Example - Activities and Dependencies (cont.)
Id. Activity Name Dependencies Duration (Weeks)
A Hardware Selection and Delivery 4
B Hardware Installation A 3
C Legacy System Analysis 5
D Software Design C 4
E System Implementation and Testing B,D 5
F Data Migration C 3
G System Deployment E,F 2
H User Documentation 8
I User Training H 4
27
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=2
28
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 8
29
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
30
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
Max of (4+3) {A,B} and
(5+4) {C,D}
9
31
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14
Max of (5+3) {C,F} and
(5+4) {C,D,E}
32
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 9
33
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 16
This event, project
completion, has earliest
“start” at 16. This also is
set to the latest start.
34
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
This event has to start no
later than (16-2) if event 7
is to start no later than
16.
This event has to start no
later than (16-4) if event 7
is to start no later than
16.
35
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
This event has to start no
later than (14-5) if event 6
is to start no later than
14.
36
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
This event has to start no
later than (9-3) if event 5
is to start no later than 9.
6
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 10
37
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
This event has to start no later
than (14-3) if event 6 is to start no
later than 14, and no later than
(9-4) if event 5 is to start no later
than 9.
6
5
38
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
6
50
39
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
6
50
0 0
0
0
2
4
0
Purple number = green number
– blue number (slack = latest
start – earliest start)
40
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
6
50
0 0
0
0
2
4
0
Critical path links those nodes
with no slack via the links
(activities) that force there to
be no slack.
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 11
41
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
6
50
0 0
0
0
2
4
0
Critical path links those nodes
with no slack via the links
(activities) that force there to
be no slack.
42
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
6
50
0 0
0
0
2
4
0
Critical path links those nodes
with no slack via the links
(activities) that force there to
be no slack.
43
Example: Identifying the Critical Path
1
2
3 6
4
A=4
C=5
H=8
7
5
B=3
D=4
F=3
E=5
I=4
G=20
4
8
5
9
14 16 1614
12
9
6
50
0 0
0
0
2
4
0
Critical path links those nodes
with no slack via the links
(activities) that force there to
be no slack.
The CP is activities C,D,E,G
44
Example - Activities and Dependencies (cont.)
Id. Activity Name Dependencies Duration (Weeks)
A Hardware Selection and Delivery 6
B Hardware Installation A 3
C Legacy System Analysis 4
D Software Design C 4
E System Implementation and Testing B,D 5
F Data Migration C 3
G System Deployment E,F 2
H User Documentation 8
I User Training H 4
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 12
45
Example: Identifying the Critical Path
1
0
00
2
0
66
3
1
54
6
0
1414
4
4
128
A=6
C=4
H=8
7
0
1616
5
0
99
B=3
D=4
F=3
E=5
I=4
G=2
46
Significance of Critical Path
Critical path indicates the shortest time for the completion of the project
Any activity falls in the critical path should not be delayed
During the project execution stage, project managers should pay more attention
to these activities
Any activity (whether it falls in the critical path or not) when delayed for a
period longer than the slack amount will affect the critical path
A recalculation of the Critical Path is needed
During the planning stage,
Shortening the critical path will reduce the overall project time
However, after the shortening of a critical path, some path that is not critical may
become a critical path and the original critical path may become non-critical.
47
Activities on Nodes Method
An alternative representation of activity dependencies is to use network nodes
to represent activities, and network links to represent precedence.
It is considerably easier to draw an “activities on nodes” network.
It is also easier to express the algorithm for calculating the critical path!
This approach tends to be favoured by most contemporary PM software
packages
We will demonstrate it on our example
It can be helpful to include 2 extra activities that take 0 time : Project Start and
Project Conclusion. This helps to give a single start and end node for the
project, and helps to describe (and indeed implement) the algorithm.
Activities on Nodes Method
48
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 13
Activities on Nodes Method
49
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
Insert earliest start and earliest finish of start node
and mark node as “done”
ES : 0
EF : 0
Activities on Nodes Method
50
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
Find unmarked nodes with arrows from, and only from, marked nodes.
Set their earliest start as the maximum of the latest finish of all the marked
preceding nodes. Set their earliest finish as the earliest start plus the task duration.
Mark nodes as done. Repeat until no unmarked nodes left.
0
0
0
0
0
4
5
8
Can always find such a
node!
Activities on Nodes Method
51
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
Find unmarked nodes with arrows from, and only from, marked nodes.
Set their earliest start as the maximum of the latest finish of all the marked
preceding nodes. Set their earliest finish as the earliest start plus the task duration.
Mark nodes as done. Repeat until no unmarked nodes left.
THIS COMPLETES THE “FORWARD PASS”
0
0
0
0
0
4
8
8
16
8
14
5
5
9
4
9
5
16
14
7
12
16
Activities on Nodes Method
52
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
We now commence the “BACKWARDS PASS”. Start with the end node (Node J).
Specify the Latest Finish (LF) to be the same as the Earliest Finish.
Set the Latest Start (LS) as the LF – task duration. For Node J this is equal to the LF.
Mark the node.
0
0
0
0
0
4
8
8
16
8
14
5
5
9
4
9
5
16
14
7
12
16
LF : 16
LS : 16
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 14
Activities on Nodes Method
53
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
Find unmarked nodes with arrows to, and only to, marked nodes.
Set their latest finish as the minimum of the earliest start of all the marked
succeeding nodes. Set their earliest finish as the latest finish minus the task duration.
Mark nodes as done. Repeat until no unmarked nodes left.
0
0
0
0
0
4
8
8
16
8
14
5
5
9
4
9
5
16
14
7
12
16
LF : 16
LS : 16
16
16
12
14
Activities on Nodes Method
54
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
0
0
0
0
0
4
8
8
16
8
14
5
5
9
4
9
5
16
14
7
12
16
LF : 16
LS : 16
16
16
12
14
14
14
9
9
12
4
Find unmarked nodes with arrows to, and only to, marked nodes.
Set their latest finish as the minimum of the earliest start of all the marked
succeeding nodes. Set their earliest finish as the latest finish minus the task duration.
Mark nodes as done. Repeat until no unmarked nodes left.
Activities on Nodes Method
55
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
0
0
0
0
0
4
8
8
16
8
14
5
5
9
4
9
5
16
14
7
12
16
LF : 16
LS : 16
16
16
12
14
14
14
9
11
12
4
Find unmarked nodes with arrows to, and only to, marked nodes.
Set their latest finish as the minimum of the earliest start of all the marked
succeeding nodes. Set their earliest finish as the latest finish minus the task duration.
Mark nodes as done. Repeat until no unmarked nodes left.
0
6
59
9
5
6
2
00
Activities on Nodes Method
56
S 0 C 5
H 8
A 4
B 3
D 4
F 3
I 4
J 0
G 2
E 5
0
0
0
0
0
4
8
8
16
8
14
5
5
9
4
9
5
16
14
7
12
16
LF : 16
LS : 16
16
16
12
14
14
14
9
11
12
4
The critical path contains the nodes where the ES = LS (and EF = LF) – marked in diagram.
We can also work out the slack and float figures for each activity (LS – ES).
0
6
59
9
5
6
2
00
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 15
57
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
58
Critical Chain Method
Another example of a known activity-based method
Mainly used in predictive planning, but can also be used for
iterative development
Based on Critical Path Method, but extended with
Contingency buffers (for individual tasks and task
sequences)
Resource allocation for tasks
Reference http://en.wikipedia.org/wiki/Critical_Chain_Project_Management
59
Critical Chain Method - Example
Time
C1 C2 C3
B1
A1
SlackB1
Milestone
SlackA2
B2
60
Critical Chain Method - Example (II)
Time
John Peter Andrew
Peter
Slack
Milestone
SlackAndrew
Allocate resources (people) to activities
B1Andrew John
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 16
61
Critical Chain Method - Example (III)
Time
John
Peter AndrewPeter
Slack Andrew
Conflict resolution may lead to longer schedule!
Andrew
John
Milestone
Slack
62
Critical Chain Method - Example (IV)
Time
Andrew
PeterPeter
SlackAndrew
Rearranging tasks helps in identifying critical chain
Andrew
John John
Milestone
Slack
63
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
64
Program Evaluation and Review (PERT) Technique
Takes into account uncertainty in project planning and
scheduling
It uses three different (probabilistic) time estimates:
Optimistic time, a -- the shortest time to complete an activity
Most likely time, m – the normal completion time for an activity
Pessimistic time, b – the worst possible time for an activity to complete
allowing for all reasonable things to happen except for the ideal worst
case situation
The expected time, t, is given by t = (a + 4*m + b)/6
Note: this is also known as the Three-Point Technique.
Once the expected times are calculated, Critical Path Method
can be used to identify the critical path of the project.
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 17
65
Program Evaluation and Review (PERT) Technique
Why bother?
If the worst and best estimates are equidistant from the
most-likely estimate, then there is no point – just choose
the most-likely estimate
But often they are not symmetrically placed
For example, the worst case could be a lot further away
from the most-likely than the best case (perhaps being
contingent on a low probability, very high impact risk
occurring)
66
PERT Technique (cont.)
Example:
The optimistic time, the most likely time, and the pessimistic time are 8,
10 and 24 days, respectively.
The expected time = (8 + 4×10 + 24)/6 = 12 days
Use 12 days for the project planning and scheduling
Advantage:
It attempts to address uncertainty with duration estimation
Disadvantages:
It involves more work because it requires three estimates rather than one
Generally still falls short to identify Near-Critical Path(s).
67
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
68
Gantt Charts
Developed by Henry Gantt to improve work organization
Mainly used in logistics
Graphical illustration hat shows
The project calendar
The activities from the WBS, their scheduled start and end dates, and the
durations
The people who are responsible for each activity (optional)
It can also show the status of the activities during the execution of the project
Simple and easy to use
Derived once schedule has been set, following a CPM or PERT analysis
Difficult to update manually
Not always applicable in the context of software projects!
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 18
69
Gantt Chart: Example
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Act. H
Act. G
Act. F
Act. E
Act. D
Act. C
Act. B
Act. A
Planned time (week number)
Scheduled Slack
70
Gantt Chart – During Project
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Act. H
Act. G
Act. F
Act. E
Act. D
Act. C
Act. B
Act. A
Planned time (week number)
Completed Scheduled Slack
71
Gantt Chart – During Project (cont.)
During execution of a project, managers may need to:
update the Gantt Chart to indicate the current status of the
activities as the project progress
analyse any delay and determine whether the delay will
affect the completion of the project
may need to reschedule the activities to meet the project
deadline
72
Roadmap
What is Project Scheduling?
Milestones and Deliverables
Scheduling Techniques
Critical Path Method
Critical Chain Method
PERT
Gantt Charts
Planning with Iterations
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 19
73
User Stories
http://en.wikipedia.org/wiki/Fair_use74
Planning with Iterations
Three levels are recommended:
Initial scoping plan
Time to understand domain, build spikes, identify risk areas
Release planning
Prioritised feature list for each release as defined by the customer
Iteration planning
Detailed estimates and selection of features for each iteration
Once an iteration starts, requirements are frozen till end of iteration
Plan for current iteration based on feedback from previous iterations
75
Iteration planning
Customer selects a set of tasks/features for implementation in
current iteration/release
Customer provides business value (i.e. value to the customer)
and a priority for each task/feature:
Priority may be determined based on initial effort estimates
Development team provides estimates for each task/feature
Estimates are relative (in project units)
Team knows how many units they think can be completed within given iteration!
Based on estimates and priorities, a set of tasks is chosen
In eXtreme Programming, developers sign up for tasks (“self-allocation”)
Tasks not chosen are put onto a back-log
76
Velocity and Units
When estimating, the development team will assign“1 unit” to a simple task (“base story”)
All other stories are stated as a multiple of this base story
If this is not possible, tasks too big and it needs to be split up!
So some stories are 2 units and others may be 7 units
Associated with each “base story” is a velocity, i.e. a time estimate required for completion
e.g., 15 hours per story unit
Most adaptive planning techniques will work in a similar fashion.
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 20
77
Estimation and Velocity
Velocity gives a very good measure of a team‟s productivity
Important to communicate this to all participants in the project!
The team get a better idea of what they can and cannot promise the customer when they plan for the next iteration
Time estimates for next iteration can be determined based on velocity from the previous iteration
In last iteration, 20 units were completed in two calendar weeks
For the next iteration, at 20 units of work can be planned for. So we ensure that all stories selected do not add up to more than 20 units.
Units are estimated by developers and can change as the project progresses
ideally, productivity improves over time.
78
Iterations and CPM
Are they compatible?
Yes and No!!
At the outset, there may be a planned set of iterations, and these can be groups of project activities, with some dependencies (with each iteration being dependent on the previous one)
But the network will tend to be linear, and CPM will not be of much help in scheduling
Also, iterations often are NOT all planned at the start, but are fluid as the project proceeds
Some writers claim that the Critical Chain Method, or at least its principles, are best applied to Agile development (within, rather than between, iterations).
79
The Planning Trap
“Events happen. Plans change. If things seem to be
going exactly according to plan, that is usually a sign of
trouble. The worst thing that can happen to a project is
the divergence between the plan and the reality. So do
not fall into this trap. Keep your plans honest, and expect
them to always change.”
– K. Beck, M. Fowler, Planning XP, 2001
80
Parkinson’s Law
“Work expands to fill the time available”– C. Northcote Parkinson, 1957
HIT3309 - Software Project Practices and Management S2, 2010
© Swinburne University of Technology 21
81
What you should know!
Why do we need to schedule a software project?
What are the steps involved in defining a schedule?
What are milestones, and why are they important?
What are the characteristics of the two main
scheduling approaches?
What is the forward pass in the Critical Path method?
What does it result in?
82
Can you answer these questions?
What will happen if the customers, not the developers, set project milestones?
What will happen if the developers, not the customers, define project deliverables?
Why is it generally a bad idea to increase the size of a team if a project is running behind schedule?
Which of the four project forces would you change if a project is running behind schedule?
Should an adaptive scheduling technique be used for a fixed-priced project?
83
Recommended Reading Lecture 5
Roger S. Pressman, Software Engineering - A
Practitioners Approach (7th Edition), McGraw Hill,
2010, Chapter 28.
Bob Hughes and Mike Cotterell, Software Project
Management (4th Edition), Wiley, 2006, Chapter 7.
Pankaj Jalote, Software Project Management in
Practice, Addison-Wesley, 2002, Chapter 6.
84
Estimation and Velocity
Velocity gives a very good measure of a team‟s productivity
Important to communicate this to all participants in the project!
The team get a better idea of what they can and cannot promise the customer when they plan for the next iteration
Time estimates for next iteration can be determined based on velocity from the previous iteration
In last iteration, 20 units were completed in two calendar weeks
For the next iteration, at 20 units of work can be planned for. So we ensure that all stories selected do not add up to more than 20 units.
Units are estimated by developers and can change as the project progresses
ideally, productivity improves over time.