DevOps is a Big Deal and what you should know about it!

If you’re in tech, you’ve probably been hearing the term “DevOps.” What’s all the fuss about? DevOps is more than a trendy synonym for IT. In a nutshell, DevOps is the integration of software development and IT to enable impressive scale, agility, and delivery of value through software. I’ll unpack below what that means and why we should care. Along the way, we’ll see how DevOps connects with business and technical agility, collaboration, and success.

Agile Roots

In 2011, Venture capitalist Marc Andreessen famously said that software is eating the world. His idea is that software enables people and companies to do their jobs better and deliver value faster. These software-enabled companies are more agile than companies that don’t use software (or don’t use it well), and this agility enables them to move and pivot faster. As a result, software-enabled companies will win in the long run. Eventually, using software well will be a basic requirement of entering the marketplace. If you’re not doing software, you’re going to lose.

Just as software enables agility, developing software in an agile way outperforms traditional, planning-heavy methods such as the waterfall approach (as RoleModel Software’s founder and CEO, Ken Auer, lays out in his book). Agile responds better to change and change is almost always required. Agile methods such as Extreme Programming, Scrum, and Kanban are gaining mindshare among professionals and at many companies Agile methods are accepted as the way work gets done. At RoleModel Software, we believe that agile software wins and that an agile, collaborative approach will be “table stakes” for companies competing in the marketplace. In short, if you’re not doing software in an agile way, you’re going to lose.

What does this have to do with DevOps? Bear with me for one more context-setting excursion.

The System of Software

Have you ever thought about what software is? Or what is the essence of software? I think software by itself is inert: it’s just bits on a disk somewhere. It needs a system to make it run. That system involves many separate pieces all working together to animate the software. Most software systems, or at least most web applications, include:

  • libraries written by other people
  • frameworks written by other people
  • programming languages and compilers
  • web servers and web browsers
  • database servers
  • operating systems
  • machines, whether physical or virtual, with all the associated hardware
  • networking infrastructure, including load balancers, routing, SSL, firewalls, domain names, etc.

The point is that there’s only value in software when the broader system works together.

DevOps addresses this question: How do we apply the principles of agility not only to the development of the software, but also to the development of the system?

Development + Operations = Success

At RoleModel Software, we believe we are most effective when we work alongside our customers, understand their experiences and their needs, and collaborate with them on how best to solve their problems while recognizing their context and priorities. This is exactly the idea behind DevOps. Except with DevOps, the people who are collaborating are not consultants and customers, but software developers and IT people. That’s where the term “DevOps” comes from: it’s a combination of Development and Operations.

In many organizations, especially those that still think of software as a thing to be constructed, like a building, there is a divide between Development and IT Operations. Their idea is that Development should focus on the software and IT should focus on the system, including ongoing monitoring and management responsibility. Unfortunately, a strained if not outright adversarial relationship often results from this division. When things go wrong, it’s easy to point fingers across the aisle without understanding the other side. This breakdown of trust often results in setting up additional heavyweight processes, such as testing and quality assurance, on the pre-deployment side. Deployments become a rare and dreaded occurrence on a quarterly or even yearly basis.

The idea of DevOps is to bring the collaborative, agile software mindset to the IT department. Developers work to understand the problems that Operations faces and they then collaborate to build tools, automate processes, and solve problems. The developer gains an appreciation of the system and can apply software, the “world eater,” to improve it.

The goal is to improve the agility of the software system in the same way software has improved the agility of people and businesses everywhere. Then the DevOps-enabled companies can outperform their competition. They respond to changes in the marketplace faster, get feedback from experiments faster, and even fix bugs faster.

If DevOps is done well, the flow of work from development to production is unimpeded; there are no operational bottlenecks that constrain the flow. The only constraint is the number of developers working on the software. As a result, the number of production deployments can go from one per quarter to many per day. Deploying new code to production becomes a routine, everyday occurrence. A hallmark of effective DevOps practices is that the number of production deployments scales linearly with the number of developers, even with tens of thousands of developers. (This was an unreachable goal 15 years ago!)

Proof that DevOps Works

All the software companies that are household names already do DevOps; indeed, many of them pioneered these practices. That includes Google, Facebook, Amazon, and Netflix, each of which does multiple production deployments per day. In some cases the rate of change is staggering. In 2015, Amazon revealed that they were doing 130,000 production deployments per day. That’s more than one per second. And that was in 2015. Correlation doesn’t necessarily imply causation, but I believe DevOps is a large part of why they’ve been able to grow as big as they have.
Furthermore, many analysts have picked up on the fact that DevOps-enabled companies are outperforming the rest. Studies have shown that these companies tend to have much better key performance indicators, ranging from technical (reliability, security, mean time to restore service) to corporate (employee job satisfaction, profitability).

What it all means

If you’re not currently developing and delivering software systems in an agile way, you’re probably losing. The practices of DevOps can help. RoleModel Software has a history of agility and collaboration and we would love to help you. Consider us for your next custom software project! (And please leave a comment on this post!)

Thanks to Phil Puccio.