Software Project Planning Infsy 570 Dr. R. Ocker.

Post on 22-Dec-2015

217 views 1 download

Tags:

Transcript of Software Project Planning Infsy 570 Dr. R. Ocker.

Software Project Planning

Infsy 570

Dr. R. Ocker

SWE economics analysis (Boehm, 84): throughout the software lifecycle, there

are many decision situations involving limited resources

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?

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

Question must ask:

How much information-buying is enough?

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

project estimation

first step in project planning

estimate resources, cost, and schedule for sw development project

requires experience and access to historical information

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

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”

Activities associated with project planning Software scope resources project estimation decomposition

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

2. resources

must estimate resources required to accomplish the development effort

fig. 5.2 development resources pyramid

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

b. reusable sw components

next level, can reduce development costs

reuse considerations often ignored can greatly reduce development time

c. people - top of pyramid

select skills needed

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

3. project estimation

cost estimates must be provided up front

but... the longer we wait, the more we know, and the better our estimates

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

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

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

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)

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)

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)

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

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

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

5. empirical estimation models

The COCOMO Model: Constructive Cost Model [Boehm, 1984]

hierarchy of 3 increasingly detailed software estimation models:

model 1

Basic COCOMO model computes effort and cost estimated as

LOC

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

model 3

Advanced COCOMO model 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):

Four steps

Step 1 - Nominal effort estimation determine project’s development mode

(organic, semidetached, embedded) estimate size of the project

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

Step 3 - Estimate development effort compute estimated development effort

= nominal effort X product of effort multipliers for 15 cost driver attributes

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

9 Management Guidelines for better cost estimating (Lederer and Prasad)

paper reports results of survey on cost estimating practices of 115 computer professionals

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

Guidelines

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

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

2. Delay finalizing the initial estimate until the end of a thorough study

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!

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!

4. Monitor the progress of the proposed project

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

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

7.Computing management should carefully study and approve the cost estimate 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.

greater accuracy found when do the above

less accuracy when rely on intuition and personal memory, which is customary

9. Don’t rely on cost estimating software for an accurate estimate. packages don’t improve estimation, and

lower the satisfaction level of the estimators

Words of wisdom

there is no way a cost estimation technique can compensate for the lack of definition or understanding of the sw job to be done

Words of wisdom

there is no magic formula that will provide an easy and accurate substitute for the process of thinking through and fully understanding the nature of the software product to be developed

Words of wisdom

unless a software project has clear definitions of its key milestones and realistic estimates of the time and money it will take to achieve them, there is no way that a project manager can tell whether the project is under control or not