39
CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

Embed Size (px)

DESCRIPTION

CS Test 1, Question 2 Academic researchers often mount the journal papers that they write on departmental web servers. The goal of the Collection System is to collect all the papers for a large university and load them into a central repository. This will be a record of research at the university, to be preserved for the long-term. The system will look at each departmental server, identify research papers, index them, and copy them to the central repository. (continued on next slide)

Citation preview

Page 1: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 1

CS 5150 Software Engineering

Lecture 7

Project Management

Page 2: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 2

Administration

Tests

Tests that are not collected in class will be available for pick up from Corinne Russell at 301 College Avenue.

Re-grade requests

• To request a re-grade, contact me after class or come to office hours.

• No request will be considered more than one week after the tests are returned.

• Grading mistakes will be corrected. Points will not be changed when the grade is determined by the grader's judgment.

Page 3: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 3

Test 1, Question 2

Academic researchers often mount the journal papers that they write on departmental web servers. The goal of the Collection System is to collect all the papers for a large university and load them into a central repository. This will be a record of research at the university, to be preserved for the long-term.

The system will look at each departmental server, identify research papers, index them, and copy them to the central repository.

(continued on next slide)

Page 4: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 4

Test 1, Question 2 (continued)

Here are some of the challenges that are expected:(a) As far as possible, the identification of research papers will be automated. The algorithm for identifying papers is not perfect and errors can be expected.(b) The system will attempt to identify the author of each paper automatically, and send an email message requesting permission to load the paper into the repository.(c) The algorithm for indexing the papers will attempt to extract information such as author, title, and date.(d) Because of errors in (a), (b), and (c), each paper will need human review before loading into the repository. It is important to provide a user interface that minimizes human effort required.

Page 5: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 5

Test 1, Question 2 (continued)

You are asked to recommend a software development process for the Collection System.

(a) i Is the modified waterfall model a good choice for developing this system? No

ii Give two reasons for your answer.(-) The agorithms for automatic processing will need to be tested with real data. This will require iteration.(-) The user interface will need testing with users. This will require iteration.

Note that, although the modified waterfall model expects changes during development, it aims at minimal changes and does not support full iteration.

Page 6: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 6

Test 1, Question 2 (continued)

(b) i Is iterative refinement leading to a single release of the system a good choice for developing this system? Yes

ii Give two reasons for your answer.

(+) Iterative refinement allows testing and revision of the user interface to minimize the human effort involved in review.

(+) Iterative refinement allows testing and tuning of the automatic algorithms.

Note 1. Thorough testing with real data and staff reviewers is essential.

Note 2. A single release does not preclude later maintenance.

Page 7: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 7

Test 1, Question 2 (continued)

ii Is incremental releases of small increments of software a good choice for developing this system? Possible, but not best

Discussion. Can the development be divided into short sprints each involving a team working through a full software cycle including planning, requirements analysis, design, coding, testing, and acceptance testing?

Answer. It is possible. Here are some possible sprints: 1. Automatic collection of papers in PDF from engineering

departments2. Human review of papers collected in 1.3. Automatic generation of emails.etc., etc.

Page 8: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 8

Test 1, Question 2 (continued)

(c) ii Give two reasons for your answer.

(+) Possible to divide the central system into increments that can be tested and accepted by the client separately (1 point)

(-) The details of the review process, with its user interface, will depend on the accuracy of the automated algorithms. This will require iteration.

Note. Each increment must be fully tested and accepted before it is considered complete.

Page 9: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 9

Project Management: 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, 1972

Page 10: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 10

Key Personnel: The Mythical Man Month

Adding more people may actually slow down a project

Adding more people adds communications complexity

• Some activities need a single mind.• Sometimes, the elapsed time for an activity can not be

shortened.

In computing, not all people are equal

• The best are at least 5 times more productive.• Some tasks are too difficult for everybody.

Page 11: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 11

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 12: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 12

The Challenge of Project Management

Clients wish to know:

What will the system do?

When will it be delivered?

What will it cost?

Examples:

• If the system is a product, marketing and development must be combined (e.g., Microsoft Office)

• If the system has to work with other systems, developments must be coordinated (e.g., embedded systems in an automobile)

(continued on next slide)

Page 13: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 13

The Challenge of Project Management (continued)

BUT:

Every software system is different

Estimating time and effort is full of errors, even when the system is well specified

Most systems are not well specified, or the specifications change during development

Page 14: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 14

Estimating: Analysis

Administrative computing department at Dartmouth used activity graphs for the 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 were on many activities (schedule conflicts)• Non-billable hours

Page 15: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 15

