software engineering lecture 5: project planning

23
Software Engineering Lecture 5: Project Planning

Upload: mary-bradley

Post on 18-Jan-2018

224 views

Category:

Documents


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

Page 1: Software Engineering Lecture 5: Project Planning

Software Engineering

Lecture 5: Project Planning

Page 2: Software Engineering Lecture 5: Project Planning

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

Page 3: Software Engineering Lecture 5: Project Planning

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]

Page 4: Software Engineering Lecture 5: Project Planning

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!

Page 5: Software Engineering Lecture 5: Project Planning

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)

Page 6: Software Engineering Lecture 5: Project Planning

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

Page 7: Software Engineering Lecture 5: Project Planning

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?

Page 8: Software Engineering Lecture 5: Project Planning

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?

Page 9: Software Engineering Lecture 5: Project Planning

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?

Page 10: Software Engineering Lecture 5: Project Planning

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

Page 11: Software Engineering Lecture 5: Project Planning

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, ...

Page 12: Software Engineering Lecture 5: Project Planning

Project Estimation Techniques

Delay estimation (improve accuracy)

Base on similar projects

Decomposition (“divide & conquer”)

Use one or more empirical models

Page 13: Software Engineering Lecture 5: Project Planning

Delaying Estimation

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

Page 14: Software Engineering Lecture 5: Project Planning

Resource Planning

[From SEPA 5/e]

Page 15: Software Engineering Lecture 5: Project Planning

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

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

Provides a weighted average

pessimisticmost likelyoptimistic

Page 16: Software Engineering Lecture 5: Project Planning

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

Page 17: Software Engineering Lecture 5: Project Planning

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

Page 18: Software Engineering Lecture 5: Project Planning

Example: FP-Based Estimate

[From SEPA 5/e]

Page 19: Software Engineering Lecture 5: Project Planning

[From SEPA 5/e]

Function PointWeightingFactors

Page 20: Software Engineering Lecture 5: Project Planning

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

Page 21: Software Engineering Lecture 5: Project Planning

Process-Based Estimation

[From SEPA 5/e]

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

Page 22: Software Engineering Lecture 5: Project Planning

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

Page 23: Software Engineering Lecture 5: Project Planning

[From SEPA 5/e]

Make/BuyDecisionTree

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