HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Superior software productivity requires a relentless focus on people, motivation, and communication. In Improving Software Development Productivity, world-renowned software engineering expert Dr. Randall W. Jensen introduces a proven, quantitative approach to achieving this focus. Jensen helps you measure your organization’s capacity and productivity, and then use that information to improve multiple facets of developer and team performance, and to build more accurate estimates and schedules.
Focusing on management as the principal cost and schedule driver in software projects, he demonstrates a powerful tool based on his Jensen II (Seer) model: the model that underlies many leading software estimation tools. Through real case studies, you’ll learn how to predict the productivity impact of any major management decision, and quantitatively support a transition to “extreme” or “agile” software development environments.
For decades, Jensen has been the industry’s go-to expert on improving software project productivity. This book distills his insights and gives you the tools and knowledge to apply them.
This book will help you
Register your book for access to the Capability Calculator, a Microsoft Excel tool created by the author and based on the Jensen II (Seer) model. Go to informit.com/title/9780133562675.
Why Do We Still Have Software Development Problems?
Preface xv
About the Author xiii
Chapter 1: Software Development Issues 1
1.1 Software Crisis 2
1.2 People Impact on Productivity 9
1.3 Agile Contributions to Development Productivity 13
1.4 Magic Bullets 15
1.5 Development Constraints 16
Chapter 2: The Effectiveness 17
2.2 Mechanics of Communication 19
2.3 Culture Issues 31
Chapter 3: Importance of Software Management 41
3.1 Historical Perspective 42
3.2 Hawthorne Effect 45
3.3 Theory X/Theory Y 47
3.4 Agile Software Development 50
3.5 More Real Productivity Improvers 51
Chapter 4: What We Learn from History 57
4.1 Pandora and the Magic Vase 58
4.2 Productivity Gains from Technology 59
4.3 CMMI 63
4.4 Maximum/Minimum Schedule Is Real 66
4.5 And So . . . 68
Chapter 5: Software Development Teams 71
5.1 Software Development Teams 72
5.2 Team Examples 73
5.3 Team Positive Effects 86
5.4 Team Size 88
5.5 And Then . . . 91
Chapter 6: Measuring Organization Capability 93
6.1 The Evolving Concept of Developer Capability 95
6.2 The Effectiveness Formula Redux 98
6.3 Organization Capability Rating 116
6.4 Basic Technology Constant 120
Chapter 7: Faultless Software Corporation Case Study 125
7.1 The Problem 125
7.2 Faultless Software, the Corporation 126
7.3 The Software Components 128
7.4 Faultless Software Capability Ratings 130
Chapter 8: Product Complexity 137
8.1 A Quantitative Complexity Value 138
8.2 Faultless Software Complexity Example 143
Chapter 9: Staffing Profiles 147
9.1 Effective Use of People 147
9.2 Brooks’ Law in Action 154
9.3 A Touch of Reality 156
Chapter 10: Seer Software Model Introduction 159
10.1 Introduction 160
10.2 Software Equation 163
10.3 Schedule and Cost Estimates 169
Chapter 11: Development Environment 173
11.1 Experience Factors 174
11.2 Volatility Factors 182
11.3 Management Factors 183
Chapter 12: Product Characteristics 189
12.1 Product Characteristics Evaluation 190
12.2 Effective Technology Constant 200
12.3 Basic Technology Constant Projection 201
Chapter 13: Development Schedule and Cost Estimates 205
13.1 Waterfall Development Model 206
13.2 Faultless Software Case Study 208
13.3 Summary 225
Chapter 14: Effective Size Estimation 227
14.1 Source Code Elements 228
14.2 Size Uncertainty 231
14.3 Source Line of Code (SLOC) 233
14.4 Effective Source Lines of Code (ESLOC) 235
14.5 Effective Size Equation 238
14.6 Size Growth 241
14.7 Size Risk 248
14.8 Faultless Software Size Example 249
Chapter 15: Function Point Sizing 253
15.1 Function Point Counting 254
15.2 Function Point Components 254
15.3 Unadjusted Function Point Counting 264
15.4 Adjusted Function Points 265
15.5 Backfiring 268
15.6 Function Points and Objects 270
15.7 Zero Function Point Problem 271
Chapter 16: Maintenance Estimating 273
16.1 Introduction 273
16.2 Software Enhancement 275
16.3 Knowledge Retention 276
16.4 Steady-State Maintenance Effort 277
16.5 Maintenance Example 277
Chapter 17: Summary 279
17.1 The Effectiveness Formula Revisited 279
17.2 People-Process-Project Triad 281
17.3 The Value of Communication 283
17.4 Management and Motivation 285
17.5 Teams 287
17.6 Last Thoughts 290
Appendix A: Software Estimating Models 293
A.1 Analogy Models 294
A.2 Expert Judgment Models 295
A.3 Bottom-Up Estimating 297
A.4 Parametric Models 298
A.5 Evolution of Parametric Software Models 299
Appendix B: Additional Reading 307
Appendix C: Terminology 313
Index 327