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

35
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

Post on 21-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

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

1 CS 501 Spring 2005

CS 501: Software Engineering

Lecture 4

Project Management

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

2 CS 501 Spring 2005

Administration

Projects

• Announcements by project teams

Quiz 1

• Quiz 1 is next Thursday. Information is posted on the web site.

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

3 CS 501 Spring 2005

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 2005 CS 501: Software Engineering Lecture 4 Project Management

4 CS 501 Spring 2005

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

To provide visibility about the progress of a project

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

5 CS 501 Spring 2005

Aspects of Project Management

Planning

• Outline schedule during feasibility study

• Detailed schedule at the beginning of a project or phase of a project

Progress tracking

• REGULAR COMPARISON OF PROGRESS AGAINST PLAN

Final analysis

• Analysis of project for improvements during next project

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

6 CS 501 Spring 2005

Terminology

Deliverable

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

Milestone

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

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

7 CS 501 Spring 2005

Terminology

Activity

Part of a project that takes place over time (also known as a task).

Event

The end of a group of activities.

Dependency

An activity that cannot begin until some event is reached

Resource

Staff time, equipment, or other limited resources required by an activity.

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

8 CS 501 Spring 2005

General Approach to Project Planning

Identify deliverables and milestones

Divide project into activities (tasks)

For each task estimate:

• time to complete from when activity begins

• dependencies on events before beginning

• resource requirements

Build a model that uses this data to create a work-plan, including schedule, resource allocation, and flexibility

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

9 CS 501 Spring 2005

Project Planning Methods

Critical Path Method, Gantt charts, Activity bar charts, etc.

• Build a work-plan from activity data.

• Display work-plan in graphical form.

Project planning software (e.g., Microsoft Project)

• Maintain a database of activity data with input tools

• Calculate and display schedules

• Provide progress reports

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

10 CS 501 Spring 2005

Project Planning Methods

All project planning methods are best when:

1. Plan is updated regularly (e.g., weekly or 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 11: 1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

11 CS 501 Spring 2005

A Simple Gantt Chart

Source: Microsoft using Excel

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

12 CS 501 Spring 2005

A More Complex Gantt Chart

Source: SmartDraw

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

13 CS 501 Spring 2005

Gantt Charts

• Dates run along the top (days, weeks or months).

• Each row represents an activity. Activities may be scheduled sequentially, in parallel or overlapping.

• The scheduled for an activity is a horizontal bar. The left end marks the planned beginning of the task. The right end marks the expected end date.

• The chart may be updated by filling in each activity to a length proportional to the work accomplished.

• Progress to date can be compared with the plan by drawing a vertical line through the chart at the current date.

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

14 CS 501 Spring 2005

Activity Graph

An activity

A dummy activity

An event

A milestone

A scheduling technique that emphasizes dependencies

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

15 CS 501 Spring 2005

Example: Activity GraphAn Open University Course

Deliverables:

16 Written texts (bound in pairs)

8 Television programs

8 Radio programs

4 Computer programs

1 Home experimental kit

4 Assignments and sample solutions

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

16 CS 501 Spring 2005

Activity Graph (part)

Edit Unit 3

PrintUnit 3

Revise Unit 3

MailUnit 3

otheractivities

START END

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

17 CS 501 Spring 2005

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 18: 1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

18 CS 501 Spring 2005

Activity Graph (continued)

START

Edit Unit 3

ScriptTV 2

MakeTV 2

Edit Unit 4

Prototype Computer 1

ProgramComputer 1

DocumentComputer 1

Mail

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

19 CS 501 Spring 2005

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 20: 1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

20 CS 501 Spring 2005

Critical Path Method

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

earliest start date -- every activity begins at first possible time

latest start date -- every activity begins at the last possible time

slack -- difference between the latest and earliest start dates

A standard method for managing large construction projects.

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

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

21 CS 501 Spring 2005

Time Estimates for Activities (Weeks)

6

4

2

2

3

3

3

3

82

1 1

4

12

12

1

4

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

22 CS 501 Spring 2005

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

All activities beginning at a given event have the same earliest start date.

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

23 CS 501 Spring 2005

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

10

1817

2019

Each event must be achieved by the date shown or the final date will not be met.

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

24 CS 501 Spring 2005

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

Every activity on the critical path must begin on the earliest start date.

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

25 CS 501 Spring 2005

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

2

2

23

11

11

5

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

26 CS 501 Spring 2005

Estimating the Time for an Activity

With experienced staff, estimating the actual time to carry out a single 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 27: 1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

27 CS 501 Spring 2005

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 28: 1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

28 CS 501 Spring 2005

Final Analysis with Critical Path Method

Administrative computing department at Dartmouth used the Critical Path Method for implementation phase of major projects (plan developed after project was well-understood).

Experience: Elapsed time to complete projects was consistently 30% 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 29: 1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

29 CS 501 Spring 2005

Adding Resources to Activity Graph or Gantt Chart

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

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

30 CS 501 Spring 2005

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

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

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

31 CS 501 Spring 2005

Key Personnel: The Mythical Man Month

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 32: 1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

32 CS 501 Spring 2005

Open University Example:Flexibility

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.

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

33 CS 501 Spring 2005

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 management

Weekly staff meeting -- What did we expect to accomplish? What did we accomplish? What is expected for next week?

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

34 CS 501 Spring 2005

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 35: 1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management

35 CS 501 Spring 2005

Updating the Plan

A PROJECT PLAN IS USELESS IS IT IS NOT UPDATED:

• Whenever changes occur

• On a regular schedule (weekly or monthly)

The project manager needs the support of the head of the development team and the confidence of the team members.

A realistic, current project plan is an essential part of visibility.

*