Home > Store

Agile Application Lifecycle Management: Using DevOps to Drive Process Improvement

Agile Application Lifecycle Management: Using DevOps to Drive Process Improvement

eBook (Watermarked)

  • Your Price: $27.99
  • List Price: $34.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Also available in other formats.

Register your product to gain access to bonus material or receive a coupon.

Description

  • Copyright 2016
  • Dimensions: 7" x 9-1/4"
  • Pages: 416
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-13-276184-X
  • ISBN-13: 978-0-13-276184-0

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. 

Sample Content

Sample Pages

Download the sample pages (includes Chapter 4 and Index)

Table of 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 

Updates

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership