Software Engineering Lecture 5: Project Planning.

Post on 18-Jan-2018

225 views 0 download

description

The Challenge A good project manager has: ability to anticipate what will go wrong courage to estimate when the future is cloudy “courteous stubbornness to make people wait for a good product” [From Brooks, 1975]

Transcript of Software Engineering Lecture 5: Project Planning.

Software Engineering

Lecture 5: Project Planning

Today’s Topics Risk in Estimation Planning Objectives Customer Interviews Estimation Examples Make-Buy Decision

The ChallengeA good project manager has:

• ability to anticipate what will go wrong

• courage to estimate when the future is cloudy

• “courteous stubbornness to make people wait for a good product”

[From Brooks, 1975]

Risk in Estimation Inherent risk implies uncertainty

• project complexity• project size• structural uncertainty

Availability of historical information? Variability in requirements implies instability in

cost and schedule!

Risk in Estimation (2)

“If you can’t tell me exactly whatyou need before I build it, chances are the finished system will take longer and cost more.”

• Example: Catalyst vocabulary size (34K estimated, 65K+ actual)

Project Planning Objectives Framework for estimation

• resources, cost, schedule

Life-cycle persistence• plan is updated periodically

“Best Case” vs. “Worst Case”• possible outcomes are bounded

Customer Interviews: Scope

Overall goals and benefits• Who is requesting the work?• Who will use the solution?• What are the economic benefits? (ROI)• Is there another source for a solution?

Customer Interviews [2]

Problem and solution• What problems will the solution address?• How to characterize “good” output?• Can you show me the specific environment of use?• Are there special issues or constraints?

Customer Interviews [3]

Meta-Questions• Are you the right person to ask?• Are the foregoing questions relevant?• Who else should I talk to?• What else should I ask about?

Scoping Language Systems Details hard for customer to grasp

• lexicon size, ambiguity, …

Hard to define “good” output• accuracy & style are subjective!

Feasibility prototype• corpus / domain analysis can help

Language Domain Analysis Ask customer for text samples Gather frequency data Build sentence index (KWIC) Analyze high-frequency terms Estimate lexicon complexity

• number of terms, features/term, ... Estimate grammar complexity

• non-terminals, number of rules, ...

Project Estimation Techniques

Delay estimation (improve accuracy)

Base on similar projects

Decomposition (“divide & conquer”)

Use one or more empirical models

Delaying Estimation

Feasibility study / prototype• Realistic input / output data• Estimate system complexity• Draft system specification• Estimate cost of full development• Demonstrate feasibility

Resource Planning

[From SEPA 5/e]

Three-Point LOC Estimates Three-point or expected-value model:

EV = (Sopt + 4*Sm + Spess) / 6

Provides a weighted average

pessimisticmost likelyoptimistic

Example: LOC-Based Estimate

[From SEPA 5/e]

Optimistic: 4,600 Most Likely: 6,900Pessimistic: 8,600

S = (4,600 + 4*6,900 + 8,600) / 16 = 6,800

Example: LOC-Based [2] Estimate 33,200 lines of code Historical data: 620 LOC/PM

(lines of code per person-month) Labor rate: $8000/PM Cost per LOC: $13 Estimated cost: $431,000 Estimated effort: 54 PM

Example: FP-Based Estimate

[From SEPA 5/e]

[From SEPA 5/e]

Function PointWeightingFactors

Example: FP-Based [2] Estimated FP = 375 Historical data: 6.5 FP/PM Labor rate: $8000/PM Cost per FP: $1230 Estimated cost: $461,000 Estimated effort: 58 PM

Process-Based Estimation

[From SEPA 5/e]

Different types of taskuse different types of labor,with different labor rates

Using Multiple Methods

More than one method applied What if the results diverge?

• scope misunderstood• data inaccurate or misapplied• one method may not be a good fit for the problem

[From SEPA 5/e]

Make/BuyDecisionTree

Expected Cost (Buy) =.7 * $210K + .3 * $400K = $267K