Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
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
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion