You are previewing Agile Application Lifecycle Management: Using DevOps to Drive Process Improvement.
O'Reilly logo
Agile Application Lifecycle Management: Using DevOps to Drive Process Improvement

Book 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. 

    Table of Contents

    1. About This E-Book
    2. Title Page
    3. Copyright Page
    4. Dedication Page
    5. Contents
    6. Preface
      1. DevOps and the ALM
      2. IT Governance
      3. Application Lifecycle Management
        1. Agile CM in an ALM World
      4. The Definition of Agile ALM
        1. Understanding Where We Have Come From
        2. Principles of Process Improvement
      5. Terminology
        1. Use of “I” versus “We”
      6. Why I Write About Agile CM, DevOps, and Agile ALM
        1. Blindness and Process Improvement
      7. Classroom Materials
      8. Website for this Book
      9. Who Should Read This Book
      10. How This Book Is Organized
        1. Part I: Defining the Process
        2. Part II: Automating the Process
        3. Part III: Establishing Controls
        4. Part IV: Scaling the Process
    7. Acknowledgments
    8. About the Authors
    9. Part I: Defining the Process
      1. Chapter 1. Introducing Application Lifecycle Management Methodology
        1. 1.1 Goals of Application Lifecycle Management
        2. 1.2 Why Is ALM Important?
        3. 1.3 Where Do I Start?
        4. 1.4 What Is Application Lifecycle Management?
          1. 1.4.1 Remember the SDLC?
          2. 1.4.2 Business Focus
          3. 1.4.3 Agile or Not?
          4. 1.4.4 Mature Process or Fluid?
          5. 1.4.5 Rapid Iterative Development
          6. 1.4.6 Core Configuration Management Best Practices
          7. 1.4.7 Automation
          8. 1.4.8 Continuous Integration
          9. 1.4.9 Continuous Deployment
          10. 1.4.10 Change Management
          11. 1.4.11 IT Operations
          12. 1.4.12 DevOps
          13. 1.4.13 Retrospectives
          14. 1.4.14 IT Governance
          15. 1.4.15 Audit and Regulatory Compliance
          16. 1.4.16 ALM and the Cloud
          17. 1.4.17 Mainframe
          18. 1.4.18 Integration across the Enterprise
          19. 1.4.19 Quality Assurance and Testing
          20. 1.4.20 Role of Personality
        5. 1.5 Conclusion
        6. References
      2. Chapter 2. Defining the Software Development Process
        1. 2.1 Goals of Defining the Software Development Process
        2. 2.2 Why Is Defining the Software Development Process Important?
        3. 2.3 Where Do I Start?
        4. 2.4 Explaining the Software Development Lifecycle
        5. 2.5 Systems versus Software Development Lifecycle
        6. 2.6 Defining Requirements
          1. 2.6.1 Managing Complexity and Change
          2. 2.6.2 Validity of Requirements
          3. 2.6.3 Testing Requirements
          4. 2.6.4 Functional Requirements
          5. 2.6.5 Nonfunctional Requirements
          6. 2.6.6 Epics and Stories
          7. 2.6.7 Planning for Changing Requirements
          8. 2.6.8 Workflow for Defining Requirements
        7. 2.7 Test-Driven Development
        8. 2.8 Designing Systems
        9. 2.9 Software Development
        10. 2.10 Testing
          1. 2.10.1 Testing the Application
          2. 2.10.2 Testing the Process Itself
        11. 2.11 Continuous Integration
        12. 2.12 Continuous Delivery and Deployment
        13. 2.13 Defining Phases of the Lifecycle
        14. 2.14 Documentation Required
        15. 2.15 DevOps
        16. 2.16 Communicating with All Stakeholders
        17. 2.17 Production Support
        18. 2.18 Maintenance and Bugfixes
        19. 2.19 Lifecycle in the Beginning
        20. 2.20 Maintenance of the Lifecycle
        21. 2.21 Creating the Knowledge Base
        22. 2.22 Continuous Improvement
        23. 2.23 Conclusion
      3. Chapter 3. Agile Application Lifecycle Management
        1. 3.1 Goals of Agile Application Lifecycle Management
        2. 3.2 Why Is Agile ALM Important?
        3. 3.3 Where Do I Start?
        4. 3.4 Understanding the Paradigm Shift
        5. 3.5 Rapid Iterative Development
        6. 3.6 Remember RAD?
        7. 3.7 Focus on 12 Agile Principles
        8. 3.8 Agile Manifesto
        9. 3.9 Fixed Timebox Sprints
        10. 3.10 Customer Collaboration
        11. 3.11 Requirements
        12. 3.12 Documentation
        13. 3.13 Conclusion
      4. Chapter 4. Agile Process Maturity
        1. 4.1 Goals of Agile Process Maturity
        2. 4.2 Why Is Agile Process Improvement Important?
        3. 4.3 Where Do I Start?
        4. 4.4 Understanding Agile Process Maturity
          1. 4.4.1 Adherence to the Principles
          2. 4.4.2 Repeatable Process
          3. 4.4.3 Scalability (Scrum of Scrums)
          4. 4.4.4 Comprehensive (Items on the Right)
          5. 4.4.5 Transparency and Traceability
          6. 4.4.6 IT Governance
          7. 4.4.7 Coexistence with Non-agile Projects
          8. 4.4.8 Harmonization with Standards and Frameworks
          9. 4.4.9 Following a Plan
          10. 4.4.10 Continuous Process Improvement
        5. 4.5 Applying the Principles
        6. 4.6 Recognition by the Agile Community
        7. 4.7 Consensus within the Agile Community
        8. 4.8 What Agile Process Maturity Is Not
        9. 4.9 What Does an Immature Agile Process Look Like?
        10. 4.10 Problems with Agile
        11. 4.11 Waterfall Pitfalls
          1. 4.11.1 Mired in Process
          2. 4.11.2 Pretending to Follow the Process
        12. 4.12 The Items on the Right
          1. 4.12.1 Adjusting Ceremony
        13. 4.13 Agile Coexisting with Non-Agile
        14. 4.14 IT Governance
          1. 4.14.1 Providing Transparency
        15. 4.15 ALM and the Agile Principles
        16. 4.16 Agile as a Repeatable Process
          1. 4.16.1 Scalability
          2. 4.16.2 Delivering on Time and within Budget
          3. 4.16.3 Quality
        17. 4.17 Deming and Quality Management
          1. 4.17.1 Testing versus Building Quality In
          2. 4.17.2 Productivity
        18. 4.18 Agile Maturity in the Enterprise
          1. 4.18.1 Consistency across the Enterprise
          2. 4.18.2 Marketing the New Approach
        19. 4.19 Continuous Process Improvement
          1. 4.19.1 Self-Correcting
        20. 4.20 Measuring the ALM
          1. 4.20.1 Project Management Office (PMO) Metrics
        21. 4.21 Vendor Management
        22. 4.22 Hardware Development
          1. 4.22.1 Firmware
        23. 4.23 Conclusion
      5. Chapter 5. Rapid Iterative Development
        1. 5.1 Goals of Rapid Iterative Development
        2. 5.2 Why Is Rapid Iterative Development Important?
        3. 5.3 Where Do I Start?
        4. 5.4 The Development View
        5. 5.5 Controlled Isolation
        6. 5.6 Managing Complexity
        7. 5.7 Continuous Integration
        8. 5.8 It’s All About (Technology) Risk
        9. 5.9 Taming Technology
        10. 5.10 Designing Architecture
        11. 5.11 Conclusion
        12. Further Reading
    10. Part II: Automating the Process
      1. Chapter 6. Build Engineering in the ALM
        1. 6.1 Goals of Build Engineering
        2. 6.2 Why Is Build Engineering Important?
        3. 6.3 Where Do I Start?
        4. 6.4 Understanding the Build
        5. 6.5 Automating the Application Build
        6. 6.6 Creating the Secure Trusted Base
        7. 6.7 Baselining
        8. 6.8 Version Identification
        9. 6.9 Compile Dependencies
        10. 6.10 Build in the ALM
        11. 6.11 The Independent Build
        12. 6.12 Creating a Build Robot
        13. 6.13 Building Quality In
        14. 6.14 Implementing Unit Tests
        15. 6.15 Code Scans
        16. 6.16 Instrumenting the Code
        17. 6.17 Build Tools
        18. 6.18 Conclusion
      2. Chapter 7. Automating the Agile ALM
        1. 7.1 Goals of Automating the Agile ALM
        2. 7.2 Why Automating the ALM Is Important
        3. 7.3 Where Do I Start?
        4. 7.4 Tools
          1. 7.4.1 Do Tools Matter?
          2. 7.4.2 Process over Tools
          3. 7.4.3 Understanding Tools in the Scope of ALM
          4. 7.4.4 Staying Tools Agnostic
          5. 7.4.5 Commercial versus Open Source
        5. 7.5 What Do I Do Today?
        6. 7.6 Automating the Workflow
        7. 7.7 Process Modeling Automation
        8. 7.8 Managing the Lifecycle with ALM
        9. 7.9 Broad Scope of ALM Tools
        10. 7.10 Achieving Seamless Integration
        11. 7.11 Managing Requirements of the ALM
        12. 7.12 Creating Epics and Stories
        13. 7.13 Systems and Application Design
        14. 7.14 Code Quality Instrumentation
        15. 7.15 Testing the Lifecycle
        16. 7.16 Test Case Management
        17. 7.17 Test-Driven Development
        18. 7.18 Environment Management
          1. 7.18.1 Gold Copies
        19. 7.19 Supporting the CMDB
        20. 7.20 Driving DevOps
        21. 7.21 Supporting Operations
        22. 7.22 Help Desk
        23. 7.23 Service Desk
        24. 7.24 Incident Management
        25. 7.25 Problem Escalation
        26. 7.26 Project Management
        27. 7.27 Planning the PMO
        28. 7.28 Planning for Implementation
        29. 7.29 Evaluating and Selecting the Right Tools
        30. 7.30 Defining the Use Case
        31. 7.31 Training Is Essential
        32. 7.32 Vendor Relationships
        33. 7.33 Keeping Tools Current
        34. 7.34 Conclusion
      3. Chapter 8. Continuous Integration
        1. 8.1 Goals of Continuous Integration
        2. 8.2 Why Is Continuous Integration Important?
        3. 8.3 Where Do I Start?
        4. 8.4 Principles in Continuous Integration
        5. 8.5 Challenges of Integration
        6. 8.6 Commit Frequently
        7. 8.7 Rebase and Build Before Commit
        8. 8.8 Merge Nightmares
        9. 8.9 Smaller Units of Integration
        10. 8.10 Frequent Integration Is Better
          1. 8.10.1 Easier to Find Issues
          2. 8.10.2 Easier to Fix Problems
          3. 8.10.3 Fix Broken Builds
        11. 8.11 Code Reviews
        12. 8.12 Establishing a Build Farm
          1. 8.12.1 Virtualization and Cloud Computing
        13. 8.13 Preflight Builds
        14. 8.14 Establishing the Build and Deploy Framework
        15. 8.15 Establishing Traceability
        16. 8.16 Better Communication
        17. 8.17 Finger and Blame
        18. 8.18 Is the Nightly Build Enough?
        19. 8.19 Selecting the Right Tools
          1. 8.19.1 Selecting the Right CI Server
          2. 8.19.2 Selecting the Shared Repository
        20. 8.20 Enterprise Continuous Integration
        21. 8.21 Training and Support
        22. 8.22 Deploy and Test
        23. 8.23 Tuning the Process
          1. 8.23.1 Getting Lean
          2. 8.23.2 Interesting Builds
        24. 8.24 CI Leads to Continuous Deployment
        25. 8.25 Conclusion
      4. Chapter 9. Continuous Delivery and Deployment
        1. 9.1 Goals of Continuous Deployment
        2. 9.2 Why Is Continuous Deployment Important?
        3. 9.3 Where Do I Start?
        4. 9.4 Establishing the Deployment Pipeline
        5. 9.5 Rapid Incremental Deployment
        6. 9.6 Minimize Risk
        7. 9.7 Many Small Deployments Better than a Big Bang
        8. 9.8 Practice the Deploy
        9. 9.9 Repeatable and Traceable
        10. 9.10 Workflow Automation
          1. 9.10.1 Kanban—Push versus Pull
        11. 9.11 Ergonomics of Deployments
        12. 9.12 Verification and Validation of the Deployment
        13. 9.13 Deployment and the Trusted Base
        14. 9.14 Deploy to Environments that Mirror Production
        15. 9.15 Assess and Manage Risk
        16. 9.16 Dress Rehearsal and Walkthroughs
        17. 9.17 Imperfect Deployments
        18. 9.18 Always Have a Plan B
        19. 9.19 Smoke Test
        20. 9.20 Conclusion
    11. Part III: Establishing Controls
      1. Chapter 10. Change Management
        1. 10.1 Goals of Change Management
        2. 10.2 Why Is Change Management Important?
        3. 10.3 Where Do I Start?
        4. 10.4 Traceability for Compliance
        5. 10.5 Assess and Manage Risk
        6. 10.6 Communication
        7. 10.7 Change in Application Lifecycle Management
        8. 10.8 The Change Ecosystem
        9. 10.9 QA and Testing
        10. 10.10 Monitoring Events
        11. 10.11 Establishing the Command Center
        12. 10.12 When Incidents Occur
        13. 10.13 Problems and Escalation
        14. 10.14 The Change Management Process
          1. 10.14.1 Entry/Exit Criteria
          2. 10.14.2 Post-Implementation
        15. 10.15 Preapproved Changes
        16. 10.16 Establishing the Change Management Function
          1. 10.16.1 Change Control Board
          2. 10.16.2 Change Advisory Board
        17. 10.17 Change Control Topology
          1. 10.17.1 A Priori
          2. 10.17.2 Gatekeeping
          3. 10.17.3 Configuration Control
          4. 10.17.4 Emergency Change Control
          5. 10.17.5 Process Change Control
          6. 10.17.6 E-change Control
          7. 10.17.7 Preapproved
        18. 10.18 Coordinating across the Platform
        19. 10.19 Coordinating across the Enterprise
        20. 10.20 Beware of Fiefdoms
        21. 10.21 Specialized Change Control
        22. 10.22 Vendor Change Control
        23. 10.23 SaaS Change Control
        24. 10.24 Continuous Process Improvement
        25. 10.25 Conclusion
      2. Chapter 11. IT Operations
        1. 11.1 Goals of IT Operations
        2. 11.2 Why Is IT Operations Important?
        3. 11.3 Where Do I Start?
        4. 11.4 Monitoring the Environment
          1. 11.4.1 Events
          2. 11.4.2 Incidents
          3. 11.4.3 Problems
        5. 11.5 Production Support
        6. 11.6 Help Desk
          1. 11.6.1 Virtual Help Desks
          2. 11.6.2 Remote Work
          3. 11.6.3 Virtual World Help Desk
          4. 11.6.4 Developers on the Help Desk
        7. 11.7 IT Process Automation
          1. 11.7.1 Knowledge Management
        8. 11.8 Workflow Automation
        9. 11.9 Communication Planning
          1. 11.9.1 Silos within the Organization
        10. 11.10 Escalation
          1. 11.10.1 Level 1
          2. 11.10.2 Level 2
          3. 11.10.3 Level 3
        11. 11.11 DevOps
        12. 11.12 Continuous Process Improvement
        13. 11.13 Utilizing Standards and Frameworks
          1. 11.13.1 ITIL v3
          2. 11.13.2 Knowledge Management
          3. 11.13.3 ISACA Cobit
        14. 11.14 Business and Product Management
        15. 11.15 Technical Management
        16. 11.16 IT Operations Management
        17. 11.17 IT Operations Controls
          1. 11.17.1 Facilities Management
        18. 11.18 Application Management
          1. 11.18.1 Middleware Support
          2. 11.18.2 Shared Services
        19. 11.19 Security Operations
          1. 11.19.1 Center for Internet Security
          2. 11.19.2 Outsourcing
        20. 11.20 Cloud-Based Operations
          1. 11.20.1 Interfacing with Vendor Operations
        21. 11.21 Service Desk
          1. 11.21.1 Centralized
          2. 11.21.2 Virtual
          3. 11.21.3 Specialized
          4. 11.21.4 Vendor Escalation
        22. 11.22 Staffing the Service Desk
        23. 11.23 Incidents and Problems
        24. 11.24 Knowledge Management
        25. 11.25 Conclusion
      3. Chapter 12. DevOps
        1. 12.1 Goals of DevOps
        2. 12.2 Why Is DevOps Important?
        3. 12.3 Where Do I Start?
        4. 12.4 How Do I Implement DevOps?
        5. 12.5 Developers and Operations Conflict
        6. 12.6 Developers and Operations Collaboration
        7. 12.7 Need for Rapid Change
        8. 12.8 Knowledge Management
        9. 12.9 The Cross-Functional Team
        10. 12.10 Is DevOps Agile?
        11. 12.11 The DevOps Ecosystem
        12. 12.12 Moving the Process Upstream
          1. 12.12.1 Left-Shift
          2. 12.12.2 Right-Shift
        13. 12.13 DevOps in Dev
        14. 12.14 DevOps as Development
          1. 12.14.1 Deployment Pipeline
        15. 12.15 Dependency Control
        16. 12.16 Configuration Control
        17. 12.17 Configuration Audits
        18. 12.18 QA and DevOps
        19. 12.19 Information Security
        20. 12.20 Infrastructure as Code
        21. 12.21 Taming Complexity
        22. 12.22 Automate Everything
        23. 12.23 Disaster Recovery and Business Continuity
        24. 12.24 Continuous Process Improvement
        25. 12.25 Conclusion
      4. Chapter 13. Retrospectives in the ALM
        1. 13.1 Goals of Retrospectives
        2. 13.2 Why Are Retrospectives Important?
        3. 13.3 Where Do I Start?
        4. 13.4 Retrospectives as Process Improvement
          1. 13.4.1 Start with Assessing Success
          2. 13.4.2 Incidents and Problems
          3. 13.4.3 Mistakes Are Good
          4. 13.4.4 Personality and Disposition
          5. 13.4.5 Don’t Just Tell Me What I Want to Hear
        5. 13.5 Which Mode Should You Use?
          1. 13.5.1 In Person Is Best
          2. 13.5.2 Online and Video Conferencing
          3. 13.5.3 Teleconference
          4. 13.5.4 Virtual Worlds
        6. 13.6 Perspective Is Essential
          1. 13.6.1 Developers
          2. 13.6.2 Customers
          3. 13.6.3 Tester
          4. 13.6.4 Operations
        7. 13.7 DevOps: The Cross-Functional View
        8. 13.8 Understanding the Use Case
          1. 13.8.1 Epics and Stories
        9. 13.9 Retrospectives as Leadership
          1. 13.9.1 Removing Barriers
        10. 13.10 Running the Meeting
          1. 13.10.1 Probing and Questioning
        11. 13.11 Retrospectives Supporting ITIL
          1. 13.11.1 Incidents
          2. 13.11.2 Problems
        12. 13.12 Retrospectives and Defect Triage
        13. 13.13 Retrospectives as Crisis Management
        14. 13.14 Supporting IT Governance
        15. 13.15 Audit and Regulatory Compliance
        16. 13.16 Retrospectives as Risk Management
        17. 13.17 Vendor Management
        18. 13.18 Too Much Process
        19. 13.19 Corporate Politics
        20. 13.20 Metrics and Measurement
        21. 13.21 Conclusion
    12. Part IV: Scaling the Process
      1. Chapter 14. Agile in a Non-Agile World
        1. 14.1 Goals of Hybrid Agile
        2. 14.2 Why Is Hybrid Agile Important?
        3. 14.3 Where Do I Start?
        4. 14.4 Pragmatic Choices
        5. 14.5 The Best of Both Worlds
        6. 14.6 Keeping It Agile
        7. 14.7 Establishing the Agile Pilot
        8. 14.8 Transitioning to Agile
        9. 14.9 Having a Baby
        10. 14.10 The Elephant in the Room
        11. 14.11 Are We There Yet?
        12. 14.12 Agile Disasters
        13. 14.13 Developer View
        14. 14.14 No Information Radiators Allowed
        15. 14.15 Waterfall Is Iterative, Too
        16. 14.16 Document Requirements as Much as Possible
        17. 14.17 Last Responsible Moment
        18. 14.18 Technology Risk
        19. 14.19 Understanding the Ecosystem
        20. 14.20 Mature Agile
        21. 14.21 Meeting IT Governance Requirements
        22. 14.22 Conclusion
      2. Chapter 15. IT Governance
        1. 15.1 Goals of IT Governance
        2. 15.2 Why Is IT Governance Important?
        3. 15.3 Where Do I Start?
        4. 15.4 Senior Management Makes Decisions
        5. 15.5 Communicating Up
        6. 15.6 How Much Work Is Going On?
        7. 15.7 Identify and Manage Risk
        8. 15.8 Time and Resources
        9. 15.9 Scalability with More Resources
        10. 15.10 Delays Happen
        11. 15.11 The Helicopter Mom
        12. 15.12 I Told You That Already
        13. 15.13 Learning from Mistakes
        14. 15.14 Governance Ecosystem
        15. 15.15 Continuous Process Improvement
        16. 15.16 Governance and Compliance
        17. 15.17 Conclusion
      3. Chapter 16. Audit and Regulatory Compliance
        1. 16.1 Goals of Audit and Regulatory Compliance
        2. 16.2 Why Are Audit and Regulatory Compliance Important?
        3. 16.3 Where Do I Start?
        4. 16.4 Compliance with What?
        5. 16.5 Establishing IT Controls
        6. 16.6 Internal Audit
        7. 16.7 External Audit
        8. 16.8 Federally Mandated Guidelines
          1. 16.8.1 Section 404 of the Sarbanes-Oxley Act of 2002
          2. 16.8.2 Financial Industry Regulatory Authority
          3. 16.8.3 Health Insurance Portability and Accountability Act of 1996
          4. 16.8.4 ISACA Cobit
          5. 16.8.5 Government Accountability Office
          6. 16.8.6 Office of the Comptroller of the Currency (OCC)
        9. 16.9 Essential Compliance Requirements
        10. 16.10 Improving Quality and Productivity through Compliance
        11. 16.11 Conducting an Assessment
        12. 16.12 Conclusion
      4. Chapter 17. Agile ALM in the Cloud
        1. 17.1 Goals of ALM in the Cloud
        2. 17.2 Why Is ALM in the Cloud Important?
        3. 17.3 Where Do I Start?
        4. 17.4 Understanding the Cloud
        5. 17.5 Developing in the Cloud
          1. 17.5.1 Source Code Management in the Cloud
          2. 17.5.2 Build Automation in the Cloud
          3. 17.5.3 Release Engineering in the Cloud
          4. 17.5.4 Deployment in the Cloud
        6. 17.6 Change Management in the Cloud
          1. 17.6.1 Service Provider Notification
        7. 17.7 Managing the Lifecycle with ALM
        8. 17.8 Cloud-based ALM Tools
        9. 17.9 Achieving Seamless Integrations
        10. 17.10 Iterative Development in the Cloud
          1. 17.10.1 Development Models in SaaS
        11. 17.11 Interfacing with Your Customers
          1. 17.11.1 Fronting Service Providers
        12. 17.12 Managing with SLAs
          1. 17.12.1 Reliance upon Service Providers
        13. 17.13 Managing Cloud Risk
        14. 17.14 Development and Test Environments for All
          1. 17.14.1 Starting Small
        15. 17.15 Environment Management
          1. 17.15.1 Gold Copies
          2. 17.15.2 CMDB in the Cloud
        16. 17.16 DevOps in the Cloud
        17. 17.17 Controlling Costs and Planning
        18. 17.18 Conclusion
      5. Chapter 18. Agile ALM on the Mainframe
        1. 18.1 Goals of Agile ALM on the Mainframe
        2. 18.2 Why Is Agile ALM on the Mainframe Important?
        3. 18.3 Where Do I Start?
        4. 18.4 DevOps on the Mainframe
        5. 18.5 Conclusion
      6. Chapter 19. Integration across the Enterprise
        1. 19.1 Goals of Integration across the Enterprise
        2. 19.2 Why Is Integration across the Enterprise Important?
        3. 19.3 Where Do I Start?
        4. 19.4 Multiplatform
        5. 19.5 Coordinating across Systems
        6. 19.6 Understanding the Interfaces
        7. 19.7 The Enterprise Ecosystem
        8. 19.8 Release Coordination
        9. 19.9 Conclusion
      7. Chapter 20. QA and Testing in the ALM
        1. 20.1 Goals of QA and Testing
        2. 20.2 Why Are QA and Testing Important?
        3. 20.3 Where Do I Start?
        4. 20.4 Planning the Testing Process
        5. 20.5 Creating the Test Cases
        6. 20.6 Ensuring Quality
        7. 20.7 Ensuring Quality from the Beginning
        8. 20.8 Conclusion
      8. Chapter 21. Personality and Agile ALM
        1. 21.1 Goals of Personality and the Agile ALM
        2. 21.2 Why Are Personality and Agile ALM Important?
        3. 21.3 Where Do I Start?
          1. 21.3.1 Understanding the Culture
          2. 21.3.2 Probing Deeper into the Organization’s Psyche
        4. 21.4 Group Dynamics
          1. 21.4.1 Using DevOps to Drive Out Silos
          2. 21.4.2 Managing Power and Influence in DevOps
        5. 21.5 Intergroup Conflict
          1. 21.5.1 Overly Agreeable People and Other Challenges
          2. 21.5.2 Learned Helplessness
          3. 21.5.3 Introspection and the Postmortem
        6. 21.6 Managing Stress and Dysfunctional Behavior
          1. 21.6.1 The Danger of Learned Complacency
          2. 21.6.2 Dealing with Aggressive Team Members
          3. 21.6.3 Extremism in the Workplace
        7. 21.7 Taking a Positive Approach
          1. 21.7.1 How Positive Psychology Can Help Your Organization
          2. 21.7.2 Three Pillars of Positive Psychology
          3. 21.7.3 Using Positive Psychology to Motivate Your Team
          4. 21.7.4 Learning from Mistakes
          5. 21.7.5 Positive Psychology in DevOps
        8. 21.8 Conclusion
        9. References
        10. Further Reading
      9. Chapter 22. The Future of ALM
        1. 22.1 Real-World ALM
        2. 22.2 ALM in Focus
        3. 22.3 Conclusion
    13. Index