Foreword by Mike Phillips xxi Foreword by Hillel Glazer xxiii Preface xxv Acknowledgments xxxi Part I: Introduction 1 Chapter 1: Introduction and CMMI/Agile Primers 5 1.1 Introduction and CMMI Primer 5 1.2 Agile Primer 10 1.3 General Information about the Case Studies 12 1.4 General Information about Terminology Used in the Book 13 Part II: Helping Mature Organizations Increase Agility 15 Chapter 2: Techniques to Increase Agility in CMMI Mature Organizations 17 2.1 What You Will Learn in This Chapter 18 2.2 LACM Case Study Background 18 2.3 Where to Start When Using the CMMI Model to Increase Agility 18 2.4 Where Many Organizations Wrongly Start When Using the CMMI Model 20 2.5 How the CMMI Model Is Often Used, and Options Not Well Understood 20 2.6 Aligning Your Process Initiatives with Your Real Business Objectives 21 2.7 Aligning Process Descriptions and Training with the Real Process 22 2.8 Two Specific Examples to Increase Agility: Pruning and Leaning 23 2.9 Why More Organizations Don't Prune and Lean Their Processes Today 25 2.10 Understanding the CMMI Model Intent to Help Your Organization Succeed 25 2.11 Options You Have in Using the CMMI Model for Appraisals 26 2.12 An Alternative Approach to Agility 27 2.13 Summary: How CMMI Helps Agile 29 2.14 Summary: How Agile Helps CMMI 29 Chapter 3: Agility and the Higher CMMI Level Practices 31 3.1 What You Will Learn in This Chapter 31 3.2 Background on the Higher CMMI Level Practices 32 3.3 Case Study Background 33 3.4 Measurement Fundamentals 33 3.5 Measurement in the Case Study 34 3.6 Stepping Back 34 3.7 Digging Deeper for Candidate Root Causes 35 3.8 Specific Context Relevant Measures 36 3.9 Deriving the Right Data and Caring about the Data 37 3.10 What Does This Have to Do with CMMI High-Level Practices? 38 3.11 The Right Time to Implement CMMI Level 4/5 Practices 38 3.12 Relationships among CMMI, Agile, and Lean 38 3.13 Back to the Case Study: How CMMI, Agile, and Lean Can Help Together 39 3.14 What Happened in the Case Study and Process Improvement Insights 40 3.15 Back to the Case Study Again: What Really Happened 40 3.16 Insight 41 3.17 More about the Real Intent of CMMI Level 4 and 5 Practices 42 3.18 Continuous Process Improvement at LACM 45 3.19 Why the Unprecedented Success at LACM? 48 3.20 Diddling in DOORS: A Story about Real Work Management and Measurement 48 3.21 Finance Perspective on Work Management and Measurement 51 3.22 Is the CMMI Measurement and Analysis Process Area Inconsistent with the Agile Principle of Simplicity? 52 3.23 How LACM Handled Measurement and Analysis from the CMMI Perspective 53 3.24 Summary 53 3.25 Summary: How CMMI Helps Agile 54 3.26 Summary: How Agile Helps CMMI 54 Part III: Helping Agile Organizations Increase Maturity 55 Chapter 4: Bringing Process Maturity to Agile Organizations-Part I 57 4.1 What You Will Learn in This Chapter 57 4.2 BOND Case Study Background 58 4.3 What Is a Gap Analysis and Why Is It Crucial for Agile Organizations? 59 4.4 Keys to Conducting a Gap Analysis for an Agile Organization 60 4.5 Example of "Potential Weakness" Against CMMI in an Agile Organization 62 4.6 Running Process Improvement like a Project 64 4.7 TWG Approach for Agile Organizations 64 4.8 Revisiting the Goal and Challenges on the Process Improvement Project 66 4.9 Alternative Practices and Tailored Agile TWG 67 4.10 Returning to the Peer Review Example 69 4.11 Tailored TWG Techniques and Lessons at BOND 70 4.12 Preparation Work for Running Agile TWGs 71 4.13 Packaging of Processes 71 4.14 An Agile Organizational Process Asset Structure 73 4.15 Process Asset Guidelines Used at BOND 77 4.16 Different Organizations with Different Process Asset Structures 77 4.17 Agile TWG Roles and Responsibilities 78 4.18 Effective Techniques to Run an Agile TWG 79 4.19 Separating the TWG Work from the Lead Offline Work 79 4.20 What Do You Do When You Find a Gap? 80 4.21 Answers to Common Questions When Running an Agile TWG 81 4.22 Do I Need a DAR Process? 82 4.23 Do I Need to Verify Everything I Develop? 82 4.24 Do I Need to Make Sure the Steps in My Processes Are in the Right Order? 83 4.25 Do I Need to Make Sure Process Descriptions Are Not Redundant? 84 4.26 Can Requirements Be Captured in an Email or PowerPoint Slides? 85 4.27 Do Requirements Need to Be Captured in Single "Shall Statements"? 86 4.28 Formalizing Informality 86 4.29 Summary 88 4.30 Summary: How Agile Helps CMMI 88 Chapter 5: Bringing Process Maturity to Agile Organizations-Part II 91 5.1 What You Will Learn in This Chapter 91 5.2 BOND Case Study Background 92 5.3 Project Management at BOND 95 5.4 Starting with Roles and Responsibilities at BOND 96 5.5 Growing Project Leaders from the Inside 98 5.6 Example Stretch Point: Adding a Project Management Plan per Agreed Template 99 5.7 "The What"-Scoping the Effort 101 5.8 "The Who"-Managing Your Resource and Skill Needs 102 5.9 Common "Undocumented-Super-Spreadsheet" Resource Management Process 104 5.10 "The When" 104 5.11 Life Cycle-It's Your Choice 106 5.12 "The How"-Team Meetings, Task Monitoring, and Course Correction 108 5.13 Senior Management Briefings: An Area in Which the CMMI Can Help Agile 108 5.14 Example of Senior Brief Evolution: Backup Slides for Efficient Use of Time 109 5.15 "The How Much"-Don't Force the Team to Perform "Unnatural Acts" 110 5.16 Lessons from Formalizing Planning at BOND 111 5.17 The Plan as a Living Document at BOND 113 5.18 The Power of Templates 113 5.19 Do I Need to Write Down Meeting Minutes and Action Items? 116 5.20 Involving Relevant Stakeholders 118 5.21 Involving Relevant Stakeholders -Additional Help Sometimes Needed 119 5.22 Sharing Across the Organization 120 5.23 A Measurement and Analysis Process That Fits an Agile Organization 123 5.24 Training All Project Personnel in the Organization 126 5.25 Technical Solution in an Agile Organization 127 5.26 Product and Process Quality Assurance 128 5.27 Mitigating the Risk of Your CMMI Appraisal in an Agile Organization 129 5.28 Lost Momentum Risk After Reaching Your CMMI Goal 130 5.29 Party Time! We're Level 3! The Meeting a Year Later with Ethan 131 5.30 Summary 132 5.31 Summary: How CMMI Helps Agile 133 Part IV: CMMI Helping Address Agile Misapplications 135 Chapter 6: Common Misunderstandings of Defined Processes and Agility 137 6.1 What You Will Learn in This Chapter 138 6.2 NANO Case Study Background and Problem Faced 139 6.3 How NANO Achieved Success and Then Got in Trouble 139 6.4 The Positive Side of NANO's Agility 140 6.5 Where NANO's Agile Approach Broke Down 140 6.6 Complicating Factors at NANO 141 6.7 Preparing for the Gap Analysis at NANO 141 6.8 Gap Analysis Findings at NANO 142 6.9 Example of a Generic Practice 142 6.10 How Some View Process in Agile Organizations 143 6.11 An Example of Process Misunderstanding 144 6.12 Another Example of Process Misunderstanding 145 6.13 The Good and Not So Good Sides of Distributed Process Ownership 146 6.14 Priority Recommendations at NANO 146 6.15 Develop an OPF and OPD Process at NANO 147 6.16 Using the CMMI Framework as a Process Roadmap at NANO 148 6.17 Example of Using CMMI Framework as a Roadmap 149 6.18 Addressing the Stakeholder Weakness at NANO 149 6.19 Maintaining a Successful Agile Culture as You Grow Requires Training 150 6.20 You Can't Just Use Another Organization's Processes and Get the Intended Value 152 6.21 Another Example of Formalizing Informality 152 6.22 Addressing Risk in the Process Improvement Plan at NANO 154 6.23 The NANO Process Improvement Plan 156 6.24 Priority-Based Incremental Deployment Supported by Scenario Training 156 6.25 More on GP 2.7 and Clarifying Roles and Responsibilities at NANO 157 6.26 The NANO Roles and Responsibilities Off-Site Meeting 158 6.27 "White Space" Tasks 159 6.28 An Alternative Approach to Defining Roles and Responsibilities 161 6.29 An Alternative Approach to Tailoring at NANO 162 6.30 Planning with Uncertainty Using an Agile and CMMI-Compliant Approach 163 6.31 CMMI Project Planning Consistent with Agile Planning 166 6.32 Summary: How CMMI Helps Agile 167 6.33 Summary: How Agile Helps CMMI 168 Chapter 7: Bringing Process Maturity to an R&D Culture 169 7.1 What You Will Learn in This Chapter 169 7.2 GEAR Case Study Background 170 7.3 Common Patterns at GEAR 171 7.4 The Common Pattern of Unclear Process Asset Requirements 171 7.5 Criteria and Product Content Templates 172 7.6 Writing Processes for People in "My Department" 173 7.7 Stakeholder Matrix and Product Template Recommendations 174 7.8 OPF and OPD for Agile Organizations 174 7.9 At GEAR, "No One Has a Hammer" 175 7.10 Another Advantage to Keeping the "How-to" Guidance Separate 175 7.11 Aligning Engineering and Project Management at GEAR 176 7.12 At GEAR, "It Depends on Who Shows Up" 177 7.13 Does the Written and Trained Process Match the Real Process? 178 7.14 Requirements Change Approval Alignment with Real Work 179 7.15 Asking the Intent Question Leads to Behavior Change 180 7.16 Process Development and Deployment Optimizations at GEAR 181 7.17 Advantages and Disadvantages to the "Thread" Approach 186 7.18 Process Tailoring 188 7.19 Strengths and Weaknesses of Tailoring at GEAR 188 7.20 Tailoring Recommendations at GEAR 188 7.21 Agile Process Tailoring Guidance: Always Tailor Up 189 7.22 Tailoring Down-The Wrong Approach but Used in Many Organizations 190 7.23 Why Tailoring Up Makes Sense 190 7.24 Will Tailoring Up Solve All Your Tailoring Issues? 190 7.25 The Purpose of Criteria and How They Can Help Tailoring 191 7.26 Process Compliance Issues at GEAR-The Problem 192 7.27 Process Compliance from a CMMI Model Perspective 193 7.28 Product and Process Quality Assurance (PPQA) 193 7.29 GP 2.8 Monitor and Control the Process 194 7.30 Options to Achieve GP 2.8 194 7.31 Keeping an Organization "Balanced" Versus Shifting a Culture 194 7.32 An Option to Help Achieve GP 2.8 Through Gates 195 7.33 "How to" Options to Implement PPQA 195 7.34 Recommendations at GEAR: First Step Is, Define the Rules 197 7.35 Recommendations at GEAR: Second Step Is, Compliance Checks 197 7.36 The Power of Criteria to Aid Agility 198 7.37 A True Story about the Abuse of Criteria 200 7.38 Summary: How CMMI Helps Agile 202 7.39 Summary: How Agile Helps CMMI 203 Chapter 8: People Challenges Implementing a "Hybrid" Agile Approach in a CMMI Process Mature Organization 205 8.1 What You Will Learn in This Chapter 206 8.2 Introduction 206 8.3 DART Case Study Background 207 8.4 DART Post-Mortem Project Assessment 208 8.5 More Case Study Background 208 8.6 The Way an Agile Approach Should Work with Respect to Task Management 209 8.7 Mistakes Made on DART 210 8.8 Why Didn't We Prepare Al for His Collaboration Challenges? 211 8.9 More on the DART Case Study 212 8.10 Technique 1: 10 Percent Rule 213 8.11 Technique 2: Scope and Collaboration Management 214 8.12 More on the DART Case Study 215 8.13 How Did I Make the Decision Each Day on What Was Most Important? 216 8.14 More about "Less Visible" Tasks That Require More Time on Agile Projects 217 8.15 More about the Importance of Using a Scope Document 218 8.16 Technique 3: Push-Pull 219 8.17 How Can the CMMI Help Us Implement an Effective Hybrid Agile Approach? 221 8.18 Examples of CMMI Helping Agile Teams Self-Manage 221 8.19 How Is Management Affected by an Agile Approach? 227 8.20 The Importance of Personal Safety to Establishing a Culture of Trust 231 8.21 Summary: How CMMI Can Help "Hybrid" Agile 234 8.22 Summary: How "Hybrid" Agile Can Help CMMI 235 Part V: How Real Performance Improvement Is Achieved 237 Chapter 9: Your Repeating Specific Weaknesses: Finding Them, Why They Are Bad, Eliminating Them, and Keeping Them from Coming Back 239 9.1 What You Will Learn in This Chapter 240 9.2 Motivation and Objective 240 9.3 Using the Same Approach I Use to Help Clients 241 9.4 Determining the "As-Is" State of My Golf Game 241 9.5 The Stages of Mastering a New Skill 242 9.6 A Few Simple, but Critical Steps 245 9.7 My Golf Swing Repeating Specific Weaknesses 246 9.8 Repeating Specific Weakness Lessons 247 9.9 Golf Weaknesses and Analogies to Business 249 9.10 Agile Approach 250 9.11 Selecting Specific Checkpoints 250 9.12 Measurement Objectives and Aligned Measures 251 9.13 Another Checkpoint on the Golf Improvement Project 251 9.14 A Critical Distinction: Traditional CMMI and Agile Approach 251 9.15 Were the Checkpoints for the Three Repeating Weaknesses Sufficient? 255 9.16 Analysis 256 9.17 How Did I Address the Problem of My Golf Swing Getting Shorter? 257 9.18 Rhythm in Golf and High-Tech Organizations 257 9.19 What Business People Can Learn from Golf Professionals 259 9.20 How the Checkpoints Helped to Achieve the Golf Project Goal and More 260 9.21 Revisiting CMMI Level 4/5 Practices and Their Relationship to Agility 262 9.22 Summary: How Agile Can Help CMMI 263 Chapter 10: Summary and Conclusion 265 10.1 What You Will Learn in This Chapter 265 10.2 What Can We Learn from the Case Studies in This Book? 265 10.3 What Have We Learned from NANO and GEAR? 268 10.4 What Have We Learned about Measurement? 269 10.5 What Have We Learned by Thinking Out of the Box (Golf Project)? 270 10.6 The Value of Small Changes to Aid Real and Consistent Performance 271 10.7 Supporting Small Changes in Business: The Two Sides of Tailoring and Criteria 272 10.8 Conclusion 274 Epilogue: What Does Passion Have to Do with Performance? 279 Appendix A: Twelve Principles Behind the Agile Manifesto 285 Appendix B: Example Agile Project Management Plan (PMP) Template 287 Appendix C: Example Agile Organizational Process Asset Guidelines 293 Appendix D: Example Agile Process Asset Approval and Release Process 297 Appendix E: Example Agile Organizational Process Focus Process 299 Appendix F: Example Agile Organizational Process Definition Process 303 Appendix G: Terminology Used in This Book 307 References 309 About the Author 313 Index 315
Paul E. McMahon, Principal, PEM Systems, has been an independent consultant since 1997, helping companies increase agility and process maturity. He has taught software engineering at Binghamton University, State University of New York; has conducted workshops on engineering processes and management; and has published more than 35 articles, including several on Agile development. His insights reflect 24 years of engineering and management experience working for companies such as Link Simulation and Lockheed Martin.
Praise for Integrating CMMI (R) and Agile Development "When Alistair Cockburn gave the keynote for our Software Engineering Process Conference in San Jose, I knew that the issues that had separated CMMI and Agile were far more about perceptions than about principled development. This book fills a critical need in bridging two communities that share a common purpose-producing high-quality software systems that excite the customer and win repeat business opportunities." -Mike Phillips, CMMI Project Manager, Software Engineering Institute; coauthor, CMMI (R)-ACQ: Guidelines for Improving the Acquisition of Products and Services "The client cases Paul describes are easily relatable and can be extrapolated to many organizations. He spends most of his efforts in these cases on the basics that are common to CMMI and Agile. In particular, he dutifully applies Lean principles and practices to empower Agile practices and facilitate CMMI practices. . . . Chapter 9 is the book's best stuff-not because it's about golf, but because this is the point at which you get answers to your key question: What's in it for me?" -Hillel Glazer, Principal and CEO, Entinex, Inc.; Certified High Maturity SCAMPI Lead Appraiser; CMMI Instructor "This book will measurably improve how systems and software systems are developed." -Bob Epps, Program Management Senior Manager, Lockheed Martin Corporate Engineering and Technology "Having experience with both CMMI and Agile, I find this book very insightful. I keep taking notes. I think it is a great aid to anyone who has been through the process." -Jim Convery, Director, Alion Science & Technology Corp., BMH Advanced Modeling & Simulation Technology Operation, a CMMI Maturity Level 3 Organization "I consider the discussion of model-based improvement in the early chapters of this book to be one of the best I have seen. Paul has great insight into effective software process improvement and is articulate in describing both the issues and ways in which they should be considered." -Dr. Mark Paulk, Senior Systems Scientist, Institute for Software Research, Carnegie Mellon University; Development Lead, Software Capability Maturity Model (CMM for Software) "This is a good topic presented with lots of practical points, helpful summaries, and interesting case studies. The idea of `Doorway Risk Management' in Chapter 4 is great!" -John Troy, Program Manager, Rockwell Collins, Inc. "I found several really nice nuggets throughout the book (lessons, cautions, insights, etc.). I also liked the summary sections at the end of each chapter and the extensive use of case studies. Finally, I discovered some real gems in the Epilogue, which provides a very nice conclusion for the book." -Kyle Gabhart, Director of Emerging Technologies, Web Age Solutions; coauthor, Service Oriented Architecture: A Field Guide for Executives