CS 501: Software Engineering Project Management CS 501 Spring 2002 Lecture 4

advertisement

1

CS 501: Software Engineering

Lecture 4

Project Management

CS 501 Spring 2002

2

Administration

Next Tuesday

• Short Lecture: Managing Code and Documentation (Harris)

• Quiz

45 minutes open book and notes

2 questions on lectures and readings to date

CS 501 Spring 2002

OS 360

3

The operating system for the IBM 360 was two years late .

Question: How does a project get two years behind schedule?

Answer: One day at a time!

Fred Brooks Jr., The Mythical Man Month

CS 501 Spring 2002

4

The Aim of Project Management

To complete a project:

• On time

• On budget

• With required functionality

• To the satisfaction of the client

• Without exhausting the team

CS 501 Spring 2002

Terminology

5

Deliverable

Work product that is provided to the customer (report, presentation, documentation, code, etc.)

Activity

Part of a project that takes place over time.

Event

The beginning or end of an activity.

Milestone

Completion of a specified set of activities (e.g., delivery of a deliverable)

CS 501 Spring 2002

6

The Project Manager

• Create and maintain the schedule.

• Track progress against schedule.

• Keep some slack in the schedule (minimize risk ).

• Continually make adjustments:

Start activities before previous activity complete

Sub-contract activities

Renegotiate deliverables

• Keep senior management informed ( visibility ).

CS 501 Spring 2002

7

Project Planning Methods

The Critical Path Method, Gantt charts, Activity bar charts, etc. are roughly equivalent.

These methods are best when:

• Model is updated regularly (e.g., monthly)

• The structure of the project is well understood

• The time estimates are reliable

• Activities do not share resources

CS 501 Spring 2002

Example: An Open University Course

8

Deliverables:

1

4

16 Written texts (bound in pairs)

8 Television programs

8

4

Radio programs

Computer programs

Home experimental kit (scientific calculator)

Assignments and sample solutions

CS 501 Spring 2002

9

Scheduling: Activity Graph

An activity

A dummy activity

An event

A milestone

CS 501 Spring 2002

Activity Graph (part)

START other activities

Revise

Unit 3

Edit

Unit 3

Print

Unit 3

Mail

Unit 3

END

10

CS 501 Spring 2002

Activity Graph (continued) other activities

START

Revise

Unit 3

Edit

Unit 3 other activities

Revise

Unit 4

Edit

Unit 4

Typeset

Unit 3

Print

Units 3/4

Mail

Units 3/4

Typeset

Unit 4

11

CS 501 Spring 2002

START

12

Activity Graph (continued)

Script

TV 2

Edit

Unit 3

Make

TV 2

Edit

Unit 4

Prototype Computer 1

Mail

Document

Computer 1 Program

Computer 1

CS 501 Spring 2002

Background

PERT

Program Evaluation and Review Technique introduced by the

U.S. Navy in 1957 to support the development of its Polaris submarine missile program.

PERT/Time

Activity graph with three time estimates (shortest, most probable, longest) on each activity to compute schedules.

13

PERT/Cost

Added scheduling of resources (e.g., facilities, skilled people, etc.)

CS 501 Spring 2002

Critical Path Method

14

Uses Activity Graph with single time estimate for each activity to estimate, for each event: earliest start date latest start data and for each activity: slack

The standard method for managing large construction projects.

On big projects, activity graphs with more than 10,000 activities are common place.

CS 501 Spring 2002

Time Estimates for Activities (Weeks)

15

1

4

12

12

3

4

3

2

4

2

3

3

6

1

2

8

1

CS 501 Spring 2002

Earliest Start Dates

16

0

1

1

3

12

4

12

12

12

3

4

5

15

2

15

17

2

4

4

17

19

3

3

20

22

6

1

23

1

23 24

25

2

8

8

17

CS 501 Spring 2002

Latest Start Dates

17

10

0

11

4

1

3

12 15

12

12

14

3

18

17

4

13

2

4

2

19

20

17

3

20

3

6

23

1

24

1

25

2

22

17

8

CS 501 Spring 2002

Critical Path

18

0 / 0

1 / 11

12 / 12 15 / 15 17 / 17

22 / 23 23 / 24

25 / 25

12 / 14 17 / 17

4 / 13

19 / 20

17 / 17

CS 501 Spring 2002

Slack

19

1 / 11

Slack of activity

= (latest start) end

- (earliest start) begin

- (time estimate)

0 / 0

1

10

12 / 12

4

10

15 / 15 17 / 17

12

0

12

4

2

9

12 / 14

4 / 13

3 0

2

3

17 / 17

2 0

2

0

1

19 / 20

3

0

4 9

3

1

3

6

22 / 23

2

1

1

2

5

23 / 24

1 1

25 / 25

0

8

17 / 17

CS 501 Spring 2002

Estimating the Time for an Activity

20

With experienced staff, estimating the actual time to carry out a task is usually fairly accurate, but ...

The little bits and pieces are underestimated

• The time from almost "done" to completely "done" is much longer than anticipated. (There's just one thing to tidy up. I need to put the comments into better shape. I really should get rid of that patch.)

• The distractions are not planned for.

(My system crashed and I decided to upgrade the software. My child's school was closed because of snow. I spent the day showing visitors around.)

Some things have to be done twice.

CS 501 Spring 2002

Start-up Time

21

On a big project, the start-up time is typically three to six months:

• Personnel have to complete previous projects (fatigue) or be recruited.

• Hardware and software has to be acquired and installed.

• Staff have to learn new domain areas and software (slow while learning).

• Clients may not be ready.

CS 501 Spring 2002

Experience with Critical Path Method

22

Administrative computing department at Dartmouth used the

Critical Path Method for implementation phase of major projects.

Experience: Elapsed time to complete projects was consistently

25% to 40% longer than predicted by model.

Analysis:

• Some tasks not anticipated (incomplete understanding)

• Some tasks had to be redone (change of requirements, technical changes)

• Key personnel on many activities (schedule conflicts)

• System ZZZ (non-billable hours)

CS 501 Spring 2002

Adding Resources to Activity Graph

23

Each activity is labeled with resources, e.g.,

Number of people (e.g., 2 Java programmers)

Key personnel (e.g., chief system architect)

Equipment (e.g., 3 servers with specified software)

Facilities (e.g., video conference center)

Each resource is labeled with availability, e.g.,

Hiring and training

Vacations

Equipment availability

CS 501 Spring 2002

Using Critical Path Method for

Resources

Assume every activity begins at earliest start date:

In each time period, calculate: resources required resources available

Identify shortage / surplus resources

Adjust schedule acquire extra staff (e.g., consultants) rearrange schedule (e.g., change vacations) change order of carrying out activities

24

The earlier that a problem is known, the easier it is to fix.

CS 501 Spring 2002

Key Personnel

25

In computing, not all people are equal

• The best are at least 5 times more productive.

• Some tasks are too difficult for everybody.

Adding more people adds communications complexity

• Some activities need a single mind.

• Sometimes, the elapsed time for an activity can not be shortened.

What happens to the project if a key person is sick or quits?

CS 501 Spring 2002

26

Key Personnel: Schedule for Editor

Earliest Start Date

Weeks 15-16

Weeks 17-18

Weeks 19-20

Weeks 21-22

Week 15

Week 17

Week 19

Week 21

Weeks 18-19

Activity

Edit Unit 3

Edit Unit 4

Edit Unit 5

Edit Unit 6

Review draft of Unit 7

Review draft of Unit 8

Check proofs of Unit 3

Check proofs of Unit 4

Vacation

CS 501 Spring 2002

Flexibility: Open University Example

27

Schedule: Dates for broadcasting TV and radio programs are fixed. Printing and mailings can be accelerated if overtime is used.

Functionality: The course team can decide what goes into the components of the course.

Resources: The size of the course team can be increased slightly.

CS 501 Spring 2002

Value of Scheduling Tools

28

Planning discipline

• Identify all activities and inter-relationship

• Provide schedule for each resource (identify clashes)

• Early warning of difficulties (e.g., timing of equipment purchase)

Routine updating of schedule

• Focus on key milestones

• Visibility for management

Weekly staff meeting -- What did we expect to accomplish?

What did we accomplish? What is expected for next week?

CS 501 Spring 2002

Download