Effective Software Project Planning for Strategic Decision-Making

undefined
 
Software Project Planning
 
 
SWE economics analysis
(Boehm, 84):
 
n
throughout the software lifecycle, there
are many decision situations involving
limited resources
 
Examples
 
n
feasibility phase
how much should we invest in analyses?
n
plans and requirements phase
how rigorously should we specify
requirements?
n
design phase:
should we use existing sw which does not
completely meet the requriements?
n
test phase:
how much testing is enough?
 
Analyzing risk and uncertainty
 
n
can apply basic micro economic
analysis to these questions
n
in sw engineering, must make decisions
under conditions of uncertainty
n
can reduce uncertainty, and therefore
make better decisions, by 
buying
information
n
e.g. prototyping is a way of buying
information to reduce uncertainty about
risky functionality
 
Question must ask:
 
n
How much information-buying is
enough?
 
Project Planning
 
n
sw project management process begins
with 
project planning
 
n
objective of sw project planning - to
provide a framework for manager to
make reasonable 
estimates of
resources, costs and schedules
 
project estimation
 
n
first step in project planning
 
n
estimate resources, cost, and schedule
for sw development project
n
requires experience and access to
historical information
 
project estimation
 
n
estimation is risky business - lots of
uncertainty due to:
project complexity
project size
degree of structural uncertainty - degree to
which requirements are solidified
availability of historical information
n
risk - measured by degree of
uncertainty in quantitative estimates
 
project estimation
 
n
evolutionary process models - iterative
view of development
n
 
possible to revise the estimate
n
estimates made at beginning of sw
project
n
should be updated regularly
n
estimates should define “best case” and
“worst case”
 
Activities associated with
project planning
 
n
Software scope
n
resources
n
project estimation
n
decomposition
 
1.
 
software scope
 
n
want to establish a project scope that is
unambiguous and understandable at
management and technical levels
n
describes:
 function
performance
 constraints
 interfaces
 reliability
 
2.
 
resources
 
n
must estimate resources required to
accomplish the development effort
 
n
fig. 5.2
 
development resources
pyramid
 
a.  hw and sw tools
 
n
foundation of resources pyramid,
provides infrastructure to support
development
n
sw engineering environment
n
must prescribe the time-frame required
for hw and sw
n
verify that these resources will be
available
 
b.  reusable sw components
 
n
next level, can reduce development
costs
n
reuse considerations often ignored
n
can greatly reduce development time
 
c.  people - top of pyramid
 
n
select skills needed
 
each resource specified with 4
characteristics
 
n
1. description of resource
n
2. statement of availability
n
3. chronological time resource will be
needed
n
4. duration of time resource used
 
3.
 
project estimation
 
n
cost estimates must be provided up
front
n
but... the longer we wait, the more we
know, and the better our estimates
 
a.  use of decomposition
techniques:
 
n
divide and conquer approach
n
decompose project into major functions
and related swe activities
n
cost and effort estimates performed in
stepwise fashion
 
b.  empirical estimation models
 
n
can complement decomposition
techniques or used alone
n
model is based on historical data
n
examples: LOC, FP
n
SW cost estimation relies on good
historical data
 
4.
 
decomposition techniques
 
n
decompose the problem (i.e., sw project
estimation) into set of smaller problems
n
from chp. 3 - 2 types of decomposition
n
a.  decomposition of the problem
n
b.  decomposition of the process
n
b
e
f
o
r
e
 
d
e
c
o
m
p
o
s
i
t
i
o
n
,
 
m
u
s
t
 
u
n
d
e
r
s
t
a
n
d
p
r
o
j
e
c
t
 
s
c
o
p
e
 
a
n
d
 
g
e
n
e
r
a
t
e
 
e
s
t
i
m
a
t
e
 
o
f
p
r
o
j
e
c
t
 
s
i
z
e
n
accuracy of estimate strongly influenced by
accuracy of size estimate
 
Problem-based estimation
 
n
direct measure - LOC
n
indirect measure - FP
n
a.  begin with bounded statement of sw scope
n
b.  decompose sw into problem functions that
can each individually be estimated
n
c.  apply sizing measure to each function
e.g. LOC, FP, OO (classes, objects)
n
d.  apply baseline productivity metrics (e.g.,
LOC/pm, FP/pm)
 
