comp 354: introduction to software …users.encs.concordia.ca/~gregb/home/pdf/sinnig-project...comp...

99
Department for Computer Science and Software Engineering COMP 354: INTRODUCTION TO SOFTWARE ENGINEERING Daniel Sinnig, PhD [email protected] 07-May-14 Software Project Management

Upload: others

Post on 06-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

Department for Computer Science

and Software Engineering

COMP 354:

INTRODUCTION TO SOFTWARE ENGINEERING

Daniel Sinnig, PhD

[email protected]

07-May-14

Software Project Management

Page 2: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

2

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

What is a project?

Some dictionary definitions:

“A specific plan or design”

“A planned undertaking”

“A large undertaking e.g. a public works scheme”

The Guide to the Project Management Body of Knowledge

(PMBOK), defines project as:

“a temporary endeavor undertaken to achieve a specific and unique product

or service.”

© C. Constantinidies

Page 3: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

3

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

What is a project?

• ‘Jobs’ – repetition of very well-defined and well understood tasks with

very little uncertainty

• ‘Exploration / Research’ – e.g. finding a cure for cancer: the outcome is very uncertain

• Projects – in the middle!

©Hughes and Cotterell. “Software Project Management” (5th edition)

Page 4: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

4

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Characteristics of projects

A task is more ‘project-like’ if it is:

• Non-routine

• Planned

• Aiming at a specific target

• Carried out for a customer

• Carried out by a temporary work group

• Involving several specialisms

• Made up of several different phases

• Constrained by time and resources

• Large and/or complex

©Hughes and Cotterell. “Software Project Management” (5th edition)

Page 5: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

5

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

In-class Exercise

Which of the following may be classified as projects?

• Producing an edition of a newspaper

• Writing a paper

• Preparing a COMP 354 lecture

• Getting married

• Amending a financial computer system to deal with the EURO currency

• A COMP 354 midterm

• Writing an automated trading system

• Installing a new version of MS Office

Page 6: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

6

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

What are software projects?

Are software projects really different from other projects?

Not really …but the following characteristics of software make software more problematic to build than other engineered artefacts.

• Invisibility

• Complexity

• Conformity

• Flexibility

© C. Constantinidies

Page 7: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

7

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Types of Software Projects

Software Projects can be:

• In-house: clients and developers are employed by the same organization

• Out-sourced: clients and developers employed by different organizations

• ‘Project manager’ could be:

– a ‘contract manager’ in the client organization

– a technical project manager in the supplier/services organization

©Hughes and Cotterell. “Software Project Management” (5th edition)

Page 8: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

8

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Activities covered by project management

• Feasibility study: Is project technically feasible and worthwhile from a business point of view?

• Planning: Only done if project is feasible

• Execution: Implement plan, but plan may be changed as we go along

©Hughes and Cotterell. “Software Project Management” (5th edition)

Page 9: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

9

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

What is management?

This involves the following activities:

• Planning – deciding what is to be done

• Organizing – making arrangements

• Staffing – selecting the right people for the job

• Directing – giving instructions

• Monitoring – checking on progress

• Controlling – taking action to remedy hold-ups

• Innovating – coming up with solutions when problems emerge

• Representing – liaising with clients, users, developers and other stakeholders

©Hughes and Cotterell. “Software Project Management” (5th edition)

Page 10: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

10

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Why projects fail

• Ignorance of management over engineering (IT) issues.

• Deadline pressure.

• Poor role definition: Who does what. Who has access to what (technical)

resources.

• Requirements can be incomplete, ambiguous, inconsistent, or not measurable.

Success criteria can be incorrect or undefined.

• Lack of (developer) knowledge of application area.

• Poor estimation and planning. Casual estimates of milestones.

• Ineffective environment. Unavailability of the right tools.

• Lack of reliable documentation (especially for maintenance tasks).

©Hughes and Cotterell. “Software Project Management” (5th edition)

Page 11: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

11

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Activity Planning (Scheduling) • Break down (or compartmentalize) the overall project into manageable

components, called activities (or tasks).

• Deciding in advance, what to do, why do it, how to do it, when to do it and who

is to do it.

Result: A detailed project plan including:

• Projected start and completion days of the project

• Break-down of project into list of activities (tasks) including

• For each activity:

– Duration (incl. start and completion dates)

– Effort required

– Required resources

– Inter-dependencies to other activities

– Etc.

