How DevOps drives scale, improves quality, decreases risks, and helps to deliver great  products.

How DevOps drives scale, improves quality, decreases risks, and helps to deliver great products.

At its core, DevOps is a culture and a set of practices that promotes a rapid and reliable build, test, deployment, and maintenance of software applications or platforms.?It promotes the culture needed to ensure continued ownership of software through the various stages of making changes live.?

In essence, there is no handoff to any other team to deploy and maintain the software, it rests solely with the team that created it.

Where did DevOps Come From?

DevOps has its roots in Lean and Agile software development.?These approaches seek to build effective teams, minimize waste in promoting software into production, and create rapid feedback loops to the team to amplify learning.

In Agile (or any delivery method), bugs from live systems disrupt sprints, there is no clever way to manage that impact, so it must be recognized that bugs are a very bad thing and the team must do everything in its power to minimize them.?This means having a robust test framework and having easily created test environments that match the behavior of live environments exactly.?

The only way to ensure effective and on-time delivery is to ensure that interruptions are minimized, the team has easy access to high-quality test environments, and implement the right toolset required to automate deployments so that they become more predictable, more successful, and reliable.?Deployment mistakes are reduced through the use of automation.

What DevOps is Not?

DevOps is a culture and set of practices, not a team.?Although DevOps has a focus on safe, efficient deployment, it should not be considered a deployment team.?Having a team responsible for deploying software created by another team is a classic form of waste in Lean.?Ironically by creating a DevOps team to do deployments, one of the basic tenets of DevOps, has been broken.?Having a hand-off to a DevOps team is anti-DevOps!?DevOps lives in the development teams.

It is advisable to have a DevOps practice, however.?The function of this group is to provide tried and tested tooling and frameworks and to ensure that DevOps professionals embedded in the engineering teams are well supported and have a set of tools and techniques at their disposal.

DevOps is also not a support team in disguise, parachuting in to resolve problems created elsewhere.?Support is a distinct function and we still need a support team to handle user queries, customer communications, outage management, and service management. Triage and Level 1, and Level 2 support is still required, but anything that cannot be resolved by the support team becomes an L3 (engineering) escalation. It comes back to the teams that built the application.

Old and New Approaches to Technology Operations

ITIL and Service Management are separate fields and DevOps should not encroach on or seek to change these fields, but dovetail into them. Recent versions of ITIL are geared towards a more rapid and continuous pace of change and the two worlds are becoming more closely aligned. Traditional processes centered around Change Advisory Boards (CAB) and Acceptance into Service (AIS) have adapted to become more lightweight and predicated on successful automation testing during the build process.

Many commonalities between the ITIL and DevOps approaches can be found, along with the opportunity to improve overall service delivery which includes all customer interactions and is a source of huge value. ITIL teams and DevOps need to come together to find more streamlined ways to achieve shared goals.

The goals of ITIL Service Management complement those of DevOps.?There is the same attention to reducing the amount of unplanned change, eliminating firefighting, increasing system up-time, and decreasing the amount of time it takes to repair a system.

Cultural Change

DevOps is a culture. Stop having a go-to person or a go-to team to fix problems - it only creates bottlenecks.?By all means have a person or a team who mentors DevOps techniques and helps people to solve their own DevOps problems. Share the knowledge and enable teams.

DevOps relies on rapid experimentation and analysis of defects and errors in the field.?A constant drive to improve and change what is broken is required, and teams need to be supported as they learn to effectively experiment with DevOps techniques, and learn from experiments that don’t work, or actually make things worse.?

Avoid change for the sake of it, understand what the change is for, and what the expected result is, and provide support for the technology teams to understand the domain and make an impact. Understanding of the whole is an essential part of Lean thinking.?Lean, Theory of Constraints, and Systems Thinking all contribute to DevOps thinking.?See the whole and don’t rush to introduce local optimizations which don’t deliver the benefits expected when placed in a complex ecosystem of processes and behaviors.

DevOps requires organization and cultural change in order to be effective.?This change includes team practices that facilitate greater collaboration between various technology disciplines, but the most important change is the one between Managers, Stakeholders, and the Technology teams.

Executives need to change the planning horizon, from years or quarters to weeks.?The focus should be on evolving product capabilities rather than all-or-nothing high-risk deliveries.?If a large program fails to deliver, it can waste two to three years of effort.?This could be 600 person-years for a large program.?At an estimated cost of £400/day, that’s c£60m of investment at risk!?

This may be an extreme case, but it’s sadly not uncommon.?If a small release goes wrong, there is a small amount of investment at risk, and with real-time feedback to the team it can normally be corrected in a few hours and delivers a smaller amount of value, but with greater confidence, and in a repeating cadence that provides increasing confidence over time.

Adopting DevOps

DevOps is about people, culture, and behavior. It has at its core a requirement for tools and techniques and processes that reduce human errors and prevent re-work and outages, but the key to effectiveness comes from the cultural changes that need to happen across the organization as a whole.

For business stakeholders, it’s important to move the focus away from all-or-nothing delivery which is prone to failure for a variety of reasons.?There needs to be a supportive approach with incremental value at its core.

Why Does DevOps Matter?

DevOps can change an organization into a continuous value-generating machine.?It is not just the latest technology trend, and we’ve seen a few come and go.?DevOps can ensure that your investments in technology make their way safely into the hands of users and customers, where it starts to generate revenue.?It ensures that feedback is focused, and the quality of deliverables is high.?It allows pivots and changes in direction.?

DevOps improves the uptime of your site or service.?If you’re in the business of delivering high-availability services to your customers, DevOps is something that should be taken very seriously across the organization.

Is DevOps too idealistic, or too good to be true??Maybe, but what are the alternatives to changing a technology-enabled business for the better??We live in a complex world, and acquiring an effective DevOps capability that provides real business value takes time and needs the support of the Executive Team, and clearly defined, realistic expectations.?The only real question is whether executives have the stomach to really look closely at their relationship with Technology, and begin a long learning journey to implement the?changes needed to thrive in the fast-moving, connected, technology age.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了