decomposition
 
n
decomposition is different for LOC vs.
FP:
n
for LOC - decomposition must be
detailed
n
for FP - looking at input, output,
inquiries, data files, interfaces etc.
n
planner uses historical data or intuition
(not recommended)
 
estimation
 
n
make 3 estimates for each function:
n
optimistic, most likely, pessimistic
n
then compute 3 point or expected value
n
see 5.1
n
then apply historical LOC or FP
productivity data (e.g. FP/pm)
 
Process-based estimation
 
n
most common technique for estimating
project
n
process is decomposed into a small set
of activities or task
n
 
effort required to complete each is
estimated
 
Process-based estimation
 
n
a.  determine sw functions using project
scope document
n
b.  meld sw process activities and
functions
n
 
determine sw process activities that
must be performed for each function
n
 
functions and process activities can
be part of a table - see fig 3.2
 
Process-based estimation
 
n
c.  apply average labor rates to the
effort estimated for each process
activity
n
d.  compute costs and effort for each
function and software process activitey
n
can perform process-based estimate
independently of LOC or FP
n
 
then have 2-3 estimates of cost and
effort to compare and reconcile
 
5.
 
empirical estimation models
 
n
T
h
e
 
C
O
C
O
M
O
 
M
o
d
e
l
:
 
C
o
n
s
t
r
u
c
t
i
v
e
C
o
s
t
 
M
o
d
e
l
 
[
B
o
e
h
m
,
 
1
9
8
4
]
 
n
hierarchy of 3 increasingly detailed
software estimation models:
 
model 1
 
n
Basic COCOMO model
n
computes effort and cost estimated as
LOC
 
model 2
 
n
Intermediate COCOMO model
n
computes effort and cost using a set of
cost drivers
n
includes subjective assessments of
product, hw, personnoel, and project
attributes
 
model 3
 
n
Advanced COCOMO model
n
incorporates the intermediate version
with an assessment of the cost dirver’s
impact on each step (analysis, design,
etc.)
 
Steps for intermediate level (see
Boehm, 1984 for detailed example):
 
n
Four steps
 
Step 1
 - Nominal effort
estimation
 
n
determine project’s development mode
(organic, semidetached, embedded)
n
estimate size of the project
 
Step 2
 - Determine effort
multipliers
 
n
15 cost drivers within model - each has
a rating scale and a set of effort
multipliers which modifies step 1
estimate
 
Step 3 
- Estimate development
effort
 
n
compute estimated development effort =
nominal effort X product of effort
multipliers for 15 cost driver attributes
 
Step 4
 - Estimate related project
factors
 
n
model has additional costing estimation
relationships for computing dollar cost
of project and for breakdown by lifecycle
phase and by type of project acitivity
n
can estimate project schedule
 
9 Management Guidelines for better
cost estimating (Lederer and Prasad)
 
n
paper reports results of survey on cost
estimating practices of 115 computer
professionals
 
Need for better estimates
 
n
63% of all large projects (over $50,000)
significantly overrun cost estimates
n
only 25% of projects completed at cost
reasonably close to project estimate
 
Guidelines
 
n
Based on results of survey, authors
developed 9 guidelines for better cost
estimation
 
1.
 
Assign the initial estimating
task to the final developers
 
n
2 approaches:
n
a.
 
separate-function approach
use experienced group of estimators to
conduct the feasibility study and prepare
initial project estimate
n
b.
 
combined-function approach
final analysts and programmers prepare
initial estimate during feasibility study
get more accurate estimates with this
approach
 
2.
 
Delay finalizing the initial estimate
until the end of a thorough study
 
n
often prepare initial cost estimate at
beginning of project and then revise it
(repeatedly) during the project
n
found that revision of estimate does not
increase accuracy
n
people seem to look to the original
estimate, not the revised estimate,
when judging cost estimation accuracy -
- so better to be right the first time!
 
3.
 
Anticipate and control user
changes
 
n
when lots of changes, like trying to
estimate cost of a moving target
n
estimators need to thoroughly
understand user requirments before
they estimate its cost
should be able to reduce and control
frequent change requests
discourage unnecessary user changes -
charge extra!
 
4.
 
Monitor the progress of the
proposed project
 
 
5.
 
