Enterprise Software Delivery Bringing Agility and Efficiency Global Software Supply Chain to the Alan W. Brown AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore Mexico City
Contents List of Figures. Foreword Preface. xi xvii xix Acknowledgments About the Author xxv xxvii Chapter 1: Why Is Enterprise Software Delivery So Difficult? 1 1.1 Introduction 2 1.2 What Is an Enterprise System? 5 1.3 What Is Different Today? 7 1.4 What Is the Focus of an Enterprise Software Delivery Organization? 9 1.5 How Are the Needs for Enterprise Software Delivery Evolving? 11 1.6 Conclusions 13 Chapter 2: Anatomy of an Enterprise Software Delivery Project 15 2.1 Introduction 15 2.2 MyCo and the MyProj Enterprise Software Delivery Project 16 2.3 Business and Organizational Context 17 2.4 Project Context 18 2.5 Project Execution Results 19 2.6 Post Hoc Analysis 20 2.6.1 Enterprise Software Delivery Organization Analysis 21 2.6.2 Project-Level Analysis 23 2.7 Commentary 25 2.8 Conclusions 27 v
vi Contents Chapter 3: The Software Supply Chain and Software Factories 29 3.1 Introduction 30 3.2 Toward a Software Supply Chain 31 3.3 Industrializing Enterprise Software Delivery: An Analogy 33 3.4 A Software Factory Approach to Enterprise Software Delivery 34 3.4.1 Aligning Business and Engineering 35 3.4.2 Automating Processes and Tasks 35 3.4.3 Leveraging Assets across the Enterprise 35 3.4.4 Supporting Lean Processes and Integrated Infrastructures 36 3.4.5 Automating Operational Measurement and Control 36 3.5 Key Elements of the Software Factory 37 3.5.1 Business Management 37 3.5.2 Asset Production and Maintenance 38 3.5.3 Application Development and Delivery Management 38 3.5.4 Application Infrastructure and Deployment Management 39 3.5.5 Governance 39 3.6 Examples and Illustrations 40 3.6.1 Example: IBM Application Assembly Optimization (AAO) Approach 40 3.6.2 Example: IBM Test Factory Approach 43 3.6.3 Example: A Large Financial Organization's Core Insurance Platform 45 3.7 Observations and Commentary 47 3.8 Conclusions 50 Chapter 4: Collaborative Software Delivery 53 4.1 Introduction 53 4.2 Globally Distributed Development 55 4.2.1 Distributed Team Working 57 4.2.2 Organizationally Distributed Working 58 4.2.3 Globally Distributed Working 61 4.3 Collaborative Delivery Environments 64 4.4 Collaborative Application Life-Cycle Management 67
Contents vii 4.5 Examples 70 4.5.1 An Outsource Application Delivery Solution for a Large Financial Services Organization. 70 120. 4.5.2 IBM Software Group Product Delivery 75 4.6 Conclusions 80 Chapter 5: Agile Software Delivery 81 5.1 Introduction 82 5.2 Rethinking Enterprise Software Delivery 85 5.2.1 From Software Development to Software Delivery 85 5.2.2 The Basis for Agility 88 5.2.3 The Focus for Agility 90 5.3 Agility at Enterprise Scale 90 5.3.1 Agility in Context 91 5.3.2 Agile Scaling Factors 92 5.3.3 Scaling Rollout of Agile Approaches 102 5.4 Examples of Large-Scale Agile Adoption 109 5.4.1 Agile Supply Chain Management at ABC Bank 110 5.4.2 Enterprise Agile Testing Services at XYZ 113 5.5 Conclusions 115 Chapter 6: Software Quality 117 6.1 Introduction 118 6.2 A Broader View of Software Quality 6.2.1 End-to-End Quality Management 121 6.2.2 Assessing the Health of Enterprise Software Delivery 122 6.2.3 The Keys to Continuous Software Quality Assurance 126 6.3 Quality across the Software Supply Chain 126 6.3.1 Collaboration 126 6.3.2 Automation 127 6.3.3 Visibility 129 6.4 Software Testing Factories 129 6.5 Security 134 6.5.1 Code Scanning 134 6.5.2 Web Access and Compliance Testing 135 6.6 Conclusions 136
viii Contents Chapter 7: Governance, Measurement, and Metrics 137 7.1 Introduction 138 7.2 Measuring Enterprise Software Delivery 139 7.2.1 The Use of Metrics 141 7.2.2 Measurement Maturity 143 7.2.3 Measurement and Improvement 145 7.3 Managing the Global Software Supply Chain 146 7.3.1 Governance in Outsourcing 146 7.3.2 Metrics and the Software Supply Chain 148 7.4 Examples 150 7.4.1 Product Porfolio Management at IBM Rational... 152 7.4.2 Supplier Management at a Large Bank 152 7.5 Conclusions 153 Chapter 8: A Case Study in Agile-at-Scale Adoption at Danske Bank 155 8.1 Introduction 156 8.2 Motivation for Change 158 8.3 The Focus on Adopting an Agile Approach 159 8.4 The Danske Bank Agile Delivery Process 161 8.5 Implementing an Agile Delivery Process Workbench 163 8.6 Piloting the Danske Bank Agile Delivery Process 165 8.7 Measuring Success 167 8.8 Rollout Principles 168 8.9 Lessons Learned 170 8.10 Conclusions 171 Chapter 9: A Case Study in Global Software Product Delivery at IBM Rational 173 9.1 Introduction 174 9.2 Status and Motivation 175 9.3 Goals and Objectives for Software Delivery in Rational... 176 9.4 Introducing Agile Delivery at Rational 179 9.4.1 Development Practices 179 9.4.2 Development Process 180 9.4.3 Team Organization and Responsibilities 181 9.4.4 Planning 183 9.4.5 Build and Build Management 184 9.4.6 Retrospectives 188
Contents ix Chapter 10: 9.4.7 Transparency 188 9.4.8 End Game Tracking and Stability 190 9.4.9 Ongoing Management and Decision Making 191 9.5 Results and Observations 193 9.6 Conclusions 195 Lessons for Success in Global Enterprise Software Delivery 197 10.1 Introduction 198 10.2 Revisiting the Enterprise 198 10.2.1 Organizations Managing Front- and Back-Office Systems 199 10.2.2 Organizations Where Software Is the Business 200 10.2.3 Organizations "Where Software Is the Product 201 10.2.4 Organizations Where Software Delivery Is the Product 202 10.2.5 Summary 204 10.3 Risks and Limitations 204 10.3.1 Applicability to SMEs 204 10.3.2 The Impact of Process Maturity 206 10.3.3 Software Is Not Manufactured; It Is Crafted and Evolved 209 10.3.4 Supply Chain Weaknesses 211 10.3.5 Summary 213 10.4 Lessons from Other Domains 213 10.4.1 Evolutionary Acquisition and TLCM 214 10.4.2 Supply Chain Management 215 10.4.3 Lean Manufacturing 218 10.5 Examples and Illustrations 220 10.5.1 US State Government Outsourcing 221 10.5.2 Nokia Product Development and Delivery 222 10.5.3 FAA Large Project Management 223 10.6 Conclusions 225 Chapter 11: The Future of Global Enterprise Software Delivery... 227 11.1 Introduction 228 11.2 The Beginning of the End, or the End of the Beginning?... 229
X Contents 11.3 Into the Clouds 231 11.3.1 Understanding the Cloud 232 11.3.2 Impact on Enterprise Software Delivery Organizations 236 11.3.3 Summary 240 11.4 Sourcing Options 241 11.5 The Third Wave 244 11.6 Conclusions 246 Appendix A: Enterprise Software Delivery Revisited 249 A.l Introduction 250 A.2 The Enterprise Software Delivery Organization 251 A.2.1 Organizational Approaches 252 A.3 Managing an Enterprise Software Portfolio 254 A.4 Examining the Mix of Portfolio Solutions 257 A.4.1 The Role of Packaged Applications 257 A.4.2 Business Integration 258 A.4.3 Balancing Enterprise Software Delivery Needs 259 A.5 Enterprise Integration Issues 266 A.5.1 Business Process Complexity 267 A.5.2 Service Interface Complexity 270 A.5.3 Supply Chain Complexity 271 A. 6 Managing Change 272 A.6.1 Tactical-Level Change Management 272 A.6.2 Strategic-Level Change Management 272 A.7 Conclusions 274 References 277 Index 283