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