Page 12: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

12

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Fundamentals of activity planning

• A project is:

– Composed of a number of activities

– May start when at least one of its activities is ready to start

– Completed when all its activities are completed

• An activity has/is:

– Clearly defined start and end point

– Clearly defined outcome (normally a work-product (or artifact).

• Work products are combined into deliverables.

• For example, the artifacts produced by the activities of a an iteration are

combined into the deliverable for that particular iteration.

– Assigned to a specific team member

– Precedence requirements

Page 13: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

13

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• There is a common myth that if we fall behind schedule, we can always

add more developers and catch up later in the project.

• Unfortunately this is not so simple and this policy most likely would

create more problems than the ones it aims at solving.

• Adding people late in a project often has a disruptive effect on the

project (causing schedules to slip even further) as 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. Furthermore, more people increase

the complexity of communication throughout the project.

• Brook’s law: “Adding manpower to a late project makes it later”

The relationship between people and effort

Page 14: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

14

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Mathematical graphs that help managers to:

– Visualize the plan of a project

– Assess the feasibility of the completion date

– Identify how resources would need to map to activities and how they will

need to be deployed to them, and to calculate when costs will be incurred.

• Activity networks provide a tool for the coordination (and

the motivation – why?) of the project team

Activity networks

Page 15: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

15

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• An activity-on-node network is a directed mathematical

graph where

– Nodes represent activities

– Edges represent transitions from one activity to another, explicitly

illustrating their sequence.

• Each node includes the following information:

Activity-on-node networks

Legend:

• ES = Earliest start

• LS = Latest start

• EF = Earliest finish

• LF = Latest finish

Page 16: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

16

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Exactly one starting and end node

• A node (representing activity) has a duration, an edge does not

• A network may not contain loops (why)

• A network should not contain dangles

Activity-on-node networks: Constraints

Page 17: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

17

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The requirements specification of an IT application is estimated to take two weeks to

complete (a week is seven days).

• When this activity has been completed, work can start on three software modules, A, B

and C.

• The design/implementation of A, B and C will need five, ten and ten days respectively.

• Modules A and B can only be unit-tested together as their functionality is closely

associated. This joint testing should take two weeks.

• Module C will require eight days of unit testing.

• Once all unit-testing has been completed, the planning of integrated system testing must

take place and it would require a ten days. The activity itself would take three weeks.

• The project manager has decided not to allow any holiday for the duration of this

project.

Example: Activity-on-node network

Page 18: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

18

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Translating the problem statement into tabular form

Page 19: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

19

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Translating the table into a graph

Page 20: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

20

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• For each activity we must determine the following

parameters:

– 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): equals to the earliest start time for the

activity plus 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.

– Latest start time (LS): equals to the latest finish time minus the

time required to complete the activity.

Time parameters

Page 21: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

21

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• 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.

• For each activity, we calculate the earliest times by applying

the forward pass rule.

• The forward pass rule: The earliest start date for the

current activity is the earliest finish date for the previous.

When there is more than one previous activity, we take the

latest between all previous activities.

– The earliest start date for the start node is 0 (“end of day 0)

Determining earliest times: Forward pass

Page 22: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

22

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Activity S can start immediately (we follow the convention to

write “the end of day 0”).

• It will take 14 days, which is the earliest it can finish. Thus,

– ES(S) = 0

– EF(S) = 14

Performing a forward pass

Page 23: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

23

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Activities DCA, DCB and DCC can start as soon as S

completes. Activity DCA will take 5 days, so the earliest it

can finish is (at the end of) day 19.

• Similarly, the earliest finish for activities DCB and DCC

(both of which will take 10 weeks) is (at the end of) day 24.

– ES(DCA) = ES(DCB) = ES(DCC) = 14

– EF(DCA) = 19

– EF(DCB) = EF(DCC) = 24

Performing a forward pass (cont.)

Page 24: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

24

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Activity UTAB cannot start until both its preceding activities

can finish.

• The earliest start for UTAB is the latest between the earliest

finish of its preceding activities, i.e. the latest between

EF(DCA), and EF(DCB) which is (at the end of) day 24.

• Activity UTAB will take 14 days to complete, and so the

earliest it can finish is (at the end of) day 38.

– ES(UTAB) = 24

– EF(UTAB) = 38

Performing a forward pass (cont.)

Page 25: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

25

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Activity UTC cannot start until activity DCC finishes, i.e.

