If you ask a handful or two people what DevOps is, you’ll be surprised by the variability in their answers. Some will talk about tooling and automation. Others will allude to team alignment and structure. Most likely, you’ll get a response that describes the way DevOps is understood in that person’s organization—and that probably highlights the benefits they’re enjoying from it.
While every answer has some truth to it, at its core, DevOps is coalescing development and operations. That’s a simple way to approach the term. Rather than having development handoff code to operations to release, deploy and monitor software (dev then ops), DevOps has both teams work side-by-side (dev plus ops).
You’re probably hearing more and more about DevOps because more and more organizations are adopting the practice—and for good reason. DevOps has been praised for shortening development cycles, which has ultimately created better experiences for both the organization and its end users. Here are five core benefits you’ll see by implementing DevOps.
Renews focus on the customers
A key reason for the move to DevOps is that it gets the team back in the mindset of the customer. In software development, it’s easy to fall into the trap of thinking that the end goal is really great software. This mindset makes it reasonable to justify long development and release timelines, because the software looks amazing by the end.
This is a myth for two reasons. First, even with a long development timeline, who is to say the software is actually better? But more importantly, thinking only about the software makes you forget the most important thing: the customer. The customer is looking for a solution, a functional product that will solve their problem. They don’t care so much about the process, only that they’re delivered a good product. DevOps naturally puts you in the customers’ shoes since you’re focused on smaller releases and there’s more room for immediate feedback.
Unites teams for faster product shipments
Another benefit of DevOps is that other teams, like operations, get to share the benefit of working in an agile or iterative environment. Over the last decade, development teams invested in agile and began developing quicker and quicker. However, since this happened in isolation, operations teams have struggled to keep up and can’t release software at the same pace. DevOps unites these teams and ships software faster. Is a faster development timeline important to clients? Of course. If you can do the job twice as fast and still maintain the quality of your work, it’s a competitive advantage.
Simplifies development focus
There are two ways to develop for a release: a big release, packaging a lot of features into one deployment, or a quick release, where features roll out one at a time. If you have a big release, chances are you are worried about prioritizing a long list of features that go into that release because you probably can’t change that list too much once you get started. And if you do make drastic changes, then you have to consider the work that’s already been done when you begin to make changes. All the features of a release get tangled together.
On the other hand, you can dramatically simplify how you prioritize your work if you scale back the amount of work that you do at a given time. Each day or week, your team addresses one feature and packs developing and releasing into a fluid system. If something goes wrong, you only have one thing to look at, unlike in a big release, where you could waste time sorting through multiple issues.
Introduces automation to the development process
Developers and technologists in general don’t spend enough time automating systems to help themselves. Why? If your team has traditionally done big releases, then there’s never been a reason to. New deployments happen a few times a year, so why think about automation? However, with faster, smaller releases that occur more frequently, a smoother deployment process, powered with automation, will save a lot of time. (Time that could be used to solve other business problems or fuel innovation.)
What should you automate? Start with the routine aspects of your releases. Usually there are aspects of testing and writing specifications that can be automated. However, be sure not to automate and build new technology tools just for technology’s sake. Understand why you’re automating and what benefit or time saving you hope to see. Not every automation is worthy of the time it takes to build.
Supports end-to-end responsibility
Finally, while DevOps typically just involves development and operations, this model can and should affect other aspects of your business. Think about all the different people involved in getting software out the door. It’s definitely more than just DevOps. Before you develop software, specifications must be set and expectations reached with the customer. And after it’s developed and released, validation, customer education and bringing feedback back to developers is critical.
In this sense, the problems that DevOps solves should highlight other areas of your business that need coalescing. Iterative approaches can benefit everyone in the company, not just the technologists.
To remain competitive in today’s environment, you need to move faster—and with more precision—than your competitors. DevOps enables that by helping your teams focus on the customer experience, uniting teams for faster product shipments, simplifying the goals of each release, introducing automation (which reduces errors and frees developer time for other projects) and creating a feedback loop that benefits the entire company.
Disclaimer: The blog was originally posted on www.pluralsight.com