Sei sulla pagina 1di 81

Activity planning

Dr. C. Constantinides
Computer Science and Software Engineering
Concordia University

Scheduling
Having
worked out a method of doing the project
identified the tasks to be carried
assessed the time needed to do each task

We need to allocate dates/times for the start and end of


each activity

Software project scheduling


40% of applications are delivered significantly late
Source: 3 year study of 70 large apps among 30 European firms.
Compuware, December 1995.

70% of projects are:


Over budget
Behind schedule

52% of all projects finish at 189% of their initial budget.


And some, after huge investments of time and money,
are simply never completed.
[Source: The Standish Group]
3

Why is many software delivered late?


Most reasons can be traced to one or more of the
following:
An unrealistic deadline established by someone outside the
development team and forced on managers and developers
within the team.
An underestimate of the amount of effort and/or the number of
resources that will be required.
Risks which were not considered.
Human/technical difficulties not foreseen.
Miscommunication among staff.
4

What is project scheduling


Scheduling is deciding in advance

WHAT to do.
WHY do it.
HOW to do it.
WHEN to do it
WHO is to do it.

Software project scheduling: An activity that distributes


estimated effort across the planned project duration by
allocating effort to tasks.

Basic principles of project scheduling


Compartmentalization: The project must be broken
down into a number of manageable tasks.
Interdependency: The interdependency of each
compartmentalized task must be determined.
Some tasks must work in sequence, some others may work in
parallel. Certain tasks may work independently.

Time allocation: Each task must be allocated some


number of work units (e.g. person-hours of effort). In
addition each task must be assigned a start-date and a
completion-date.
6

Effort validation: Every project has a defined number of


people on the development team.
The project manager must ensure that no more than the
allocated number of people have been scheduled at any
given time.
Example:
Consider three assigned engineers (=3 person-days are available
per day of assigned effort).
On some given day, seven concurrent tasks must be
accomplished, each requiring 0.5 person-days of effort.
More effort has been allocated than there are people to do the
job.
7

Defined responsibilities: Every scheduled task must be


assigned to a specific team member.
Defined outcomes: Every scheduled task should have a
defined outcome. The outcome is normally a workproduct (an artifact). Work products are combined into
deliverables.
Defined milestones: Every task (or group of tasks)
should be associated with a project milestone.
8

The relationship between people and


effort
A common myth: If we fall behind schedule, we can
always add more programmers and catch up later in the
project.
Adding people late in a project often has a disruptive
effect on the project (causing schedules to slip even
further).
New people must learn the system, and people who teach them
are the same people who do the work.
During teaching, no work is done.
Also, more people increase the complexity of communication
throughout the project.

(See The Mythical Man-Month: Essays on Software


Engineering by Fred Brooks, 1995).
9

Motivation behind a detailed project


plan
A detailed plan for the project must include a schedule
indicating the start and completion times for each activity.
This will enable to
Ensure that appropriate resources will be available when
needed.
Avoid having different activities competing for the same
resources at the same time.
Allocate staff to each activity.

10

An activity normally produces a deliverable (tangible


product).
Monitoring the progress is to ensure that the products for
each activity are delivered on-time.

11

Objectives of activity planning


Feasibility assessment
Is the project possible within the required resource constraints?
If a project requires 12 months, can it be done in 6 months with
twice as many people?

Resource allocation
What are the most effective ways of allocating resources to the
project? When should resources be available?
Staff coordination.

Detailed costing
After allocating resources, we can obtain good estimates of
costs.
12

Work breakdown structure (WBS)


A complex project is made manageable by first breaking
it down into individual components in a hierarchical
structure, known as the work breakdown structure, or the
WBS.
WBS is an exhaustive, hierarchical (from general to
specific) tree structure of deliverables and tasks that
need to be performed to complete a project.

13

Because the WBS is a hierarchical structure, it may be


conveyed in outline form.

Level 1

Level 2

Level 3

Task 1
Subtask 1.1
Work package 1.1.1

14

A WBS provides the following information structure:

A description of all significant work.


A clear task decomposition for assignment of responsibilities.
A framework for scheduling, budgeting, and expenditure
tracking.

There are any number of ways to organize the


presentation of the work.
1.
2.

By functional responsibilities.
According to life-cycle phases, showing each phase as a toplevel breakdown.

15

Organizing WBS by functional


responsibilities

16

Organizing WBS according to life-cycle


phases (evolutionary WBS)
An evolutionary WBS should organize the planning
elements around the process framework.
First-level elements
Constitute the anatomy of the entire project. Can be allocated to
single teams.

Second-level elements
Defined for each phase of the life cycle: inception, elaboration,
construction, transition.

Third-level elements
Focus on the activities that produce the artifacts of each phase.
17

Activity networks
These help us to:
Assess the feasibility of the planned project completion date
Identify when resources will need to be deployed to activities
Calculate when costs will be incurred
This helps the co-ordination and motivation of the project team

18

Identifying activities
Work-based approach
Draw-up a Work Breakdown Structure listing the work items
needed

Product-based approach
List the deliverable and intermediate products of project
product breakdown structure (PBS)
Identify the order in which products have to be created
Work out the activities needed to create the products

19

The final outcome of the planning


process
An example of a project plan as a bar chart

20

Precedence networks
(or activity-on-node networks)
A graph (network), where
Nodes represent activities.
Edges represent precedence (or sequencing) requirements.

21

Notation, rules and conventions


Activity label

Duration

ES
Activity description
LS

EF
LF

Float

22

Steps in building an activity-on-node


network
1.

Identify the specific activities and their duration.

2.

Determine the proper sequence of the activities.

3.

Construct a network diagram.

4.

Estimate the time required for each activity.

Earliest start/finish and latest start/finish.

5.

Determine the critical path.

6.

Update the graph as the project progresses.


23

Identify activities
The activities are the tasks required to complete the
project.
It is helpful to list the tasks in a table that in later steps
can be expanded to include information on sequence
and duration.

24

Determine activity sequence


This step may be combined with the activity identification
step since the activity sequence is evident for some
tasks.
Other tasks may require more analysis to determine the
exact order in which they must be performed.

25

Construct the network diagram


Using the activity sequence information, a network
diagram can be drawn showing the sequence of the
serial and parallel activities.
If done manually, several drafts may be required to
correctly portray the relationships among activities.
Software packages simplify this step by automatically
converting tabular activity information into a network
diagram.

26

Estimate the time required for each


activity

Weeks are a commonly used unit of time for activity


completion, but any consistent unit of time can be used.

27

Example project specification


Activity
A
B
C
D
E
F
G
H

Duration (weeks)
Hardware selection
Software design
Install hardware
Code & test software
File take-on
Write user manuals
User training
Install & test system

6
4
3
4
3
10
3
2

Precedents

A
B
B
E, F
C, D
28

Example network diagram

3wks

29

Time-quantities for an activity


Earliest start time (ES): the earliest time at which the
activity can start given that its precedent activities must
be completed first.
Earliest finish time (EF), equal to the earliest start time for
the activity plus the time required to complete the activity.
Latest start time (LS), equal to the latest finish time minus
the time required to complete the activity.
Latest finish time (LF): the latest time at which the activity
can be completed without delaying the project.
30

Earliest start (ES)


Earliest finish (EF) = ES + duration
Latest finish (LF) = latest task can be completed without
affecting project.
Latest start = LF - duration
Latest
finish

Earliest start
activity
Latest start

Earliest finish
31

Determining earliest times:


Forward pass
The earliest start and finish times of each activity are
determined by working forward through the network and
determining the earliest time at which an activity can
start and finish considering its predecessor activities.

32

The forward pass rule


Earliest start date for the current activity = earliest finish
date for the previous
When there is more than one previous activity, take the
latest earliest finish
Note day 7 = end of work on day 7
EF = day 7
ES = day10
EF = day10
33

Performing a forward pass

Activities A, B, F can start immediately => ES = 0.


Activity A will take 6 weeks => EF(A) = 6.
Activity B will take 4 weeks => EF(B) = 4.
Activity F will take 10 weeks => EF(F) = 10.
Activity C can start as soon as activity A has finished =>
ES(C) = 6. It will take 3 weeks => EF(C) = 9.
Activities D and E can start as soon as B is complete =>
ES(D) = ES(E) = 4.
Activity D will take 4 weeks => EF(D) = 8, and E will take
3 weeks => EF(E) = 7.
34

Activity G cannot start until both E and F have been


completed => ES(G) = 10 (i.e. the later of EF(E), and
EF(F)). It takes 3 weeks => EF(G) = 13.
Activity H cannot start until week 9 (the later of the EFs
of C and D) => ES(H) = 9. Also, EF(H) = 9 + Duration(H)
= 9 + 2 = 11.
The project will be complete when both activities H and
G have been completed.
The earliest project completion date will be the later of
EF(H) and EF(G) => EF(project) = 13.
35

3wks

36

Determining latest times:


Backward pass
The latest start and finish times are the latest times that
an activity can start and finish without delaying the
project.
LS and LF are found by working backward through the
network.
We assume that the latest finish date for the project is
the same as the earliest finish date, i.e. we wish to
complete the project as early as possible.
37

How to perform a backward pass


Start from the last activity:
Latest finish (LF) for last activity = earliest finish (EF).

Work backwards:
Latest finish (LF) for current activity = Latest start for the
following
More than one following activity - take the earliest LS.

Latest start (LS) = LF for activity duration.


38

Performing a backward pass


The latest completion date for activities G and H is
assumed to be week 13.
LF(G) = LF(H) = 13.
LS(G) = LF(G) Duration(G) = 13 3 = 10.
LS(H) = LF(H) Duration(H) = 13 2 = 11.
The latest completion date for activities C and D is the
latest date at which activity H must start, which is week
11.
LF(C) = LF(D) = LS(H) = 11
LS(C) = LF(C) Duration(C) = 11 3 = 8.
LS(D) = LF(D) Duration(D) = 11 4 = 7.
39

LF(E) = LS(G) = 10.


LS(E) = LF(E) Duration(E) = 10 3 = 7.
LF(F) = LS(G) = 10.
LS(F) = LF(F) Duration(F) = 10 10 = 0.
LF(B) = Earliest of {LS(D), LS(E)} = 7.
LS(B) = LF(B) Duration(B) = 7 4 = 3.
LF(A) = LS(C) = 8
LS(A) = LF(A) Duration(A) = 8 6 = 2.
The latest start date for the project is the earliest of the latest
start dates for activities A, B, and F, i.e. earliest{LS(A), LS(B),
LS(F)} = earliest{2, 3, 0} = 0.

40

3wks

41

Float
The difference between an activitys earliest start date
(ES) and its latest start date (LS) (or the difference
between earliest and latest finish dates) is known as the
activitys float.
Float = LF - ES duration.
FLOAT
LF

ES
activity
LS

EF
42

Float is a measure of how much the start or completion


of an activity may be delayed without affecting the end
date of the project.
Any activity with zero float is critical: any delay will affect
the completion of the entire project.
There will be (at least) one path through the network
joining those critical activities: known as the critical path.

43

The critical path is determined by adding the times for


the activities in each sequence and determining the
longest path in the project.
The critical path determines the total calendar time
required for the project.
If activities outside the critical path speed up or slow
down (within limits), the total project time does not
change.

44

Critical path

2wks
3wks

45

Example
Consider an activity where:
Earliest start (ES) = day 5.
Latest finish (LF) = day 30.
Duration = 10 days.

Determine the following: (See slide 31)


Earliest finish (EF) = ES + Duration = Day 5 plus 10 days i.e. day
15.
Latest start (LS) = LF Duration = Day 30 10 days i.e. day 20.
Float = LF - ES duration = 30 5 10 = 15 days.

46

Update graph as project progresses