Evaluate project progress by
using independent auditors
 
n
most projects usually monitored by
those involved in it
n
more accurate estimates occur when
independent auditors are present
 
6.
 
Use the estimate to evaluate
project personnel
 
n
cost estimating used more for project
planning and control than for evaluation
of personnel
n
could use positive rewards for
personnel who provide accurate
estimates and for those that meet the
estimates
 
7.Computing management should
carefully study and approve the cost
estimate
 
n
need to conduct a cost/benefit review
before system development begins
 
8.
 
Rely on documented facts, standards, and
simple arithmetic formulas rather than guessing,
intuition, personal memory, and complex formulas.
 
n
greater accuracy found when do the
above
n
less accuracy when rely on intuition and
personal memory, which is customary
 
9.
 
Don’t rely on cost estimating
software for an accurate estimate.
 
n
packages don’t improve estimation, and
lower the satisfaction level of the
estimators
Slide Note
Embed
Share

Software project planning involves making key decisions under limited resources throughout the project lifecycle. Analyzing risks, uncertainties, and uncertainties allows for better decision-making, often through buying information like prototyping. Project estimation is a crucial initial step that requires experience, historical data, and careful consideration of various uncertainties. Regular updates and defining best and worst-case scenarios are essential in the evolutionary process models for project estimation.


