Agile Application Lifecycle Management: Using Devops to Drive Process Improvement

Agile Application Lifecycle Management: Using Devops to Drive Process Improvement

By: Steve Berczuk (author), Leslie Sachs (author), Robert Aiello (author), Bob Aiello (author)Paperback

More than 4 weeks availability

Description

Integrate Agile ALM and DevOps to Build Better Software and Systems at Lower Cost Agile Application Lifecycle Management (ALM) is a comprehensive development lifecycle that encompasses essential Agile principles and guides all activities needed to deliver successful software or other customized IT products and services. Flexible and robust, Agile ALM offers "just enough process" to get the job done efficiently and utilizes the DevOps focus on communication and collaboration to enhance interactions among all participants. Agile Application Lifecycle Management offers practical advice and strategies for implementing Agile ALM in your complex environment. Leading experts Bob Aiello and Leslie Sachs show how to fully leverage Agile benefits without sacrificing structure, traceability, or repeatability. You'll find realistic guidance for managing source code, builds, environments, change control, releases, and more. The authors help you support Agile in organizations that maintain traditional practices, conventional ALM systems, or siloed, non-Agile teams. They also show how to scale Agile ALM across large or distributed teams and to environments ranging from cloud to mainframe. Coverage includes * Understanding key concepts underlying modern application and system lifecycles* Creating your best processes for developing your most complex software and systems* Automating build engineering, continuous integration, and continuous delivery/deployment* Enforcing Agile ALM controls without compromising productivity* Creating effective IT operations that align with Agile ALM processes* Gaining more value from testing and retrospectives* Making ALM work in the cloud, and across the enterprise* Preparing for the future of Agile ALM Today, you need maximum control, quality, and productivity, and this guide will help you achieve these capabilities by combining the best practices found in Agile ALM, Configuration Management (CM), and DevOps.

Create a review

About Author

Robert Aiello is a consultant and technical editor for CM Crossroads, and is coauthor of Configuration Management Best Practices (Addison-Wesley, 2011). Bob has more than twenty-five years of experience as a technical manager in several top financial services firms where he had company-wide responsibility for CM and DevOps, often providing hands-on technical support for enterprise source code management tools, SOX/Cobit compliance, build engineering, continuous integration, and automated application deployment. Bob has served as the vice-chair of the IEEE 828 Standards working group (CM Planning) and is a member of the IEEE Software and Systems Engineering Standards Committee (S2ESC) management board. He holds a master's degree in industrial psychology from New York University and a bachelor's of science in computer science and math from Hofstra University. Leslie Sachs is a New York State certified school psychologist and the COO of CM Best Practices consulting. Leslie is coauthor of Configuration Management Best Practices (Addison-Wesley, 2011). Leslie has more than twenty years of experience in the psychology field and has worked in a variety of clinical and business settings where she has provided many effective interventions designed to improve the social and educational functioning of both individuals and groups. She has a master's of science in school psychology from Pace University and interned in Bellevue Hospital's Psychiatric Center in New York City. A firm believer in the uniqueness of every individual, she has also participated in advanced training with Mel Levine's "All Kinds of Minds" Institute and uses an eclectic style to blend different modalities into a custom approach for each client.

Contents

Preface xxiii Acknowledgments xxxix About the Authors xli Part I: Defining the Process 1 Chapter 1: Introducing Application Lifecycle Management Methodology 3 1.1 Goals of Application Lifecycle Management 4 1.2 Why Is ALM Important? 5 1.3 Where Do I Start? 7 1.4 What Is Application Lifecycle Management? 8 1.5 Conclusion 26 References 26 Chapter 2: Defining the Software Development Process 27 2.1 Goals of Defining the Software Development Process 27 2.2 Why Is Defining the Software Development Process Important? 28 2.3 Where Do I Start? 29 2.4 Explaining the Software Development Lifecycle 29 2.5 Systems versus Software Development Lifecycle 32 2.6 Defining Requirements 32 2.7 Test-Driven Development 37 2.8 Designing Systems 37 2.9 Software Development 38 2.10 Testing 38 2.11 Continuous Integration 40 2.12 Continuous Delivery and Deployment 41 2.13 Defining Phases of the Lifecycle 41 2.14 Documentation Required 42 2.15 DevOps 43 2.16 Communicating with All Stakeholders 44 2.17 Production Support 45 2.18 Maintenance and Bugfixes 46 2.19 Lifecycle in the Beginning 46 2.20 Maintenance of the Lifecycle 47 2.21 Creating the Knowledge Base 47 2.22 Continuous Improvement 48 2.23 Conclusion 48 Chapter 3: Agile Application Lifecycle Management 49 3.1 Goals of Agile Application Lifecycle Management 49 3.2 Why Is Agile ALM Important? 50 3.3 Where Do I Start? 50 3.4 Understanding the Paradigm Shift 51 3.5 Rapid Iterative Development.52 3.6 Remember RAD? 53 3.7 Focus on 12 Agile Principles 54 3.8 Agile Manifesto 56 3.9 Fixed Timebox Sprints 57 3.10 Customer Collaboration 58 3.11 Requirements 59 3.12 Documentation 60 3.13 Conclusion 60 Chapter 4: Agile Process Maturity 61 4.1 Goals of Agile Process Maturity 62 4.2 Why Is Agile Process Improvement Important? 62 4.3 Where Do I Start? 63 4.4 Understanding Agile Process Maturity 64 4.5 Applying the Principles 69 4.6 Recognition by the Agile Community 70 4.7 Consensus within the Agile Community 71 4.8 What Agile Process Maturity Is Not 71 4.9 What Does an Immature Agile Process Look Like? 72 4.10 Problems with Agile 72 4.11 Waterfall Pitfalls73 4.12 The Items on the Right 75 4.13 Agile Coexisting with Non-Agile 75 4.14 IT Governance 75 4.14.1 Providing Transparency 76 4.15 ALM and the Agile Principles 76 4.16 Agile as a Repeatable Process.76 4.17 Deming and Quality Management 77 4.18 Agile Maturity in the Enterprise78 4.19 Continuous Process Improvement 79 4.20 Measuring the ALM79 4.21 Vendor Management 80 4.22 Hardware Development 80 4.23 Conclusion 81 Chapter 5: Rapid Iterative Development 83 5.1 Goals of Rapid Iterative Development 83 5.2 Why Is Rapid Iterative Development Important? 84 5.3 Where Do I Start? 84 5.4 The Development View 85 5.5 Controlled Isolation 85 5.6 Managing Complexity 86 5.7 Continuous Integration 86 5.8 It's All About (Technology) Risk 87 5.9 Taming Technology 87 5.10 Designing Architecture 87 5.11 Conclusion 88 Further Reading 88 Part II: Automating the Process 89 Chapter 6: Build Engineering in the ALM 91 6.1 Goals of Build Engineering 91 6.2 Why Is Build Engineering Important? 92 6.3 Where Do I Start? 92 6.4 Understanding the Build..93 6.5 Automating the Application Build 94 6.6 Creating the Secure Trusted Base 95 6.7 Baselining 96 6.8 Version Identification 97 6.9 Compile Dependencies 98 6.10 Build in the ALM 98 6.11 The Independent Build 99 6.12 Creating a Build Robot 99 6.13 Building Quality In 100 6.14 Implementing Unit Tests 100 6.15 Code Scans 100 6.16 Instrumenting the Code..101 6.17 Build Tools 101 6.18 Conclusion 101 Chapter 7: Automating the Agile ALM 103 7.1 Goals of Automating the Agile ALM 103 7.2 Why Automating the ALM Is Important 103 7.3 Where Do I Start? 104 7.4 Tools 104 7.5 What Do I Do Today? 107 7.6 Automating the Workflow 108 7.7 Process Modeling Automation 108 7.8 Managing the Lifecycle with ALM 109 7.9 Broad Scope of ALM Tools 109 7.10 Achieving Seamless Integration 109 7.11 Managing Requirements of the ALM 110 7.12 Creating Epics and Stories 111 7.13 Systems and Application Design 111 7.14 Code Quality Instrumentation 111 7.15 Testing the Lifecycle 112 7.16 Test Case Management 112 7.17 Test-Driven Development 113 7.18 Environment Management 114 7.19 Supporting the CMDB 115 7.20 Driving DevOps 115 7.21 Supporting Operations 116 7.22 Help Desk 116 7.23 Service Desk 117 7.24 Incident Management 117 7.25 Problem Escalation 117 7.26 Project Management 118 7.27 Planning the PMO 118 7.28 Planning for Implementation119 7.29 Evaluating and Selecting the Right Tools 119 7.30 Defining the Use Case 119 7.31 Training Is Essential 120 7.32 Vendor Relationships 120 7.33 Keeping Tools Current 120 7.34 Conclusion 120 Chapter 8: Continuous Integration 121 8.1 Goals of Continuous Integration 121 8.2 Why Is Continuous Integration Important? 122 8.3 Where Do I Start? 123 8.4 Principles in Continuous Integration 123 8.5 Challenges of Integration 123 8.6 Commit Frequently 124 8.7 Rebase and Build Before Commit 125 8.8 Merge Nightmares 125 8.9 Smaller Units of Integration 126 8.10 Frequent Integration Is Better 126 8.11 Code Reviews 127 8.12 Establishing a Build Farm 127 8.13 Preflight Builds 129 8.14 Establishing the Build and Deploy Framework 129 8.15 Establishing Traceability 130 8.16 Better Communication 131 8.17 Finger and Blame 133 8.18 Is the Nightly Build Enough? 133 8.19 Selecting the Right Tools 134 8.20 Enterprise Continuous Integration 135 8.21 Training and Support 136 8.22 Deploy and Test 136 8.23 Tuning the Process 137 8.24 CI Leads to Continuous Deployment 138 8.25 Conclusion 138 Chapter 9: Continuous Delivery and Deployment 139 9.1 Goals of Continuous Deployment 139 9.2 Why Is Continuous Deployment Important? 140 9.3 Where Do I Start? 141 9.4 Establishing the Deployment Pipeline 141 9.5 Rapid Incremental Deployment.143 9.6 Minimize Risk 144 9.7 Many Small Deployments Better than a Big Bang 145 9.8 Practice the Deploy 146 9.9 Repeatable and Traceable 147 9.10 Workflow Automation 148 9.11 Ergonomics of Deployments 150 9.12 Verification and Validation of the Deployment 150 9.13 Deployment and the Trusted Base 151 9.14 Deploy to Environments that Mirror Production 152 9.15 Assess and Manage Risk 153 9.16 Dress Rehearsal and Walkthroughs 154 9.17 Imperfect Deployments 155 9.18 Always Have a Plan B 155 9.19 Smoke Test 156 9.20 Conclusion 157 Part III: Establishing Controls 159 Chapter 10: Change Management 161 10.1 Goals of Change Management 161 10.2 Why Is Change Management Important? 162 10.3 Where Do I Start? 163 10.4 Traceability for Compliance 164 10.5 Assess and Manage Risk 164 10.6 Communication 165 10.7 Change in Application Lifecycle Management 166 10.8 The Change Ecosystem 167 10.9 QA and Testing 167 10.10 Monitoring Events 168 10.11 Establishing the Command Center 169 10.12 When Incidents Occur 170 10.13 Problems and Escalation 172 10.14 The Change Management Process 173 10.15 Preapproved Changes 175 10.16 Establishing the Change Management Function 176 10.17 Change Control Topology 176 10.18 Coordinating across the Platform 180 10.19 Coordinating across the Enterprise 180 10.20 Beware of Fiefdoms181 10.21 Specialized Change Control 182 10.22 Vendor Change Control 182 10.23 SaaS Change Control 182 10.24 Continuous Process Improvement 183 10.25 Conclusion 184 Chapter 11: IT Operations 185 11.1 Goals of IT Operations 185 11.2 Why Is IT Operations Important? 186 11.3 Where Do I Start? 186 11.4 Monitoring the Environment 188 11.5 Production Support 191 11.6 Help Desk 192 11.7 IT Process Automation195 11.8 Workflow Automation 196 11.9 Communication Planning 197 11.10 Escalation 198 11.11 DevOps 200 11.12 Continuous Process Improvement 200 11.13 Utilizing Standards and Frameworks 201 11.14 Business and Product Management 205 11.15 Technical Management 206 11.16 IT Operations Management 206 11.17 IT Operations Controls 206 11.18 Application Management 208 11.19 Security Operations 208 11.20 Cloud-Based Operations 209 11.21 Service Desk 210 11.22 Staffing the Service Desk 211 11.23 Incidents and Problems 212 11.24 Knowledge Management 212 11.25 Conclusion 212 Chapter 12: DevOps 213 12.1 Goals of DevOps 213 12.2 Why Is DevOps Important? 214 12.3 Where Do I Start? 214 12.4 How Do I Implement DevOps? 215 12.5 Developers and Operations Conflict 216 12.6 Developers and Operations Collaboration 216 12.7 Need for Rapid Change 218 12.8 Knowledge Management 219 12.9 The Cross-Functional Team 220 12.10 Is DevOps Agile? 221 12.11 The DevOps Ecosystem 222 12.12 Moving the Process Upstream 223 12.13 DevOps in Dev 224 12.14 DevOps as Development 225 12.15 Dependency Control 227 12.16 Configuration Control 228 12.17 Configuration Audits 228 12.18 QA and DevOps 229 12.19 Information Security 229 12.20 Infrastructure as Code 229 12.21 Taming Complexity 230 12.22 Automate Everything 230 12.23 Disaster Recovery and Business Continuity 230 12.24 Continuous Process Improvement 231 12.25 Conclusion 231 Chapter 13: Retrospectives in the ALM 233 13.1 Goals of Retrospectives 234 13.2 Why Are Retrospectives Important? 234 13.3 Where Do I Start? 234 13.4 Retrospectives as Process Improvement 235 13.5 Which Mode Should You Use? 238 13.6 Perspective Is Essential 240 13.7 DevOps: The Cross-Functional View 241 13.8 Understanding the Use Case 241 13.9 Retrospectives as Leadership 241 13.10 Running the Meeting 242 13.11 Retrospectives Supporting ITIL 242 13.12 Retrospectives and Defect Triage 243 13.13 Retrospectives as Crisis Management 243 13.14 Supporting IT Governance 244 13.15 Audit and Regulatory Compliance 244 13.16 Retrospectives as Risk Management 244 13.17 Vendor Management 244 13.18 Too Much Process 245 13.19 Corporate Politics 245 13.20 Metrics and Measurement 245 13.21 Conclusion 246 Part IV: Scaling the Process 247 Chapter 14: Agile in a Non-Agile World 249 14.1 Goals of Hybrid Agile 249 14.2 Why Is Hybrid Agile Important? 250 14.3 Where Do I Start? 250 14.4 Pragmatic Choices 251 14.5 The Best of Both Worlds 251 14.6 Keeping It Agile 252 14.7 Establishing the Agile Pilot 253 14.8 Transitioning to Agile 253 14.9 Having a Baby 254 14.10 The Elephant in the Room 254 14.11 Are We There Yet? 255 14.12 Agile Disasters 255 14.13 Developer View 256 14.14 No Information Radiators Allowed 256 14.15 Waterfall Is Iterative, Too 256 14.16 Document Requirements as Much as Possible 257 14.17 Last Responsible Moment 257 14.18 Technology Risk 257 14.19 Understanding the Ecosystem 257 14.20 Mature Agile 258 14.21 Meeting IT Governance Requirements 258 14.22 Conclusion 259 Chapter 15: IT Governance 261 15.1 Goals of IT Governance 261 15.2 Why Is IT Governance Important? 262 15.3 Where Do I Start? 262 15.4 Senior Management Makes Decisions 263 15.5 Communicating Up 264 15.6 How Much Work Is Going On? 265 15.7 Identify and Manage Risk 266 15.8 Time and Resources 267 15.9 Scalability with More Resources 268 15.10 Delays Happen 268 15.11 The Helicopter Mom 269 15.12 I Told You That Already 269 15.13 Learning from Mistakes 270 15.14 Governance Ecosystem 270 15.15 Continuous Process Improvement 270 15.16 Governance and Compliance 271 15.17 Conclusion 271 Chapter 16: Audit and Regulatory Compliance 273 16.1 Goals of Audit and Regulatory Compliance 273 16.2 Why Are Audit and Regulatory Compliance Important? 274 16.3 Where Do I Start? 274 16.4 Compliance with What? 275 16.5 Establishing IT Controls 275 16.6 Internal Audit 276 16.7 External Audit 277 16.8 Federally Mandated Guidelines 278 16.9 Essential Compliance Requirements 283 16.10 Improving Quality and Productivity through Compliance 283 16.11 Conducting an Assessment 283 16.12 Conclusion 284 Chapter 17: Agile ALM in the Cloud 285 17.1 Goals of ALM in the Cloud 285 17.2 Why Is ALM in the Cloud Important? 286 17.3 Where Do I Start? 286 17.4 Understanding the Cloud 287 17.5 Developing in the Cloud 288 17.6 Change Management in the Cloud290 17.7 Managing the Lifecycle with ALM292 17.8 Cloud-based ALM Tools 292 17.9 Achieving Seamless Integrations 292 17.10 Iterative Development in the Cloud 293 17.11 Interfacing with Your Customers 293 17.12 Managing with SLAs.294 17.13 Managing Cloud Risk 294 17.14 Development and Test Environments for All 295 17.15 Environment Management 295 17.16 DevOps in the Cloud 296 17.17 Controlling Costs and Planning 296 17.18 Conclusion 297 Chapter 18: Agile ALM on the Mainframe 299 18.1 Goals of Agile ALM on the Mainframe 299 18.2 Why Is Agile ALM on the Mainframe Important? 299 18.3 Where Do I Start? 300 18.4 DevOps on the Mainframe 302 18.5 Conclusion 303 Chapter 19: Integration across the Enterprise 305 19.1 Goals of Integration across the Enterprise 305 19.2 Why Is Integration across the Enterprise Important? 305 19.3 Where Do I Start? 306 19.4 Multiplatform 307 19.5 Coordinating across Systems 307 19.6 Understanding the Interfaces 307 19.7 The Enterprise Ecosystem 308 19.8 Release Coordination 308 19.9 Conclusion 308 Chapter 20: QA and Testing in the ALM 309 20.1 Goals of QA and Testing 309 20.2 Why Are QA and Testing Important? 309 20.3 Where Do I Start? 310 20.4 Planning the Testing Process 311 20.5 Creating the Test Cases 313 20.6 Ensuring Quality 313 20.7 Ensuring Quality from the Beginning 313 20.8 Conclusion 314 Chapter 21: Personality and Agile ALM 315 21.1 Goals of Personality and the Agile ALM 315 21.2 Why Are Personality and Agile ALM Important? 315 21.3 Where Do I Start? 316 21.4 Group Dynamics 320 21.5 Intergroup Conflict 323 21.6 Managing Stress and Dysfunctional Behavior 329 21.7 Taking a Positive Approach 335 21.8 Conclusion 344 References 344 Further Reading 345 Chapter 22: The Future of ALM 347 22.1 Real-World ALM 347 22.2 ALM in Focus 348 22.3 Conclusion 349 Index 351

Product Details

  • publication date: 07/06/2016
  • ISBN13: 9780321774101
  • Format: Paperback
  • Number Of Pages: 416
  • ID: 9780321774101
  • weight: 1000
  • ISBN10: 0321774108

Delivery Information

  • Saver Delivery: Yes
  • 1st Class Delivery: Yes
  • Courier Delivery: Yes
  • Store Delivery: Yes

Prices are for internet purchases only. Prices and availability in WHSmith Stores may vary significantly

Close