software engineering lecture 5: project planning
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
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