Standard Approach to Project Management

• The scope of the project is defined early in the process.

• The development is divided into tasks and milestones.

• Estimates are made of the time and resources needed for each task.

• The estimates are combined to create a schedule and a plan.

• Progress is continually reviewed against the plan, perhaps weekly.

• The plan is modified by changes to scope, time, resources, etc.

Page 16: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 16

Agile Approach to Project Management

• Planning is divided into high level release forecasting and low level detailed planning.

• Release planning is a best guess, high level view of what can be achieved it a sequence of time-boxes.

• For each time-box, the team plans what it can achieve.

• Release plans are continually modified, perhaps daily.

• Clients and developers take joint control of the release plans and choice of sprints.

Page 17: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 17

Common Aspects of all Approaches

Planning• Outline schedule during feasibility study (needed for CS

5150)• Fuller schedule for each part of a project (e.g., each iteration or

sprint)

Progress tracking• Regular comparison of progress against plan• Regular modification of the plan• Changes of scope, etc. made jointly by client and developers

Final analysis

• Analysis of project for improvements during next project (see Dartmouth example)

Page 18: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 18

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 19: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 19

Team-based Estimating

• The team often has the best understanding of what it can achieve in a single time-box or sprint.

• The team commits to the outcome of a sprint.

• The team must have an internal schedule to allocate tasks within a sprint.

• Since different teams work at different speeds it is common to estimate effort to achieve a specific goal in a numeric scale, not as time.

A CS 5150 project can be thought of as a single sprint.

Page 20: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 20

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 21: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 21

Methods for Task Based Project Planning

Critical Path Method, Gantt charts, etc.

• Build a work-plan from activity data.

• Display work-plan in graphical and tabular form.

Project planning software

• Maintain a database of activities and related data

• Calculate and display schedules

• Provide progress reports

Page 22: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 22

Task Based Project Planning: Terminology

Task

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

Event

The completion 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 23: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 23

Task Based Project Planning: Terminology

Deliverable

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

Milestone

Completion of a specified set of activities (e.g., delivery of a deliverable, completion of a process step, iteration, or sprint)

Page 24: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 24

A Simple Gantt Chart

Source: Microsoft using Excel

Page 25: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 25

Gantt Charts

Used for Small Projects, Single Time-Boxes, and Sprints

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

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

• The schedule 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 is 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 26: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 26

A More Complex Gantt Chart

Source: SmartDraw

Page 27: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 27

Activity Graph

An activity (task)

A dummy activity (dependency)

An event

A milestone

A scheduling technique that emphasizes dependencies

Page 28: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 28

Example: Activity Graph for a Distance Learning Course (part of a large project)

START

Edit 1

Script TV

Make TV

Edit 2

Prototype Software

WriteSoftware

DocumentSoftware

Mail

Plan TV

Plan 1

Write 1

Plan 2

Plan Software

Write 2

Typeset 1

Typeset 2

Print

Page 29: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 29

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 30: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 30

Critical Path Method

Uses an Activity Graph with single time estimate for each activity.

A standard method for managing large construction projects.

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

Page 31: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 31

Critical Path Method

The following slides work through the steps in calculating earliest and latest start dates.

Page 32: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 32

Time Estimates for Activities (Weeks)

6

4

2

2

3

3

3

3

82

1 1

4

12

12

1

4

Page 33: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 33

Earliest Event Dates and Earliest Start Dates

Earliest start date: the earliest date that it is possible to start an activity.

Earliest event date: the date that all the activities ending at that node will be completed, assuming that every activity begins at its earliest start date.

Earliest project completion date: the date on which the project is completed assuming that every activity begins on its earliest start date.

Page 34: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 34

Earliest Event Dates and 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

Earliest dates for an event are in red

Page 35: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 35

Latest Event Dates and Latest Start Dates

Latest start date: the latest date that it is possible to start an activity and still complete the project by the earliest project completion date.

Latest event date: the latest date that all the activities ending at that node must be completed, in order to complete the project by the earliest project completion date.

Page 36: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 36

Latest Event Dates and 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.

Latest event dates in blue

Page 37: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 37

Slack and Critical Path

Slack: the difference between the latest start date and the earliest start date of an activity

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

Critical path: a path through the graph where every activity has zero slack

If an activity on the critical path is not started on its earliest start date or takes longer than the predicted time to complete, then the project completion date is delayed.

Extra detail added October 3, 2011

Page 38: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 38

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

10 10

00 0

0

00

9

9

22

23

11

11

5

Slack in purple

Page 39: CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management

CS 5150 39

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.

Critical path in orange