Make adjustments to the graph as the project
progresses.
As the project unfolds, the estimated times can be
replaced with actual times.
In cases where there are delays, additional resources
may be needed to stay on schedule and the chart may
be modified to reflect the new situation.

47

Activity-on-arrow networks
A graph (network), where
Edges represent activities (may also include durations).
Nodes represent events of activities (or groups of activities),
starting or finishing.

48

Steps in building an activity-on-arrow


network
1. Specify the individual activities.
2. Determine the sequence of those activities.
3. Draw a network diagram.
4. Estimate the completion time for each activity.
5. Identify the critical path (longest path through the
network)
6. Update the graph as the project progresses.
49

Specify the individual activities

From the work breakdown structure, a listing can be


made of all the activities in the project.

This listing can be used as the basis for adding


sequence and duration information in later steps.

50

Determine the sequence of the


activities

Some activities are dependent on the completion of


others.

A listing of the immediate predecessors of each activity


is useful for constructing the network diagram.

51

Estimate activity completion time


We define the following four quantities for each activity:
ES: Earliest Start time
EF: Earliest Finish time
LS: Latest Start time
LF: Latest Finish time

52

Notation, rules and conventions

May have only one start and end node.


An edge has duration.
A node has no duration.
Time moves from left to right.
Nodes are numbered sequentially.
A graph may not contain loops.
Event#
Earliest Latest
date
date
slack
53

Example project specification


Activity
A
B
C
D
E
F
G
H

Duration (weeks)
Hardware selection
Software design
Install hardware
Code & test software
File take-on
Write user manuals
User training
Install & test system

6
4
3
4
3
10
3
2

Precedents

A
B
B
E, F
C, D
54

55

Forward pass rule


We perform a forward pass to obtain 1) the earliest date
for events and 2) the ES and EF dates of activities.
The earliest date for an event is the earliest finish
date of the activity terminating at that event.
Where more than one activity terminates at a common event,
take the latest of the earliest finish dates for those activities.

Event dates are recorded on the graph and activity dates


on an activity table.

56

Performing a forward pass


Activities A, B, and F can start immediately, so the
earliest date for event 1 is zero and the earliest start date
for these three activities is also zero.
Activity A will take 6 weeks, so the earliest it can finish is
week 6. The earliest we can achieve event 2 is week 6.

57

Activity B will take 4 weeks, so the earliest it can finish


and the earliest we can achieve event 3 is week 4.
Activity F will take 10 weeks, so the earliest it can finish
is week 10 (we cannot draw any conclusion on event 5
since we have not yet calculated activity E).

58

Activity E can start as early as week 4 (the earliest date


for event 3) and since it is forecasted to take 3 weeks, it
will be completed, at the earliest, at the end of week 7.
Event 5 may be achieved when both E and F have been
completed, i.e. week 10 (the later of 7 and 10).

59

Event 4 will have an earliest date of week 9. This is the


latest of the earliest finish for D (week 8) and the earliest
finish for activity C (week 9).
The earliest date for event 6 (the completion of the
project) is the end of week 13 (i.e. the later of the
earliest finish of activity H, 11, and the earliest finish of
activity G, 13).

60

61

Activity table after the forward pass


Activity Duration
(weeks)

Earliest start
date

Earliest
finish date

A
B
C
D
E
F
G
H

0
0
6
4
4
0
10
9

6
4
9
8
7
10
13
11

6
4
3
4
3
10
3
2

62

Backward pass rule


We perform a backward pass to obtain 1) the latest date
for events and 2) the LS and LF dates of activities.
We assume that the latest finish date for the project is
the same as the earliest finish date.
The latest date for an event is the latest date by
which all immediately following activities must be
started (for the project to be completed on time).
Where more than one activity originates from a common event,
take the earliest of the latest start dates for those activities.

Event dates are recorded on the graph and activity dates


on an activity table.
63

To remember:
Latest Date (Event) = Earliest of
{LS of all following activities}
LF(activity) = Latest Date (Event) in which the
activity terminates at.
LS(activity) = LF(activity) Duration(activity)
64

Latest Date (6) = 13.


LF(G) = LF(H) = 13.
LS(G) = LF(G) Duration(G) = 13 3 = 10.
LS(H) = LF(H) Duration(H) = 13 2 = 11.

65

LS(G) and LS(H) allow us to obtain the Latest Date of


events 5 and 4 respectively:
Latest Date(5) = LS(G) = 10.
Latest Date(4) = LS(H) = 11.

66

The Latest Date of event 5 allows us to obtain LF(E):


LF(E) = Latest Date(5) = 10.
LS(E) = LF(E) Duration(E) = 10 3 = 7.

67

The Latest Date of event 4 allows us to obtain LF(C) and


LF(D):
LF(C) = LF(D) = Latest date(4) = 11.
LS(C) = LF(C) Duration(C) = 11 3 = 8.
The above allows us to obtain Latest Date(2) = 8.
LS(D) = LF(D) Duration(D) = 11 4 = 7.

68

To obtain Latest Date(3) , we take the earliest of {LS(D),


LS(E)} = 7.
LF(B) = Latest Date(3) = 7.
LS(B) = LF(B) Duration(B) = 7 4 = 3.
LF(A) = Latest Date(2) = 8.
LS(A) = LF(A) Duration(A) = 8 6 = 2.
LF(F) = Latest Date(5) = 10.
LS(F) = LF(F) Duration(F) = 10 10 = 0.
69

11

NB: There is a typo in the textbook (Fig 6.28, p. 143):


The latest date for event 4 should be 11, not 1.

70

Activity table after the backward pass


Activity

Duration
(weeks)

Earliest start
date

Latest
start date

Earliest Latest finish


finish date

A
B
C
D
E
F
G
H

6
4
3
4
3
10
3
2

0
0
6
4
4
0
10
9

2
3
8
7
7
0
10
11

6
4
9
8
7
10
13
11

8
7
11
11
10
10
13
13

71

Slack time and critical path


The slack time for an event is the time between its
earliest and latest start time, or between its earliest and
latest finish time.
Slack is a measure of how late an event may be, without
delaying the project.
The critical path is the path joining all nodes with a zero
slack.

72

73

The significance of the critical path is that the activities


that lie on it cannot be delayed without delaying the
project.
Because of its impact on the entire project, critical path
analysis is an important aspect of project planning.
To accelerate the project it is necessary to reduce the
total time required for the activities in the critical path.

74

Update the graph


As the project progresses, the actual task completion
times will be known and the graph can be updated to
include this information.
A new critical path may emerge, and structural changes
may be made in the graph if project requirements
change.

75

Timeline (or Gantt) chart


A timeline chart (also called a Gantt chart) is a
horizontal bar chart which helps to plan, coordinate, and
track specific tasks in a project.
In software development projects, a Gantt chart
illustrates the WBS.
Task Duration Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1

2 mo.

2 mo.

2 mo.

2 mo.

2 mo.

2 mo.

76

A Gantt chart is constructed with a horizontal axis


representing the total time span of the project, broken
down into increments (for example, days, weeks, or
months) and a vertical axis representing the tasks that
make up the project.
Horizontal bars of varying lengths represent the
sequences, timing, and time span for each task.
The bar spans may overlap.
As the project progresses, secondary bars, arrowheads,
or darkened bars may be added to indicate completed
tasks, or the portions of tasks that have been completed.
A vertical line is used to represent the report date.
77

Notation

78

79

Example tool: XL-EasyGantt

80

References and on-line resources


1.

Bob Hughes and Mike Cotterell, Software Project


Management, 4th edition, McGraw Hill, 2006.

2.

XL-EasyGantt home page. URL:


htttp://www.xleasygantt.com

3.

Create a Gantt chart in MS-Excel, URL:


http://office.microsoft.com/en-us/excel/HA0103460510
33.aspx

4.

Internet Center for Management and Business


Administration. URL: http://www.netmba.com/
81

Potrebbero piacerti anche