21
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 (4 th Edition), McGraw-Hill, 2005, Chapter 6. Roger S. Pressman, Software Engineering - A Practitioners Approach (7 th Edition), McGraw-Hill, 2010, Chapter 27. Ian Sommerville, Software Engineering (8 th Edition), Addison-Wesley, 2007, Chapter 5. IEEE PMBOK (3 rd 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

Lecture 5 - Scheduling

Embed Size (px)

Citation preview

Page 1: Lecture 5 - Scheduling

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

Page 2: Lecture 5 - Scheduling

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

Page 3: Lecture 5 - Scheduling

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!

Page 4: Lecture 5 - Scheduling

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”

Page 5: Lecture 5 - Scheduling

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

Page 6: Lecture 5 - Scheduling

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

Page 7: Lecture 5 - Scheduling

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

Page 8: Lecture 5 - Scheduling

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

Page 9: Lecture 5 - Scheduling

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

Page 10: Lecture 5 - Scheduling

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.

Page 11: Lecture 5 - Scheduling

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

Page 12: Lecture 5 - Scheduling

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

Page 13: Lecture 5 - Scheduling

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

Page 14: Lecture 5 - Scheduling

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

Page 15: Lecture 5 - Scheduling

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

Page 16: Lecture 5 - Scheduling

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.

Page 17: Lecture 5 - Scheduling

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!

Page 18: Lecture 5 - Scheduling

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

Page 19: Lecture 5 - Scheduling

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.

Page 20: Lecture 5 - Scheduling

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

Page 21: Lecture 5 - Scheduling

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.