ES(UTC) = EF(DCC) = 24.

• Activity UTC will take 8 days to complete, so the earliest it

can finish is (at the end of) day 32.

– ES(UTC) = 24

– EF(UTC) = 32

Performing a forward pass (cont.)

Page 26: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

26

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Activity P cannot start until both its preceding activities

finish.

• The earliest that activity P can start is the latest between the

earliest finish of its preceding activities UTAB and UTC, i.e.

the latest of EF(UTAB), and EF(UTC), which is 38.

• Activity P will take 10 days to complete, so the earliest it can

finish is (at the end of) day 48.

– ES(P) = 38

– EF(P) = 48

Performing a forward pass (cont.)

Page 27: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

27

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Activity IST cannot start until activity P finishes.

• The earliest start of IST is the earliest finish of P.

• Activity IST will take 21 days to complete, so the earliest is

can finish is (at the end of) day 69.

– ES(IST) = 48

– EF(IST) = 69

• The project will be complete when activity IST is complete.

• The earliest the project can complete is (at the end of) day

69.

Performing a forward pass (cont.)

Page 28: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

28

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Forward pass: Conclusion

Page 29: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

29

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The latest start and finish times are the latest times that an

activity can start and finish without delaying the project and

they 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.

Determining latest times: The backward pass

Page 30: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

30

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Start from the last activity: The latest finish (LF) for the last activity is the

earliest the project can complete.

– E.g., Earliest finish (EF) of last activity

• We now work backwards for each subsequent activities: The latest finish (LF)

for a given activity is the latest start (see below) of its following activity, i.e. LF

(activity) = LS (following activity).

• If more than one following activity exists, we take the earliest of the latest start

dates of its following activities, i.e. LF (activity) = min (LSs of following

activities).

• The latest start (LS) of a given activity is given by the difference between its

latest finish (LF) and its duration, i.e. LS(activity) = LF(activity) -

duration(activity).

Determining latest times: The backward pass rule

Page 31: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

31

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The latest completion date for activities IST is assumed to be (the

end of) day 69.

• This assumption is based on the fact that we do not want to delay

the project more than its earliest possible completion date.

• Since the duration of IST is 21 days, its latest start is the difference

between its latest finish and its duration.

– LF(IST) = 69

– LS(IST) = LF(IST) - duration(IST) = 48

Performing a backward pass

Page 32: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

32

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The latest completion date for activity P is the latest date at which

the following activity, IST, can start.

• Also, the latest start for activity P is the difference between its

latest finish and its duration i.e.

– LF(P) = LS(IST) = 48

– LS(P) = LF(P) - duration(P) = 48 - 10 = 38

Performing a backward pass (cont.)

Page 33: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

33

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The latest completion date for activities UTAB and UTC are the

latest day at which the following activity, P, can start.

– LF(UTAB) = LF(UTC) = LS(P) = 38

Performing a backward pass (cont.)

Page 34: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

34

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The latest start for activity UTAB is the difference between its

latest finish and its duration, i.e.

– LS(UTAB) = LF(UTAB) - duration(UTAB) = 38 - 14 = 24

• Similarly the latest start for activity UTC is the difference between

its latest finish and its duration, i.e.

– LS(UTC) = LF(UTC) - duration(UTC) = 38 - 8 = 30

Performing a backward pass (cont.)

Page 35: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

35

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The latest finish dates for activities DCA and DCB are the latest

day at which the following activity, UTAB, can start, i.e.

– LF(DCA) = LF(DCB) = LS(UTAB) = 24

• The latest start date for DCA and DCB are the differences

between their corresponding latest finish dates and their duration,

i.e.

– LS(DCA) = LF(DCA) - duration(DCA) = 24 - 5 = 19

– LS(DCB) = LF(DCB) - duration(DCB) = 24 - 10 = 14

Performing a backward pass (cont.)

Page 36: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

36

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The latest finish date for activity DCC is the latest day at which

the following activity, UTC, can start, i.e.

– LF(DCC) = LS(UTC) = 30

• The latest start date for activity DCC is the difference between its

latest finish date and its duration, i.e.

– LS(DCC) = LF(DCC) - duration(DCC) = 30 - 10 = 20

Performing a backward pass (cont.)

Page 37: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

37

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The latest finish date for activity S is the earliest of the latest start

dates of its following activities, DCA, DCB and DCC, i.e. the

minimum of LS(DCA), LS(DCB), and DC(DCC).

– LF(S) = 14

• The latest start date for activity S is the difference between its

latest finish date and its duration, i.e.

– LS(S) = LF(S) - duration(S) = 0

Performing a backward pass (cont.)

Page 38: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

38

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Backward pass: Conclusion

Page 39: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

39

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• The difference between an activity’s earliest start date (ES) and its

latest start date (LS) (or the difference between earliest and latest

finish dates) is known as the activity’s float, i.e.

– Float = LS − ES

• But LS = (LF − Duration), so

– Float = LF − Duration − ES

• In essence, 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 as any delay will

affect the completion of the entire project.

Activity float

Page 40: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

40

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

• Critical path defines the duration of the project

– Any delay to any activity on the critical path will delay the project

– If activities outside the critical path speed up the total project time does not

change.

• The “float” of all activities on the critical path is ‘0’

• The critical path is determined by adding the times for the

activities in each sequence and determining the longest path in the

project.

• In the activity network, there will be one at least critical path.

Critical path

Page 41: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

41

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Determining the float and critical path in the example

Page 42: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

42

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Maximum duration

• There is one parameter we still have not mentioned: As a project manager you need to plan the resources required for each activity.

• To do that, you need to calculate, for each activity, the maximum possible duration. This is given by LF − ES.

Page 43: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

43

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

PERT to evaluate the effects of uncertainty

• So far, we considered models with “single time estimates” for

activity durations

– Called CPM = Critical Path Models

• PERT = Program Evaluation and Review Technique

• PERT requires three estimates for each activity

– Most likely time (m): Activity duration under normal circumstances

– Optimistic time (a): Shortest time to complete the activity

– Pessimistic time (b): Worst possible time to complete the activity

• Derived attribute: Expected duration(t) t= (a+4m+b) / 6

• Derived attribute: Standard deviation*(s) s = (b-a) / 6

* Definition of standard derivation differs from (math) textbook definition

Page 44: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

44

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example: PERT Activities

Activity

label

Precedents Optimistic

(a)

Most

likely (m)

Pessimistic

(b)

Expected

(t)

Standard

derivation

A 5 6 8

B 3 4 5

C A 2 3 3

D B 3.5 4 5

E B 1 3 4

F 8 10 15

G E, F 2 3 4

H C, D 2 2 2.5

Page 45: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

45

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example: PERT Activities

Activity

label

Precedents Optimistic

(a)

Most

likely (m)

Pessimistic

(b)

Expected

(t)

Standard

derivation

A 5 6 8 6.17 0.50

B 3 4 5 4.00 0.33

C A 2 3 3 2.83 0.17

D B 3.5 4 5 4.08 0.25

E B 1 3 4 2.83 0.5

F 8 10 15 10.5 1.17

G E, F 2 3 4 3.00 0.33

H C, D 2 2 2.5 2.08 0.08

Page 46: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

46

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

PERT networks

• PERT can be modelled as activity-on-node and activity-on-arrow

networks

– In this course we will focus activity-on-arrow networks

• Each event is represented by a node structures as follows:

• Each activity is represented by an arrow labelled as follows:

– Activity label

– Expected duration (t)

– Standard derivation (s)

Event

number

Target

date

Expected

date

Standard

deviation

Page 47: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

47

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Activity-on-arrow networks

• An activity-on-arrow network is a mathematical graph where nodes represent events of activities (or groups of activities: starting or finishing), and edges represent activities (may also include durations).

Page 48: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

48

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Activity-on-arrow networks: Constraints

• We may have only one start and end node.

• Since an edge represents an activity, it has a duration.

• On the other hand, a node (representing some milestone) has no

duration.

• Nodes are numbered sequentially.

• If we choose not to show direction of edges, we must follow a

convention to read the graph properly. In our convention, time

moves from left to right.

• A graph may not contain loops.

• A graph may not contain dangles

Page 49: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

49

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example PERT network

Page 50: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

50

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Calculating expected dates of events

• Expected date = date the event is expected to occur

• Calculated using a forward pass

• Forward pass rule:

– Expected date (Event) : Latest expected finish (EF) date of all preceding

activities

– Expected Start (ES) (activity) = Earliest expected date (Event) in which

the activity originates from.

– EF(activity) = ES(activity) + Expected Duration(activity)

Event

number

Target

date

Expected

date

Standard

derivation

Page 51: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

51

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example PERT network (after the forward pass

for calculating expected dates of events)

Page 52: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

52

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Calculating standard deviation of events

• Calculated using a forward pass

• Forward pass rule:

– Standard deviation (Event) : Max of sqrt (s(activity’) 2+s (event’)2)

– s(activity’) = standard deviation of all preceding activities

– s(event’) = standard deviation of preceding event

Event

number

Target

date

Expected

date

Standard

derivation

Page 53: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

53

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example PERT network (after the forward pass

for calculating standard derivations of events)

Page 54: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

54

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Calculating likelihood of target dates

• For each event a target date (T) may be specified

• The following procedure calculates the probability of achieving

the target date:

(1) Calculate z-value for each event that has a target date as follows

z = (T-t) / s, where

T = target date for the event

t = expected date of event

s = standard deviation of the event

z-value = number of standard deviations between event’s expected date and

event’s target date

(2) Convert z-value to a probability (defined in subsequent slides)

Event

number

Target

date

Expected

date

Standard

derivation

Page 55: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

55

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example PERT network (setting target dates for

events 4, 5, 6)

Page 56: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

56

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example PERT network (calculating z-values for

events 4, 5, 6)

z4 = (10-9) / 0.53 = 1.89

z5 = (10-10.5) / 1.17 = -0.43

z6 = (15-13.5) / 1.22 = 1.23

Can you provide an intuitive interpretation of the z-value?

Page 57: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

57

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Interpretation of z-value

• The higher the z-value the more likely it is to achieve the target

date. Why?

• The lower the z-value the less likely it is to achieve the target date.

Why?

Page 58: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

58

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Convert z-value to a probability

Page 59: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

59

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example PERT network (interpreting z-values for

events 4, 5, 6)

z4 = (10-9) / 0.53 = 1.89

• The target date will be missed with a ~3% probability

• The target date will be achieved with a ~97% probability

z5 = (10-10.5) / 1.17 = -0.43

• The target date will be missed with a ~67% probability

• The target date will be achieved with a ~33% probability

z6 = (15-13.5) / 1.22 = 1.23

• The target date will be missed with a ~11% probability

• The target date will be achieved with a ~89 probability

Page 60: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

60

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Project monitoring and control

• Project performance reporting

• Collection and dissemination of information on

– Project status

– Project progress

– Project forecast

• Addresses the following questions:

– “Where are we on schedule?”

– “Where are we on budget?”

– “Are tasks get accomplished according to plan?”

Page 61: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

61

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Why monitoring?

• Monitoring implies taking a “snapshot” of the project at a single

point in time.

• In iterative development, monitoring is performed during every

iteration.

• Not only we need the above information to make some judgment

about the state of the project, but we may also need to apply

proper controls to bring the project back on track.

Page 62: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

62

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Earned value analysis

• Quantitative analysis technique for measuring project

performance and progress

• Developed by US Department of Defense (DoD) to control

projects carried out by contractors

• The main idea behind earned value analysis is that the value of

the product increases as tasks are completed.

• Defines a set of key indicators to define project baseline, measure

progress and forecasting

Page 63: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

63

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Planned value (budgeted costs)

Note: Earned value analysis uses the term “task” to depict an

activity of a project

• For a given task k, the planned value (PVk ) is defined as the budget planned

for that task (based on the resources involved).

• As a project is essentially a collection of tasks, in order to determine the

progress at any given point along the project schedule, the PV of the project

is the sum of the PVk values of all tasks that should have been completed

by that point in time on the project schedule.

Page 64: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

64

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Planned value: An example

• Consider a project with the following (linear) tasks (in

parentheses are the associated planned values): A(20), B(5), C

(10), D (20), E (20), F (10), and G (15).

• If the tasks are placed on a time line, then on the time indicated

we plan to have spent the amount of 35.

Page 65: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

65

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Earned value • We define earned value (EV) as the planned value of the work

actually completed

– A task that has not yet started: Earned value of 0

– A task completed: Earned value = original planed value for that task

– Partially completed task, an evaluation method must be chosen and

consistently applied. Such as:

• 0/100 technique: EV of a task is 0 until completed

• 50/50 technique: EV = 50% of PV as soon as task is started. Matches some

contractual agreements where contractor is given 50% of PV when work is started

• 75/25 technique: EV = 75% of PV as soon as task is started. Often used when

expensive equipment is purchased at the beginning of the task