Uploaded on Jul 26, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Software Project Planning

  2. SWE economics analysis (Boehm, 84): throughout the software lifecycle, there are many decision situations involving limited resources

  3. Examples feasibility phase how much should we invest in analyses? plans and requirements phase how rigorously should we specify requirements? design phase: should we use existing sw which does not completely meet the requriements? test phase: how much testing is enough?

  4. Analyzing risk and uncertainty can apply basic micro economic analysis to these questions in sw engineering, must make decisions under conditions of uncertainty can reduce uncertainty, and therefore make better decisions, by buying information e.g. prototyping is a way of buying information to reduce uncertainty about risky functionality

  5. Question must ask: How much information-buying is enough?

  6. Project Planning sw project management process begins with project planning objective of sw project planning - to provide a framework for manager to make reasonable estimates of resources, costs and schedules

  7. project estimation first step in project planning estimate resources, cost, and schedule for sw development project requires experience and access to historical information

  8. project estimation estimation is risky business - lots of uncertainty due to: project complexity project size degree of structural uncertainty - degree to which requirements are solidified availability of historical information risk - measured by degree of uncertainty in quantitative estimates

  9. project estimation evolutionary process models - iterative view of development possible to revise the estimate estimates made at beginning of sw project should be updated regularly estimates should define best case and worst case

  10. Activities associated with project planning Software scope resources project estimation decomposition

  11. 1. software scope want to establish a project scope that is unambiguous and understandable at management and technical levels describes: function performance constraints interfaces reliability

  12. 2. resources must estimate resources required to accomplish the development effort fig. 5.2 development resources pyramid

  13. a. hw and sw tools foundation of resources pyramid, provides infrastructure to support development sw engineering environment must prescribe the time-frame required for hw and sw verify that these resources will be available

  14. b. reusable sw components next level, can reduce development costs reuse considerations often ignored can greatly reduce development time

  15. c. people - top of pyramid select skills needed

  16. each resource specified with 4 characteristics 1. description of resource 2. statement of availability 3. chronological time resource will be needed 4. duration of time resource used

  17. 3. project estimation cost estimates must be provided up front but... the longer we wait, the more we know, and the better our estimates

  18. a. use of decomposition techniques: divide and conquer approach decompose project into major functions and related swe activities cost and effort estimates performed in stepwise fashion

  19. b. empirical estimation models can complement decomposition techniques or used alone model is based on historical data examples: LOC, FP SW cost estimation relies on good historical data

  20. 4. decomposition techniques decompose the problem (i.e., sw project estimation) into set of smaller problems from chp. 3 - 2 types of decomposition a. decomposition of the problem b. decomposition of the process before decomposition, must understand project scope and generate estimate of project size accuracy of estimate strongly influenced by accuracy of size estimate

  21. Problem-based estimation direct measure - LOC indirect measure - FP a. begin with bounded statement of sw scope b. decompose sw into problem functions that can each individually be estimated c. apply sizing measure to each function e.g. LOC, FP, OO (classes, objects) d. apply baseline productivity metrics (e.g., LOC/pm, FP/pm)

  22. decomposition decomposition is different for LOC vs. FP: for LOC - decomposition must be detailed for FP - looking at input, output, inquiries, data files, interfaces etc. planner uses historical data or intuition (not recommended)

  23. estimation make 3 estimates for each function: optimistic, most likely, pessimistic then compute 3 point or expected value see 5.1 then apply historical LOC or FP productivity data (e.g. FP/pm)

  24. Process-based estimation most common technique for estimating project process is decomposed into a small set of activities or task effort required to complete each is estimated

  25. Process-based estimation a. determine sw functions using project scope document b. meld sw process activities and functions determine sw process activities that must be performed for each function functions and process activities can be part of a table - see fig 3.2

  26. Process-based estimation c. apply average labor rates to the effort estimated for each process activity d. compute costs and effort for each function and software process activitey can perform process-based estimate independently of LOC or FP then have 2-3 estimates of cost and effort to compare and reconcile

  27. 5. empirical estimation models The COCOMO Model: Constructive Cost Model [Boehm, 1984] hierarchy of 3 increasingly detailed software estimation models:

  28. model 1 Basic COCOMO model computes effort and cost estimated as LOC

  29. model 2 Intermediate COCOMO model computes effort and cost using a set of cost drivers includes subjective assessments of product, hw, personnoel, and project attributes

  30. model 3 Advanced COCOMO model incorporates the intermediate version with an assessment of the cost dirver s impact on each step (analysis, design, etc.)

  31. Steps for intermediate level (see Boehm, 1984 for detailed example): Four steps

  32. Step 1 - Nominal effort estimation determine project s development mode (organic, semidetached, embedded) estimate size of the project

  33. Step 2 - Determine effort multipliers 15 cost drivers within model - each has a rating scale and a set of effort multipliers which modifies step 1 estimate

  34. Step 3 - Estimate development effort compute estimated development effort = nominal effort X product of effort multipliers for 15 cost driver attributes

  35. Step 4 - Estimate related project factors model has additional costing estimation relationships for computing dollar cost of project and for breakdown by lifecycle phase and by type of project acitivity can estimate project schedule

  36. 9 Management Guidelines for better cost estimating (Lederer and Prasad) paper reports results of survey on cost estimating practices of 115 computer professionals

  37. Need for better estimates 63% of all large projects (over $50,000) significantly overrun cost estimates only 25% of projects completed at cost reasonably close to project estimate

  38. Guidelines Based on results of survey, authors developed 9 guidelines for better cost estimation

  39. 1. Assign the initial estimating task to the final developers 2 approaches: a. separate-function approach use experienced group of estimators to conduct the feasibility study and prepare initial project estimate b. combined-function approach final analysts and programmers prepare initial estimate during feasibility study get more accurate estimates with this approach

  40. 2. until the end of a thorough study Delay finalizing the initial estimate often prepare initial cost estimate at beginning of project and then revise it (repeatedly) during the project found that revision of estimate does not increase accuracy people seem to look to the original estimate, not the revised estimate, when judging cost estimation accuracy - - so better to be right the first time!

  41. 3. Anticipate and control user changes when lots of changes, like trying to estimate cost of a moving target estimators need to thoroughly understand user requirments before they estimate its cost should be able to reduce and control frequent change requests discourage unnecessary user changes - charge extra!

  42. 4. Monitor the progress of the proposed project

  43. 5. Evaluate project progress by using independent auditors most projects usually monitored by those involved in it more accurate estimates occur when independent auditors are present

  44. 6. Use the estimate to evaluate project personnel cost estimating used more for project planning and control than for evaluation of personnel could use positive rewards for personnel who provide accurate estimates and for those that meet the estimates

  45. 7.Computing management should carefully study and approve the cost estimate need to conduct a cost/benefit review before system development begins

  46. 8. simple arithmetic formulas rather than guessing, intuition, personal memory, and complex formulas. Rely on documented facts, standards, and greater accuracy found when do the above less accuracy when rely on intuition and personal memory, which is customary

  47. 9. Dont rely on cost estimating software for an accurate estimate. packages don t improve estimation, and lower the satisfaction level of the estimators

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#