CS 5150 Software Engineering Project Management Lecture 7

advertisement
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
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)
CS 5150
3
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.
CS 5150
4
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.
CS 5150
5
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.
CS 5150
6
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
departments
2. Human review of papers collected in 1.
3. Automatic generation of emails.
etc., etc.
CS 5150
7
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.
CS 5150
8
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
CS 5150
9
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.
CS 5150
10
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
11
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)
CS 5150
12
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
CS 5150
13
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
CS 5150
14
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.
CS 5150
15
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.
CS 5150
16
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)
CS 5150
17
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
18
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.
CS 5150
19
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
20
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
CS 5150
21
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.
CS 5150
22
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)
CS 5150
23
A Simple Gantt Chart
Source: Microsoft using Excel
CS 5150
24
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.
CS 5150
25
A More Complex Gantt Chart
Source: SmartDraw
CS 5150
26
Activity Graph
A scheduling technique that emphasizes dependencies
An activity (task)
A dummy activity (dependency)
An event
A milestone
CS 5150
27
Example: Activity Graph for a Distance Learning
Course (part of a large project)
Script TV
Plan TV
Write 1
Edit 1
START
Typeset 1
Plan 1
Plan 2
Plan
Software
Make TV
Print
Write 2
Edit 2
Typeset 2
Document
Software
Mail
Write
Software
Prototype Software
CS 5150
28
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
29
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
30
Critical Path Method
The following slides work through the steps in calculating
earliest and latest start dates.
CS 5150
31
Time Estimates for Activities (Weeks)
4
1
3
2
6
12
3
12
3
3
2
4
1
1
2
8
4
CS 5150
32
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
33
Earliest Event Dates and Earliest Start Dates
Earliest dates for an
event are in red
1
1
12
4
3
5
15
2
17
3
12
0
12
12
3
15
17
6
20
22
23 24
1
23
3
2
19
2
4
4
CS 5150
4
25
1
8
8
17
34
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
35
Latest Event Dates and Latest Start Dates
Each event must be achieved by the date
shown or the final date will not be met.
Latest event
dates in blue
11
1
12
10
0
4
3
15
2
19 20
17
3
12
23
12
14
3
13
1
24 1
3
18
17
2
4
CS 5150
6
4
20
2
25
8
22
17
36
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
CS 5150
37
Slack
Slack in
purple
1/11
10
1 12/12
4 10
15/15
17/17
6 2
25/25
3 0
2 0
3
22/23
3
0/0 12 0
1 23/24
0
1 1
1
122 12/14
13
17/17
19/20
3
2 1
25 0
2
8
4 9
0
4/13
17/17
4 9
CS 5150
38
Critical Path
Critical
path in
orange
1/11
12/12
Every activity on the critical path must
begin on the earliest start date.
15/15
17/17
22/23
0/0
12/14
4/13
CS 5150
17/17
23/24
25/25
19/20
17/17
39
Download