• Milestone technique: EV is given a certain value when a certain milestone has been

achieved

• Percentage technique: EV equals the percentage of actual task completion of the

planned value. We will use this technique for this class.

Page 66: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

66

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Budget at completion • The budget at completion (BAC) is the summation of the PV

values for all tasks:

BAC = (PVk) for all tasks k.

• In the following example, the BAC is 100.

Page 67: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

67

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Percent scheduled for completion

• The Percent scheduled for completion is an indication of the percentage

of work that should have been completed by a given point in

time and it is given by

• Percent scheduled for completion = 𝑃𝑉(𝑝𝑟𝑜𝑗𝑒𝑐𝑡)

BAC

• In the previous example, PV(project) = 35, and BAC = 100, so

the percent scheduled for completion is 35%.

Page 68: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

68

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Actual cost

• The actual cost (AC) is defined as the total of costs on tasks that

have actually been completed by a given point in time on the project

schedule.

Page 69: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

69

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Percent complete

• Percent complete provides a quantitative indication of the

percent of completion of the project at a given point in time:

𝑃𝑒𝑟𝑐𝑒𝑛𝑡 𝑐𝑜𝑚𝑝𝑙𝑒𝑡𝑒 = 𝐸𝑉

𝐵𝐴𝐶

Page 70: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

70

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Performance indicators

• The values for PV, AC and EV are used in combination to

provide measures of whether or not work is being accomplished

as planned:

– Cost Variance (CV)

– Schedule Variance (SV)

– Cost Performance Index (CPI)

– Schedule Performance Index (SPI)

Page 71: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

71

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Cost variance

• The cost variance (CV) is defined as: 𝐶𝑜𝑠𝑡 𝑉𝑎𝑟𝑖𝑎𝑛𝑐𝑒 (𝐶𝑉) = 𝐸𝑉 − 𝐴𝐶

• Difference between what we should have paid for work actually

performed, and what was actually paid for work actually performed.

– It is an absolute indication of cost savings (against planned cost) or shortfall at

a particular stage of a project.

– A positive variance implies less money was spent for the work accomplished

than what was planned to be spent.

– A negative variance means more money was spent for the work accomplished

than what was planned.

Page 72: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

72

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Schedule variance

• The schedule variance (SV) is defined as: SV = EV − PV

• Indicates the degree to which the value of completed work differs

from the value of the planned work.

• A positive value for SV implies that we are ahead of schedule.

• A negative value implies that we are behind schedule.

Page 73: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

73

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Cost performance index

• The cost performance index (CPI) is defined as: 𝐶𝑃𝐼 =𝐸𝑉 𝐴𝐶

• Ratio of the earned value over the actual cost of completed work, or

a quotient of what we should have paid for work performed, and

what was actually paid for work actually performed.

• CPI values close to 1.0 provide a strong indication that the project is

within its defined budget.

• CPI values greater than 1 indicate that the cost of completing the

work is less than planned.

• Similarly, CPI values less that 1 indicate that the cost of completing

the work is higher than planned.

Page 74: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

74

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Schedule performance index

• The schedule performance index (SPI) is defined as: 𝑆𝑃𝐼 =EV PV

• Quotient of the earned value over the planned value and it indicates

the rate of progress: the efficiency with which the project is utilizing

scheduled resources.

• SPI values close to 1.0 indicate efficient execution of the project

schedule.

• SPI values greater than 1 are favorable.

• SPI values less than 1 are not favorable.

Page 75: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

75

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Estimate at completion

• The estimate at completion (EAC) is defined as:

𝐸𝐴𝐶 = 𝐵𝐴𝐶

𝐶𝑃𝐼

• Initially (before the project starts) our estimate is given by BAC. As

we embark on the project, EAC is the quotient of what we planned

to spend over what we are actually spending and it indicates what we

expect the job to cost.

Page 76: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

76

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Estimate to complete

• Estimate to complete is defined as:

𝐸𝑇𝐶 = 𝐸𝐴𝐶 − 𝐴𝐶

• At any given point in time, ETC is a comparison of the estimate of

the final cost (EAC) to what we have spent to date (AC). ETC

indicates how much more will have to be spent in order to complete

the project.

Page 77: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

77

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Getting the project back on track

• Usually, projects run into delays or other unexpected events.

• A project manager has the responsibility to recognize when this is

happening (or when this is about to happen).

