1 cs 501 spring 2003 cs 501: software engineering lecture 4 project management

28
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

Upload: robert-baker

Post on 08-Jan-2018

214 views

Category:

Documents


0 download

DESCRIPTION

3 CS 501 Spring 2003 OS 360 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

TRANSCRIPT

Page 1: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

1 CS 501 Spring 2003

CS 501: Software Engineering

Lecture 4

Project Management

Page 2: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

2 CS 501 Spring 2003

Administration

Projects

• New project on Web site: Web Archiving

• Announcements by project teams

Page 3: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

3 CS 501 Spring 2003

OS 360

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

Page 4: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

4 CS 501 Spring 2003

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

Page 5: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

5 CS 501 Spring 2003

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 completeSub-contract activitiesRenegotiate deliverables

• Keep senior management informed (visibility).

Page 6: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

6 CS 501 Spring 2003

Project Planning Methods

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

These methods are best when:

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

2. The structure of the project is well understood

3. The time estimates are reliable

4. Activities do not share resources

Unfortunately, #2, #3, #4 rarely apply to software development

Page 7: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

7 CS 501 Spring 2003

Terminology

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)

Page 8: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

8 CS 501 Spring 2003

Example: The Critical Path MethodAn Open University Course

Deliverables:

16 Written texts (bound in pairs)8 Television programs8 Radio programs4 Computer programs1 Home experimental kit (scientific calculator)4 Assignments and sample solutions

Page 9: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

9 CS 501 Spring 2003

Activity Graph

An activity

A dummy activity

An event

A milestone

Page 10: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

10 CS 501 Spring 2003

Activity Graph (part)

Edit Unit 3

PrintUnit 3

Revise Unit 3

MailUnit 3

otheractivities

START END

Page 11: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

11 CS 501 Spring 2003

Activity Graph (continued)

Edit Unit 3

TypesetUnit 3

Revise Unit 3

MailUnits 3/4

otheractivities

Edit Unit 4

PrintUnits 3/4

Revise Unit 4

otheractivities

TypesetUnit 4

START

Page 12: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

12 CS 501 Spring 2003

Activity Graph (continued)

START

Edit Unit 3

ScriptTV 2

MakeTV 2

Edit Unit 4

Prototype Computer 1

ProgramComputer 1

DocumentComputer 1

Mail

Page 13: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

13 CS 501 Spring 2003

Scheduling: 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.

PERT/Cost

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

Page 14: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

14 CS 501 Spring 2003

Critical Path Method

Uses Activity Graph with single time estimate for each activity to estimate, for each event:

earliest start datelatest start data

and for each activity:slack

A standard method for managing large construction projects.

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

Page 15: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

15 CS 501 Spring 2003

Time Estimates for Activities (Weeks)

6

4

2

2

3

3

3

3

82

1 1

4

12

12

1

4

Page 16: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

16 CS 501 Spring 2003

Earliest Start Dates

6

4

2

2

3

3

3

3

82

11

4

12

12

1

4

0

1

12

12

4

17

19

23

5

2522

17

17

15

15

8

2023 24

Page 17: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

17 CS 501 Spring 2003

Latest Start Dates

6

4

2

2

3

3

3

3

82

11

4

12

12

1

11

12

14

13

15

20

23 24 25

4 22

0

17

17

19

10

1817

20

Page 18: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

18 CS 501 Spring 2003

Critical Path

0/0

1/11

12/12

12/14

4/13

15/15 17/17

17/17

17/17

19/20

22/23 23/24 25/25

Page 19: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

19 CS 501 Spring 2003

Slack

0/0

1/11

17/17

23/24

1

22

12/12

12/14

4/13

15/15 17/17

17/17 19/20

22/23 25/25

4

8

123 2

312

4

4

3

3

6

1 1

Slack of activity = (latest start)end - (earliest start)begin - (time estimate)

10 10

00 0

0

00

9

9

22

23

11

11

5

Page 20: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

20 CS 501 Spring 2003

Estimating the Time for an Activity

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.

Page 21: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

21 CS 501 Spring 2003

Start-up Time

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.

Page 22: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

22 CS 501 Spring 2003

Experience with Critical Path Method

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)

Page 23: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

23 CS 501 Spring 2003

Adding Resources to Activity Graph

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 trainingVacationsEquipment availability

Page 24: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

24 CS 501 Spring 2003

Using Critical Path Method for Resources

Assume every activity begins at earliest start date:

In each time period, calculate:resources requiredresources available

Identify shortage / surplus resources

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

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

Page 25: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

25 CS 501 Spring 2003

Key Personnel

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?

Page 26: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

26 CS 501 Spring 2003

Value of Scheduling Tools

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 managementWeekly staff meeting -- What did we expect to accomplish? What did we accomplish? What is expected for next week?

Page 27: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

27 CS 501 Spring 2003

Key Personnel: Schedule for Editor

Earliest Start Date Activity Weeks 15-16 Edit Unit 3Weeks 17-18 Edit Unit 4Weeks 19-20 Edit Unit 5Weeks 21-22 Edit Unit 6Week 15 Review draft of Unit 7Week 17 Review draft of Unit 8Week 19 Check proofs of Unit 3Week 21 Check proofs of Unit 4Weeks 18-19 Vacation

Page 28: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management

28 CS 501 Spring 2003

Flexibility: Open University Example

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.