Software Engineering Lecture 5: Project Planning
Today’s Topics l Risk in Estimation l Planning Objectives l Customer Interviews l Estimation Examples l Make-Buy Decision
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]
Risk in Estimation l Inherent risk implies uncertainty project complexity project size structural uncertainty l Availability of historical information? l Variability in requirements implies instability in cost and schedule!
Risk in Estimation (2) “If you can’t tell me exactly what you 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 l Framework for estimation resources, cost, schedule l Life-cycle persistence plan is updated periodically l “Best Case” vs. “Worst Case” possible outcomes are bounded
Customer Interviews: Scope l 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] l 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] l 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 l Details hard for customer to grasp lexicon size, ambiguity, … l Hard to define “good” output accuracy & style are subjective! l Feasibility prototype corpus / domain analysis can help
Language Domain Analysis l Ask customer for text samples l Gather frequency data l Build sentence index (KWIC) l Analyze high-frequency terms l Estimate lexicon complexity number of terms, features/term,... l Estimate grammar complexity non-terminals, number of rules,...
Project Estimation Techniques l Delay estimation (improve accuracy) l Base on similar projects l Decomposition (“divide & conquer”) l Use one or more empirical models
Delaying Estimation l 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 l Three-point or expected-value model: EV = (S opt + 4*S m + S pess ) / 6 l Provides a weighted average pessimisticmost likelyoptimistic
Example: LOC-Based Estimate [From SEPA 5/e] Optimistic: 4,600 Most Likely: 6,900 Pessimistic: 8,600 S = (4, *6, ,600) / 16 = 6,800
Example: LOC-Based [2] l Estimate 33,200 lines of code l Historical data: 620 LOC/PM (lines of code per person-month) l Labor rate: $8000/PM l Cost per LOC: $13 l Estimated cost: $431,000 l Estimated effort: 54 PM
Example: FP-Based Estimate [From SEPA 5/e]
Function Point Weighting Factors
Example: FP-Based [2] l Estimated FP = 375 l Historical data: 6.5 FP/PM l Labor rate: $8000/PM l Cost per FP: $1230 l Estimated cost: $461,000 l Estimated effort: 58 PM
Process-Based Estimation [From SEPA 5/e] Different types of task use different types of labor, with different labor rates
Using Multiple Methods l More than one method applied l 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/Buy Decision Tree Expected Cost (Buy) =.7 * $210K +.3 * $400K = $267K