Вы находитесь на странице: 1из 35

CS 5150

Software Engineering

Lecture 7

Project Management

CS 5150 1
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.

CS 5150 2
Test 1, Question 2

WYX is a web site to which qualified individuals are encouraged


to contribute information about the law. Contributors may write
original articles, or comment on and edit articles written by
others.
WYX wishes to encourage high-quality contributions by a wide
range of contributors. For this purpose, it plans to extend its
current computer system to provide incentives that will reward
participation. The incentives are of four categories:
(a) Points for certain types of activity. (b) Badges given as
recognition of specific accomplishments. (c) Rewards based on
the quality and extent of contribution. (d) Bonus rewards derived
from the other three categories.

CS 5150 3
Test 1, Question 2 (continued)

You are asked to recommend a software development


process for the proposed extension to the WYX system.
(a) i Is the modified waterfall model a good choice
for developing this system?
No
ii Give two reasons for your answer.
(-) The requirements are poorly understood, e.g. the
details of the incentive categories. This will probably
lead to major revisions of the system.
(-) The user interface will need testing with users. This
requires some form of iteration.

CS 5150 4
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?
No or Not very good but better than (a)
ii Give two reasons for your answer.
(+) Iterative refinement allows testing and revision of the user
interface.
(-) The commitment to a single release does not allow
modification of the incentive categories based on experience.

CS 5150 5
Test 1, Question 2 (continued)

(c) i Is incremental releases of small increments of software a


good choice for developing this system?
Yes
ii Give two reasons for your answer.
(+) Small incremental releases allow modification of the incentive
categories based on experience.
(+) If the incentive system is clearly a failure, the project can be
cancelled or extensively modified before great expenditure.
(d) What software development process would you recommend?
Option (c) – incremental releases

CS 5150 6
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

CS 5150 7
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

CS 5150 8
Aspects of Project Management

Planning
• Outline schedule during feasibility study
• Fuller schedule at the beginning of a project or for each
phase of a project (e.g., each iteration)
Progress tracking
• Regular comparison of progress against plan
• Regular updating of the plan
Final analysis
• Analysis of project for improvements during next project

CS 5150 9
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 or iteration,
incremental release)

CS 5150 10
Terminology

Activity
Part of a project that takes place over time (also known as
a task).
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.

CS 5150 11
General Approach to Project Planning

Identify deliverables and milestones


Divide project into activities (tasks)
For each activity estimate:
• time to complete from when activity begins
• dependencies on events before beginning
• resource requirements (e.g., personnel)
Build a model that uses this data to create a work-plan,
including schedule, resource allocation, and flexibility

CS 5150 12
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
• Maintain a database of activities and related data
• Calculate and display schedules
• Provide progress reports

CS 5150 13
A Simple Gantt Chart

Source: Microsoft using Excel

CS 5150 14
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 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 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.

CS 5150 15
A More Complex Gantt Chart

Source: SmartDraw
CS 5150 16
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.

CS 5150 17
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.

CS 5150 18
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 were on many activities (schedule conflicts)
• System ZZZ (non-billable hours)

CS 5150 19
Activity Graph

A scheduling technique that emphasizes dependencies

An activity (task)

A dummy activity (dependency)

An event

A milestone

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

Plan TV Script TV

Write 1 Edit 1 Make TV


START Typeset 1
Plan 1 Print
Mail
Plan 2 Typeset 2
Write 2 Edit 2
Document
Plan Write
Software
Software Software
Prototype Software

CS 5150 21
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.)

CS 5150 22
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.

CS 5150 23
Time Estimates for Activities (Weeks)

1 3 2 6

12 3 1 1

12 3
3 2 2
8
4
4

CS 5150 24
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.

CS 5150 25
Earliest Event Dates and Earliest Start Dates

Earliest dates for an


event are in red

1 4
1 5
3 2
12 15 17 6
3 23 24
20 1
12 22 23 25
0 1
12 15 3
3 2
12 17 19 2
8
4
8
4
4 17
CS 5150 26
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.

CS 5150 27
Latest Event Dates and Latest Start Dates

Each event must be achieved by the date


Latest event
dates in blue shown or the final date will not be met.

11 4
19 20
1 3 2 6
12 15 17 3
10 12 1
23 24 1 25
0 3
12 18
3 2
14 17 20 2
8
4 22
4
13 17
CS 5150 28
Slack and Critical Path

Slack: the difference between the latest start date and the
earliest start date of an activity
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.

CS 5150 29
Slack

Slack in
purple
1/11

10 4 10
1 12/12 15/15 17/17
6 2
3 0 2 0 3 25/25
3 22/23
0/0 12 0 1 23/24
0 1 1 1
122 12/14 17/17 19/20 13
3 2 1 25 0
2 8
4 9 0
4/13 17/17
4 9

CS 5150 30
Critical Path

Critical Every activity on the critical path must


path in
1/11 begin on the earliest start date.
orange

12/12 15/15 17/17

22/23 23/24 25/25


0/0
12/14 17/17 19/20

4/13 17/17

CS 5150 31
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

CS 5150 32
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.

CS 5150 33
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?

CS 5150 34
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).
The project manager needs the support of the head of
the development team and the confidence of the team
members.

CS 5150 35

Вам также может понравиться