Foreword: Under the Tip of the Estimation Iceberg by Barry Boehm |
|
xvii | |
Foreword by Donald J. Reifer |
|
xix | |
Preface |
|
xxi | |
|
How This Book Came about from a Galorath Viewpoint |
|
|
xxi | |
|
|
xxiii | |
|
|
xxv | |
|
What Can You Expect from the Book? |
|
|
xxv | |
Acknowledgments |
|
xxvii | |
The Authors |
|
xxix | |
|
|
1 | (24) |
|
|
1 | (3) |
|
|
4 | (1) |
|
Why Software Projects Fail |
|
|
4 | (3) |
|
Why Software Projects Fail: Problems with Estimation |
|
|
7 | (2) |
|
Why Software Projects Fail: Size Estimates |
|
|
9 | (4) |
|
|
13 | (1) |
|
|
14 | (2) |
|
Overly Optimistic Leadership and Management |
|
|
16 | (2) |
|
|
16 | (2) |
|
Failure to Keep Estimate Current |
|
|
18 | (1) |
|
Role of Risk Management in Estimating |
|
|
18 | (2) |
|
The Solution: Software Estimation — Ten-Step Process |
|
|
20 | (1) |
|
|
21 | (1) |
|
|
21 | (4) |
|
2 Introduction to Software Estimation Techniques and Estimate Planning |
|
|
25 | (32) |
|
Introduction and Chapter Goals |
|
|
25 | (1) |
|
Need for Efficient Software Project Management Metrics |
|
|
26 | (2) |
|
|
28 | (2) |
|
Software Project Estimates: Foundations of Software Project Management |
|
|
30 | (4) |
|
Software Estimation Concepts |
|
|
34 | (1) |
|
Project Estimation Process |
|
|
35 | (4) |
|
Step One: Establish Estimate Scope and Purpose |
|
|
36 | (2) |
|
Step Two: Establish Technical Baseline, Ground Rules, and Assumptions |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
39 | (6) |
|
Interview with Judy Galorath |
|
|
45 | (3) |
|
Software Data Collection Process |
|
|
48 | (2) |
|
Software Data Collection Lessons Learned |
|
|
50 | (4) |
|
Prioritizing Estimation Effort |
|
|
54 | (1) |
|
|
54 | (1) |
|
|
54 | (3) |
|
|
57 | (48) |
|
Introduction and Chapter Goal |
|
|
57 | (1) |
|
Step Four: Software Sizing |
|
|
57 | (13) |
|
|
58 | (2) |
|
Size Estimation Approaches |
|
|
60 | (1) |
|
|
61 | (3) |
|
|
63 | (1) |
|
When to Use Function Points |
|
|
63 | (1) |
|
Steps to Estimating Software Size |
|
|
64 | (4) |
|
Sizing Step 1: Baseline Definition of the Size Metric You Will Use |
|
|
65 | (1) |
|
Sizing Step 2: Define Sizing Objectives |
|
|
65 | (1) |
|
Sizing Step 3: Plan Data and Resource Requirements |
|
|
66 | (1) |
|
Sizing Step 4: Identify and Evaluate Software Requirements |
|
|
66 | (1) |
|
Sizing Step 5: Use Several Independent Techniques and Sources |
|
|
66 | (2) |
|
|
68 | (1) |
|
|
68 | (1) |
|
|
69 | (1) |
|
Sizing Number of Functions to Be Learned, Used, and Integrated for COTS |
|
|
70 | (1) |
|
Step Five: Prepare Baseline Estimate |
|
|
70 | (29) |
|
Software Productivity Laws |
|
|
72 | (6) |
|
|
78 | (1) |
|
|
78 | (8) |
|
Organizing the Estimating Process |
|
|
86 | (1) |
|
Delphi and Wideband Delphi |
|
|
87 | (2) |
|
|
89 | (10) |
|
Step Six: Quantify Risks and Risk Analysis |
|
|
99 | (3) |
|
|
99 | (3) |
|
|
102 | (1) |
|
|
102 | (3) |
|
4 Planning and Controlling the Project via the Estimate |
|
|
105 | (44) |
|
|
105 | (1) |
|
Step Seven: Estimate Validation and Review |
|
|
105 | (12) |
|
|
107 | (1) |
|
Estimate Review Activities |
|
|
108 | (1) |
|
Cost per Unit of Code Developed |
|
|
109 | (4) |
|
Magic Bullets (Otherwise Known as Technical Leaps) |
|
|
109 | (1) |
|
|
110 | (1) |
|
|
110 | (1) |
|
|
111 | (1) |
|
Careful Evaluation of Preexisting and COTS Software |
|
|
112 | (1) |
|
Off-the-Shelf Integration |
|
|
112 | (1) |
|
Function Point Counting Checklist |
|
|
113 | (2) |
|
|
113 | (1) |
|
|
113 | (1) |
|
|
113 | (1) |
|
Sample and Statistical Concerns |
|
|
114 | (1) |
|
|
114 | (1) |
|
|
114 | (1) |
|
|
115 | (1) |
|
Are Staff Costs Fully Burdened? |
|
|
115 | (1) |
|
How Many Hours Are in a Staff Month? |
|
|
115 | (1) |
|
Staff and Effort Accounting |
|
|
115 | (1) |
|
|
115 | (1) |
|
What Level of Management Participates? |
|
|
115 | (1) |
|
How Efficiently Is Staff Allocated? |
|
|
116 | (1) |
|
Are Experience Levels Honestly Rated? |
|
|
116 | (1) |
|
|
116 | (12) |
|
What Is the Proportion of Daily Billable Work Done? |
|
|
116 | (1) |
|
Will Development Have Lags? |
|
|
116 | (1) |
|
If Several Software Elements Are Developed, How Are They Scheduled? |
|
|
116 | (1) |
|
Is It More Important to Save Time or Staff Cost? |
|
|
117 | (1) |
|
|
117 | (1) |
|
Estimate Process Questionnaire |
|
|
117 | (11) |
|
Step Eight: Generate Project Plan |
|
|
128 | (15) |
|
Action Items by Project Phase |
|
|
129 | (4) |
|
Determining Costs from Effort Estimates |
|
|
133 | (1) |
|
|
133 | (1) |
|
|
134 | (1) |
|
|
134 | (4) |
|
|
134 | (1) |
|
|
134 | (3) |
|
|
137 | (1) |
|
|
137 | (1) |
|
Independent Verification and Validation or Independent Quality Assurance |
|
|
137 | (1) |
|
|
137 | (1) |
|
|
138 | (1) |
|
Estimating Schedule in Calendar Months |
|
|
138 | (1) |
|
Effect of Management and Process on Estimates |
|
|
138 | (1) |
|
Impact of Software Project Management on Software Development Plan |
|
|
138 | (3) |
|
Effect of Software Processes on Software Development Plan |
|
|
141 | (2) |
|
Step Nine: Document Estimate and Lessons Learned |
|
|
143 | (3) |
|
Conducting Lessons-Learned Review |
|
|
144 | (1) |
|
|
145 | (1) |
|
|
145 | (1) |
|
Modeling Improvement Segment |
|
|
146 | (1) |
|
Step Ten: Track Project throughout Development |
|
|
146 | (1) |
|
Refining Estimates throughout Project |
|
|
146 | (1) |
|
|
147 | (1) |
|
|
148 | (1) |
|
|
149 | (38) |
|
|
149 | (1) |
|
Terminology and Definitions |
|
|
150 | (2) |
|
|
152 | (1) |
|
|
153 | (2) |
|
Logical SLOC Counting Details |
|
|
155 | (1) |
|
Logical SLOC Detailed Definitions |
|
|
155 | (12) |
|
|
155 | (3) |
|
Data Declaration Statements |
|
|
158 | (1) |
|
|
158 | (3) |
|
|
161 | (1) |
|
Estimation versus Counting SLOC |
|
|
162 | (1) |
|
SLOC Considerations for Sizing Databases |
|
|
162 | (1) |
|
Language Impact on Size Conversion |
|
|
163 | (1) |
|
|
164 | (1) |
|
Productivity Based on Effective Size |
|
|
164 | (1) |
|
Accounting for SLOG Growth |
|
|
164 | (2) |
|
Estimating Size Growth Conclusions |
|
|
166 | (1) |
|
Finding Automated Code Counters for Existing Systems |
|
|
167 | (2) |
|
|
169 | (2) |
|
Arguments against Use of Lines of Code as Sizing Metric |
|
|
170 | (1) |
|
Risks Resulting from Using SLOC to Estimate |
|
|
170 | (1) |
|
Risk Management and Control of SLOC Estimates |
|
|
171 | (1) |
|
|
171 | (1) |
|
|
172 | (4) |
|
SEI Definition Checklist for Source Statement Counts |
|
|
172 | (4) |
|
Codes for Various Programming Languages |
|
|
176 | (9) |
|
|
185 | (2) |
|
|
187 | (66) |
|
|
187 | (1) |
|
Origins and History of Functional Metrics |
|
|
188 | (2) |
|
|
190 | (1) |
|
International Function Point User Group Counting Standards: Basic Process Definition |
|
|
191 | (1) |
|
|
192 | (1) |
|
|
192 | (32) |
|
Step 1: Determine Type of Function Point Count |
|
|
192 | (2) |
|
Step 2: Determine Application Boundary |
|
|
194 | (1) |
|
Step 3: Identify Functional Categories |
|
|
195 | (14) |
|
|
196 | (3) |
|
|
199 | (2) |
|
|
201 | (3) |
|
External Interface File (EIF) |
|
|
204 | (2) |
|
Internal Logical File (ILF) |
|
|
206 | (3) |
|
Step 4: Count Data Functions (ILFs and EIFs) |
|
|
209 | (1) |
|
Step 5: Count Transactional Functions (EIs, EOs, and EQs) |
|
|
210 | (1) |
|
Step 6: Evaluate Value Adjustment Factors |
|
|
211 | (11) |
|
Step 7: Compute Unadjusted and Adjusted Function Point Counts |
|
|
222 | (2) |
|
SEER-Function-Based Sizing (SEER-FBS) |
|
|
224 | (6) |
|
SEER-FBS External Inputs (EN) |
|
|
225 | (1) |
|
SEER-FBS Subcategories for External Inputs |
|
|
226 | (1) |
|
Rating Complexity for External Inputs |
|
|
226 | (1) |
|
SEER-FBS External Outputs (EOs) |
|
|
226 | (1) |
|
SEER-FBS Subcategories for External Outputs |
|
|
227 | (1) |
|
Rating Complexity for External Outputs |
|
|
227 | (1) |
|
SEER-FBS External Inquiries (EQs) |
|
|
227 | (1) |
|
Rating Complexity for External Inquiries |
|
|
228 | (1) |
|
SEER-FBS Subcategories for External Inquiries |
|
|
228 | (1) |
|
SEER-FBS External Interface Files (EIFs) |
|
|
228 | (1) |
|
SEER-FBS Subcategories for External Interface Files |
|
|
228 | (1) |
|
Rating Complexity for External Interface Files |
|
|
229 | (1) |
|
SEER-FBS Internal Logical Files (ILFs) |
|
|
229 | (1) |
|
SEER-FBS Subcategories for Internal Logical Files |
|
|
229 | (1) |
|
Rating Complexity for Internal Logical Files |
|
|
229 | (1) |
|
SEER-FBS Extended Category: Internal Functions |
|
|
230 | (1) |
|
Effective Function Points |
|
|
230 | (6) |
|
|
233 | (3) |
|
Early Function Point Counting (Estimating) |
|
|
236 | (1) |
|
Analysis of Function Point Rules in Tree-Based Framework |
|
|
236 | (4) |
|
Description of Tree and Results |
|
|
237 | (1) |
|
|
237 | (2) |
|
Possible Errors in Function Point Counting |
|
|
239 | (1) |
|
Pros and Cons of Function Points |
|
|
240 | (2) |
|
|
240 | (1) |
|
|
241 | (1) |
|
When to Use Function Points |
|
|
242 | (1) |
|
Function Point Risk Management |
|
|
242 | (1) |
|
Function Point Counting Risk Checklist |
|
|
243 | (1) |
|
|
243 | (8) |
|
|
251 | (2) |
|
7 Object-Oriented Sizing: Object and Use-Case Sizing |
|
|
253 | (22) |
|
|
253 | (1) |
|
Background of Object-Oriented Design |
|
|
254 | (1) |
|
Overview of Object-Oriented Techniques |
|
|
255 | (8) |
|
|
256 | (1) |
|
Performing Object Point Counts |
|
|
256 | (1) |
|
|
256 | (6) |
|
|
256 | (3) |
|
|
259 | (3) |
|
|
262 | (1) |
|
Development of Use-Case Metric |
|
|
262 | (1) |
|
Calculation of Unadjusted Use-Case Points |
|
|
263 | (4) |
|
Adjustment of Use-Case Point Count (Optional) |
|
|
265 | (1) |
|
Concluding Comments about Use-Case Points |
|
|
265 | (1) |
|
|
265 | (2) |
|
Risk Associated with Object-Oriented Projects |
|
|
267 | (5) |
|
|
272 | (1) |
|
|
273 | (2) |
|
8 Software Reuse and Commercial Off-the-Shelf Software |
|
|
275 | (28) |
|
|
275 | (2) |
|
|
277 | (2) |
|
Integrating Commercial Off-the-Shelf Software |
|
|
279 | (5) |
|
Fundamental Differences between COTS Software and Custom Development |
|
|
282 | (1) |
|
Items Not Estimated as COTS |
|
|
283 | (1) |
|
|
284 | (1) |
|
Case Studies: Real-World Experiences with COTS |
|
|
284 | (1) |
|
Case 1: Components Had Critical Defects and Were Modified by Developer |
|
|
284 | (1) |
|
Case 2: Powerful (and Defect-Ridden) COTS Component |
|
|
285 | (1) |
|
Case 3: Application Integrated (Loosely Coupled) without Problems |
|
|
285 | (1) |
|
Evaluating and Estimating COTS |
|
|
285 | (2) |
|
Three Components of COTS Integration |
|
|
286 | (1) |
|
Estimating COTS Integration |
|
|
287 | (7) |
|
Using Function Points and Estimating Model Lacking COTS-Specific Capability |
|
|
287 | (1) |
|
Integration of Stand-Alone COTS Software |
|
|
288 | (1) |
|
Stand-Alone COTS Software with Significant Configuration |
|
|
288 | (1) |
|
Using SEER-SEM Cost Drivers to Estimate COTS |
|
|
288 | (5) |
|
|
291 | (1) |
|
|
291 | (2) |
|
Rules of Thumb for COTS Integration |
|
|
293 | (1) |
|
Experience with COTS Product |
|
|
293 | (1) |
|
|
293 | (1) |
|
Evaluation and Selection of COTS Products |
|
|
294 | (1) |
|
|
294 | (3) |
|
|
296 | (1) |
|
Risks Associated with Reuse and COTS |
|
|
297 | (1) |
|
|
297 | (4) |
|
|
301 | (2) |
|
9 Performing to Estimate: Managing and Monitoring Development |
|
|
303 | (36) |
|
|
303 | (1) |
|
|
304 | (5) |
|
|
309 | (1) |
|
|
309 | (1) |
|
|
309 | (9) |
|
Using Earned Value Management |
|
|
318 | (19) |
|
|
323 | (1) |
|
"Shoestring" Project Environments |
|
|
324 | (1) |
|
|
325 | (1) |
|
|
326 | (1) |
|
Understanding Process Selection Constraints |
|
|
327 | (3) |
|
Product Quality and Stability |
|
|
330 | (1) |
|
|
331 | (2) |
|
|
333 | (2) |
|
|
335 | (1) |
|
|
335 | (2) |
|
|
337 | (1) |
|
|
337 | (2) |
10 Risk Management Process |
|
339 | (58) |
|
|
339 | (1) |
|
History of Risk Management |
|
|
340 | (5) |
|
Cultural Obstacles to Managing Risk |
|
|
343 | (2) |
|
|
345 | (2) |
|
Risk Management Success Factors |
|
|
347 | (2) |
|
Essential Risk Management Definitions |
|
|
349 | (1) |
|
Introduction to Risk Management Concepts |
|
|
350 | (9) |
|
|
352 | (4) |
|
Risk Management Processes |
|
|
356 | (3) |
|
Seven Steps to Risk Management |
|
|
359 | (28) |
|
Step 1: Establish Risk Policy, Obtain Commitment to Manage Risk, and Develop Plan |
|
|
359 | (9) |
|
|
360 | (2) |
|
"How-To" Procedures: Essential Planning Elements |
|
|
362 | (6) |
|
Step 2: Designate Risk Officer |
|
|
368 | (4) |
|
|
371 | (1) |
|
Relationship of Risk Officer and Management |
|
|
371 | (1) |
|
|
372 | (9) |
|
Risk Identification Techniques |
|
|
374 | (3) |
|
|
377 | (1) |
|
Potential Risk Identification Activities during Estimation |
|
|
378 | (3) |
|
|
381 | (2) |
|
|
382 | (1) |
|
Use of Quantitative Triggers |
|
|
382 | (1) |
|
|
383 | (1) |
|
|
384 | (2) |
|
Reporting Problems versus Risks |
|
|
384 | (1) |
|
Risk Reporting by Exposure |
|
|
385 | (1) |
|
Step 7: Establish Risk Reserve |
|
|
386 | (1) |
|
Basic Risk Management Rules |
|
|
387 | (1) |
|
Risk Analysis Viewed as Uncertainty Analysis |
|
|
387 | (6) |
|
Establishing Risk Reserve Using Commercial Grade Models |
|
|
388 | (1) |
|
Risk Management Dealing with Cost Uncertainty |
|
|
388 | (1) |
|
Risk Analysis at the Work Element Level |
|
|
389 | (2) |
|
Pert Distribution Characteristics |
|
|
390 | (1) |
|
Probability and Intuition |
|
|
391 | (1) |
|
Probability-Based Risk Outputs |
|
|
392 | (1) |
|
Project and Roll-Up Risk Calculation |
|
|
392 | (1) |
|
|
393 | (2) |
|
|
395 | (2) |
11 Applying SEER-SEM to Estimation Processes |
|
397 | (102) |
|
Introduction to SEER-SEM Project Manager Edition Tools |
|
|
398 | (3) |
|
|
401 | (1) |
|
Summary Input and Output Definitions |
|
|
402 | (1) |
|
|
403 | (2) |
|
|
405 | (1) |
|
SEER-SEM Programmatic Architecture |
|
|
406 | (1) |
|
|
406 | (1) |
|
Communicating with SEER-SEM via Microsoft COM |
|
|
407 | (1) |
|
|
407 | (1) |
|
Applying SEER-SEM Project Manager Edition to the Estimation Process |
|
|
407 | (1) |
|
Steps 1 through 3: Establish Estimate Scope and Purpose; Establish Technical Baseline, Ground Rules, and Assumptions; and Collect Data |
|
|
407 | (3) |
|
SEER-SEM Software Sizing (Step 4) |
|
|
409 | (1) |
|
|
410 | (1) |
|
Automated Sizing with SEER-AccuScope |
|
|
410 | (2) |
|
Choosing Knowledge Bases for Reuse Estimation |
|
|
412 | (8) |
|
Using SEER Function-Based Sizing for Size Estimates |
|
|
420 | (1) |
|
Using Number of Programs Included in Size |
|
|
420 | (16) |
|
SEER-SEM Estimation Process (Step 5) |
|
|
421 | (2) |
|
SEER-SEM Estimation Process Step 5b: Select Knowledge Bases |
|
|
423 | (1) |
|
SEER-SEM Estimation Process Step 5c: Specify Project Constraints |
|
|
424 | (1) |
|
SEER-SEM Estimation Process Step 5d: Adjust Individual Parameters |
|
|
425 | (1) |
|
SEER-SEM Estimation Process Step 6: Quantify Risks and Risk Analysis |
|
|
426 | (3) |
|
|
427 | (1) |
|
Probability Distribution of Output Ranges |
|
|
428 | (1) |
|
Risk Factor Analysis with Sensitivity Charts |
|
|
429 | (2) |
|
Ranked Risks with Top Ten Cost Drivers Chart |
|
|
431 | (1) |
|
Precise Estimate Distributions through Risk Analysis Report |
|
|
431 | (1) |
|
SEER-SEM Estimation Process Step 7: Review, Verify, and Validate Estimate |
|
|
432 | (2) |
|
SEER-SEM Estimation Process Step 8: Generate Project Plan |
|
|
434 | (1) |
|
SEER-SEM Estimation Process Step 9: Document Estimate and Lessons Learned |
|
|
435 | (1) |
|
Custom Knowledge Bases and Calibration |
|
|
435 | (1) |
|
Calibration (Part of Lessons Learned) |
|
|
435 | (1) |
|
Constructing Calibration Factors |
|
|
436 | (1) |
|
SEER-SEM Estimation Process Step 10: Track Project |
|
|
436 | (1) |
|
|
436 | (12) |
|
SEER-SEM Basic Size Definition |
|
|
437 | (1) |
|
SEER-SEM Staff Hour Definition |
|
|
437 | (1) |
|
SEER-SEM Mathematical Model Overview |
|
|
437 | (8) |
|
Effective Size Mathematics |
|
|
437 | (5) |
|
Function-Based Sizing Mathematics |
|
|
442 | (1) |
|
|
442 | (1) |
|
|
442 | (1) |
|
Effective Technology Calculation |
|
|
443 | (2) |
|
Effort, Schedule, and Staffing Calculations |
|
|
445 | (3) |
|
|
445 | (1) |
|
Basic Effort and Schedule Equations |
|
|
445 | (1) |
|
Optimal Effort Calculations |
|
|
446 | (1) |
|
Relaxed Schedule Calculations |
|
|
447 | (1) |
|
Applying Adjustment Factors |
|
|
448 | (1) |
|
SEER-SEM Parameter Definitions |
|
|
448 | (48) |
|
|
448 | (1) |
|
|
449 | (4) |
|
Technology and Environment Parameters |
|
|
453 | (23) |
|
Commercial Off-the-Shelf (COTS) Parameters |
|
|
476 | (8) |
|
|
484 | (12) |
|
|
496 | (1) |
|
|
497 | (2) |
12 SEER-SEM Solutions for Project Management and Control |
|
499 | (20) |
|
|
499 | (1) |
|
CMMI Process Areas for Project Management |
|
|
500 | (10) |
|
Solution 1: Application of Basic SEER-SEM for Project Management and Control |
|
|
501 | (2) |
|
Solution 2: SEER-SEM Client for Microsoft Project |
|
|
503 | (1) |
|
Using the Client for Detailed Project Planning |
|
|
504 | (2) |
|
Solution 3: SEER-PPMC (Parametric Project Monitoring and Control) |
|
|
506 | (4) |
|
Implementing Planning and Control Process with SEER-PPMC |
|
|
510 | (2) |
|
Earned Value Metrics and Calculations Used in SEER-PPMC |
|
|
512 | (6) |
|
|
518 | (1) |
|
|
518 | (1) |
Index |
|
519 | |