DevOps & Continuous Delivery
DevOps is close collaboration of operation engineers and software developers throughout the entire lifecycle. System Operations staff use many of the same techniques as developers for their systems work, creating a true blending of Development and Operations where Agile principles extend beyond the writing and testing of code.
The Shift to DevOps
DevOps is centered around process improvement and cultural change, as much as it is a technical approach.
Current State (From)
- Focus on planning
- Compete, not collaborate
- Static hierarchies
- Individual productivity
- Efficiency of process
- Assumptions, not data
- Estimating performance
Future State (To)
- Focus on delivering
- Collaborate to win
- Fluent and flexible teams
- Collective value creation
- Effectiveness of outcomes
- Experiment, learn and respond
- Measuring performance
DevOps from a Team Perspective
Integrated Delivery Teams
Business, Development, Testing, and Operations all working together
We are all working towards a common goal and prioritize business features with operational support items
Incorporating business vision, operational performance, customer feedback, market conditions to drive product development
Build out of environments, non-functional requirements (NFRs), and monitoring are all work items that contribute to the overall deliverable; these need to be part of the unified backlog.
Production Experimentation & Monitoring
Feature flags, soft roll outs, fail forward & Application Monitoring
Application Driven Infrastructure
Allow applications to drive the hardware and software requirements needed rather than having it “fit” into a shared server model. This allows for maximum efficiency in delivering software.
The DevOps Journey includes the following steps:
- DevOps Assessment: At the heart of DevOps is learning from metrics and data. In order to effectively kick off a DevOps Journey we have to know where we are starting from. The DevOps Assessment will provide the foundational information and data to use in order to identify the actionable plan to start the DevOps Journey.
- Organizational & Team Backlogs: This actionable plan will be broken down into a backlog of work items per team taking the assessment as well as common challenges facing all teams.
- DevOps Enablement Team: The DevOps Enablement Team will start by addressing these common challenges as well as setting the initial framework that will be used by all teams as the start their DevOps Journey.
- Delivery Team Rollout: The rollout of the enablement strategy will springboard from the DevOps enablement team and will allow each team to start working their backlog of work items.
- Re-Assessment: After 3 or 6 months into the DevOps Journey it will be important to measure how each of the teams is doing to determine if there are other areas that need to be addressed.
Infrastructure teams and development teams need to work closely together and have processes that align in terms of approach as well as timing.