• With minimum delay and minimum disruption to the project, the

project manager has the responsibility to mitigate the effects of these

events over the project.

• The overall duration of a project is determined by the current critical

path. Speeding up non-critical path activities will not have any effect

on the project completion date.

• What options might be available?

Page 78: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

78

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Getting the project back on track (cont.)

• Allocate more efficient resources on activities on the critical path (or

swapping resources between critical and non-critical activities), e.g.

swap experienced programmers with junior programmers.

• Note that adding a programmer to a team might be counter-

productive due to the time (and resources) required to bring the new

people on board with the project (Brooks’ Law)

• Resources can be available for longer (e.g. on weekends).

• People can work overtime

Page 79: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

79

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Getting the project back on track (cont.)

• Other options include overlapping certain activities so that the start

of one activity does not have to wait for completion of another.

• This can also apply to iterations, i.e. iteration N + 1 can start before

iteration N is completed.

• Yet another option (last resort?) can be to renegotiate the contract.

Page 80: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

80

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 1

• Consider the following activity diagram below:

Page 81: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

81

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 1: Progress review

• Assume that the project is being prepared for a progress review at

the end of the second quarter (today).

• According to the budget plan, at the end of second quarter, tasks 1,

3, 5, 6 must have been completed.

• Task 2 should have been completed by 2/3, task 4 should have been

completed by 40%, and task 7 should have been completed by 50%.

• The project manager reports that tasks 1-6 have been completed as

planned, except task 7, which is 10% complete.

• The project manager also reports that the amount of money already

spent to date is $10,000.

Page 82: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

82

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 1: Progress review

• Apply any and all appropriate performance indicators to provide an

analysis of the project status as of today in terms of 1) schedule and

2) budget.

• If your analysis presents a problematic situation, briefly describe your

recommendations to bring the project back to track.

Page 83: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

83

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 1: Progress review

• PV = (100% × 2, 000) + (2/3 × 6, 000) + (100% × 1, 000) +

(40% × 5, 000) + (100% × 1, 000) + (100% × 1, 500) + (50% ×

6, 000) = 14, 500.

• EV = (100% × 2, 000) + (2/3 × 6, 000) + (100% × 1, 000) +

(40% × 5, 000) + (100% × 1, 000) + (100% × 1, 500) + (10% ×

6, 000) = 12, 100.

• The project is behind schedule (since EV < PV).

• The project is under budget (since AC < EV).

Page 84: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

84

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 1: Performance indicators

• The performance indicators are calculated as follows:

• The Schedule Variance

(SV) = EV − PV = 12, 100 − 14, 500 = −2, 400.

• The Schedule Performance Index (SPI ) = 𝐸𝑉

𝑃𝑉= 0.82 < 1

• The Cost Variance

(CV) = EV − AC = 12, 100 − 10, 000 = +2, 100.

• The Cost Performance Index (CPI ) = 𝐸𝑉

𝐴𝐶= 1.21 > 1

Page 85: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

85

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 1: Bringing the project back on track

• As we are under budget, we can afford to pay people overtime

(to complete more tasks), or recruit more people (even though

this may not be desirable), or even to replace junior developers

with senior developers (to have more tasks accomplished).

Page 86: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

86

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 2

• Consider the following activity diagram below:

Page 87: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

87

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 2: Progress review

• Assume that the project is being prepared for a progress review at

the end of the second quarter (today).

• According to the budget plan, at the end of second quarter, tasks 1,

3, 5, 6 must have been completed.

• Task 2 should have been completed by 60%, task 4 should have been

completed by 1/2, and task 7 should have been completed by 40%.

• The project manager reports that tasks 1-6 have been completed as

planned, except task 7, which is 15% complete.

• The project manager also reports that the amount of money already

spent as of today is $10,000.

Page 88: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

88

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 2: Progress review

• Apply a full monitoring analysis.

• If your analysis presents a problematic situation, briefly describe your

recommendations to bring the project back to track.

Page 89: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

89

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 2: Progress review

• The project budget, BAC, is given by

Σ(PVk ) = 1,500 + 6,000 + 1,000 + 3,000 + 3,000 + 2,000+

7,000 + 8, 000 = 31, 500.

• The planned value, PV, of the project at this moment in time is

given by

PV = (100% × 1,500) + (60% × 6,000) + (100% × 1,000)+

(1/2 × 3,000) + (100% × 3,000) + (100% × 2,000)+ (40% ×

7,000) = 15,400.

Page 90: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

90

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 2: Basic parameters: Interpretation

• As of today (the end of second quarter), team members are expected to have

completed $15, 400 worth of work.

• Percent complete. The percent complete is given by

𝑃𝑉

𝐵𝐴𝐶=

15,400

31,500= 0.48

• As of today, the project is planned to be 48% completed.

• The earned value, EV, is given by

EV = (100% × 1, 500) + (60% × 6, 000) + (100% × 1, 000)+ (1/2 × 3,

000) + (100% × 3, 000) + (100% × 2, 000)+ (15% × 7, 000) = 13, 650.

• As of today, the work that the team members performed, cost (is worth)

$13,650.

Page 91: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

91

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 2: Basic parameters: Interpretation

• The percent complete is given by 𝐸𝑉

𝐵𝐴𝐶=

13,650

31,500= 0.43

• As of today, 43% of the project is completed.

• The actual cost, AC = 10, 000.

• As of today, the work that the team members performed cost

$10, 000.

Page 92: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

92

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 2: Performance indicators

• The performance indicators are calculated as follows:

• The Schedule Variance

(SV) = EV − PV = 13, 650 − 15, 400 = −1, 750.

• The Schedule Performance Index (SPI ) = 𝐸𝑉

𝑃𝑉=

13,650

15,400= 0.88 < 1

• As of today, the project is behind schedule. The team has completed 88% of what

it should have completed.

• The Cost Variance

(CV) = EV − AC = 13, 650 − 10, 000 = +3, 650.

• The Cost Performance Index (CPI ) = 𝐸𝑉

𝐴𝐶=

13,650

10,000= 1.36 > 1

• As of today, the project is under budget. We are getting $1.36 for every dollar that

we spend.

Page 93: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

93

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 2: Forecasting

• The estimate at completion, EAC, is given by 𝐵𝐴𝐶

𝐶𝑃𝐼=

31,500

1.36= 23,161.76

• This value is the estimation of cost at the end of project (Quarter4), based

on Cost Performance Index.

• The estimate to complete, ETC, is given by EAC − AC = 23161.76 − 10,

000 = 13161.76.

• This value represents the amount of money still to be spent.

• The variance at completion, VAC, is given by BAC − EAC = 31, 500 −

23161.76 = 8338.235.

• This value represents the difference between the planed cost at the

beginning of the project and the estimation of cost based on today’s CPI.

Page 94: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

94

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 3

• Consider the following activity diagram below:

Page 95: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

95

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 3: Progress review

• Assume that the project is being prepared for a progress review at

the end of the second quarter (today).

• According to the budget plan, at the end of second quarter, tasks 1,

3, 5, 6 must have been completed.

• Task 2 should have been completed by 2/3, task 4 should have been

completed by 40%, and task 7 should have been completed by 60%.

• The project manager reports that tasks 1-6 have been completed as

planned, except task 7, which is 15% complete.

• The project manager also reports that the amount of money already

spent to date is $15,000.

Page 96: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

96

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 3: Progress review

Page 97: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

97

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 3: Progress review

Page 98: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

98

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 3: Bringing the project back on track

• To correct the budget deficiencies, perform a forecasting assessment

of the project’s financial status

• EAC = 𝐵𝐴𝐶

𝐶𝑃𝐼= $34, 239.

• ETC = EAC − AC = $19, 239.

• VAC = BAC − EAC = −$2739.

– Since VAC < 0, this indicates that the whole project will be over budget based on the

estimates of the remaining work.

– It is therefore incorrect to recommend any actions that would result in more funding

being needed unless the stakeholders/development organization are willing to invest

more.

– For example, asking the current developers to work overtime or hire new developers

would actually worsen the budget situation.

Page 99: COMP 354: INTRODUCTION TO SOFTWARE …users.encs.concordia.ca/~gregb/home/PDF/sinnig-project...COMP 354: Introduction to Software Engineering 07-May-14 Daniel Sinnig, PhD • Activity

99

COMP 354: Introduction to Software Engineering

Daniel Sinnig, PhD 07-May-14

Example 3: Bringing the project back on track

• To correct the schedule deficiencies

– Renegotiate contract with stakeholders to reduce the scope of the project or

extend the delivery date;

– Reassign more skilled developers to critical tasks;

– Use reusable components to minimize the time of development (COTS/Open

Source).