Software Project Management
Download
Report
Transcript Software Project Management
SW Project Management
WBS and Project Estimation
INFO 420
Dr. Jennifer Booker
INFO 420
Chapter 6
1
Time for the details…
Now we have outlined the project in its
charter, clarified it with a scope
description, and thought about the right
organization needed to manage it
Time to figure out the details of what is
needed to make this project work
INFO 420
Chapter 6
2
Project time management
This is formally (PMBOK) known as
project time management, which includes
definition – what tasks are needed
to produce project scope deliverables
Activity sequencing – put them in order
Activity resource estimation – who needs
to perform the tasks? How many of them?
Activity
INFO 420
Chapter 6
3
Project time management
duration estimation – calendar time
for each task
Schedule development – put together a
schedule with all the above information in it
Schedule control – define processes to
control changes to the schedule
Activity
For now we’ll focus on activity definition
and estimation
INFO 420
Chapter 6
4
WBS
A Work Breakdown Structure (WBS) gives
a hierarchical structure to project tasks
Allows
more detail to be added later
The WBS decomposes the work to be
done to accomplish each deliverable
Each
smaller unit is a work package, which
may have a person assigned to manage it
INFO 420
Chapter 6
5
WBS Overview
Since the scope defined the deliverables,
the WBS’ work packages can each be
focused on creating some deliverable
Project (task number 0)
[for
each] Phase (tasks 1.0, 2.0, 3.0, …)
[for each] Deliverable (tasks 1.1, 1.2, 1.3, 2.1, …)
Task(s) to create deliverable (tasks 1.1.1, 1.1.2, etc.
Milestone - Approval of deliverable (follows task, 1.1.3)
INFO 420
Milestone – end of phase review (follows e.g. 1.4)
Chapter 6
6
WBS Overview
Each phase might have many deliverables
The
number of tasks to create a deliverable
could be from one to dozens
Milestones are major decision points,
typically to approve a deliverable, or
approve the end of a phase
Milestones
have zero duration
Milestones are great focal points for the team
INFO 420
Chapter 6
7
WBS Overview
Tasks associated with the SDLC typically
are grouped into life cycle phases or
iterations or time boxes
Some support tasks for project processes
might run throughout the project (project
management, CM, risk management, etc.)
But
INFO 420
they still focus on producing deliverables
Chapter 6
8
WBS Overview
Some deliverables could entail many
individual items, such as test results, or
documentation, or logical design
It’s
up to you to determine exactly what is
needed for that project to fulfill that category
of deliverable – a key judgment call
Then define the steps needed to produce and
approve each deliverable
INFO 420
Chapter 6
9
Naming tasks
For everything below the Phase level in
the WBS, start task and milestone names
with a verb
“Data
Flow Diagram” doesn’t tell me if you’re
creating it, reviewing it, getting it approved,
updating it, or something else
The package level task might be to “Develop
Data Flow Diagram” for example
INFO 420
Chapter 6
10
Milestones
Milestones also provide a stopping point
to reflect on the project’s progress
Phase
milestones allow consideration if
continuing the project is really a good idea
Milestones are a risk management tool
By getting customer (sponsor?) involvement,
they also help manage expectations and get
an outside quality review
INFO 420
Chapter 6
11
WBS guidelines
Some general rules to help produce a
better WBS
WBS
What do these tasks produce?
WBS
INFO 420
is deliverable oriented
supports the MOV
All lower level tasks should be enough to
complete the next higher level task
Chapter 6
12
WBS guidelines
Pick
a good consistent level of detail
Get experts to help develop the WBS
Who knows what tasks are really needed?
Keep
track of lessons learned to develop a
better WBS the next time
INFO 420
Chapter 6
13
Estimation
After defining the tasks, next estimate how
much effort is needed for each
This
is the hardest part of software project
management
Often a blend of approaches is used –
don’t rely on one method
Eggs,
INFO 420
one basket, that problem
Chapter 6
14
Estimation
We’ll look at several approaches for doing
task estimation
Guesstimating
Delphi
technique
Time boxing
Top-down estimating
Bottom-up estimating
INFO 420
Chapter 6
15
Guesstimating
Often estimations are made without any
formal basis, so we politely call them
guesstimates
Don’t
do this!
Often fails to account for key tasks, produces
optimistic estimates, or may be flat out wrong
INFO 420
Chapter 6
16
Delphi technique
This is an average-expert-guessconsensus method for estimating
1.
Collect some experts
2. Ask them to estimate the tasks
3. Compare the estimates
4. Ask them why some estimates were much
higher or lower than the others
INFO 420
Chapter 6
17
Delphi technique
5.
Repeat steps 2-4 until the estimates are
fairly close
6. Average the estimates, and use that for
your answer
Sounds dopey?
Maybe,
but it’s fairly accurate, though time
consuming to generate
INFO 420
Chapter 6
18
Time boxing
Time boxing, in this context, refers to
setting a fixed duration for the task
Get
as much done as possible during that
time box
Time’s up? You’re done.
Often used when strict time constraints
exist, but scope may suffer
INFO 420
Chapter 6
19
Top-down estimating
Often projects are given a broad budget
($X and Y months)
Can
use this to break down how much time
and effort each phase gets, and allocate effort
to tasks accordingly
McConnell (ISBN 1556159005) has guidance on
the percent of a project’s effort and schedule
devoted to each phase; or see heuristics
INFO 420
Chapter 6
20
Bottom-up estimating
Many projects are estimated from the
bottom up, i.e. estimate each task
individually, and add them up!
Often exceeds the overall budget for a
project, so top-down and bottom-up are
both used to find a happy medium
INFO 420
Chapter 6
21
Other approaches
Analogous estimation estimates tasks
based on similar past projects
Often
very accurate, but needs history!
Personally, I’ve noted that estimates follow
a kilo-to-lb scaling rule
If
you know how long a task should take,
double it and add a little more
INFO 420
Chapter 6
22
Brooks’ Law
“Adding people to a late software project
makes it later”
--
from the legendary Mythical Man-Month
book by Frederick Brooks
Why?
INFO 420
Chapter 6
23
Metrics
Metrics just refers to measuring something
In the context of software development,
we want to measure important aspects of
what we’re developing
Size
Effort
(hence cost)
Schedule
Quality (defects)
INFO 420
Chapter 6
24
Size
The two main measures of software size
are Lines of Code (LOC) or function points
LOC
has the strongest correlation to
development time and effort. Period.
Need to define consistent rules for ‘what is a LOC’
Function
points are a language-independent
measure of system complexity and size
INFO 420
Chapter 6
25
Function points
Function points are an internationally
recognized way to measure system size
Based
on counting how many and how
complex parts of the system will be
Types of parts are
Internal
logical files
External interface files
INFO 420
Chapter 6
26
Function points
External
inputs
External outputs
External inquiries
Each part is measured on a hi/med/lo
complexity scale, and has function points
assigned
Then add up the raw function points
INFO 420
Chapter 6
27
Function points
Assess 14 general system characteristics
(GSC) on a scale from 0 to 5 (not present
to strong influence)
The
GSC score contributes to an adjustment
factor, which is multiplied by the raw total
function point count
Got that?
Or
INFO 420
can estimate equivalent LOC from FP
Chapter 6
28
COCOMO
Several tools have been developed for
estimating software projects
A famous and free one is COCOMO
First
published by Barry Boehm (USC, 1981)
Based on the type and size of product, team
expertise, and many other factors
Not terribly accurate, but better than a guess
INFO 420
Chapter 6
29
Heuristics
A heuristic is a rule of thumb, just sounds
better
Such
as my kilo-to-lb scaling rule
Lots of heuristics are available, but their
accuracy and relevance to your project is
questionable
INFO 420
Chapter 6
30
Estimation tools
There are other estimation tools out there
SLIM
Cost*Xpert
Etc.
None are as accurate as having historic
data, but they’re better than a wild guess
INFO 420
Chapter 6
31
So what’s the best way to
estimate?
There is no one answer; that’s why this is
the hardest part of software management!
Try several approaches, and throw out
outliers
Be wary of adjusting estimates to get ‘the
right answer’ to make your boss happy
INFO 420
Chapter 6
32