6 Keys to Unlock the Value of DevOps
Doing DevOps take more than simply implemeting a CI/CD pipeline. Take a look to find out just what it entails.
Join the DZone community and get the full member experience.
Join For FreeThis article is featured in the new DZone Guide to DevOps: Implementing Cultural Change. Get your free copy for insightful articles, industry stats, and more!
When people talk about today's software, two things are clear:
- It's driving real value in businesses, big and small, helping them transform processes and create whole new app-driven business models.
- The IT organizations in the market-leading businesses are committed to delivering software the right way, embracing the spirit of modern practices like continuous integration, continuous delivery, and DevOps.
What's less clear is whether organizations are following the principles these practices indicate. We've looked closely at the finer points of continuous integration and continuous delivery, and concluded that many organizations think they're performing these practices the best way possible. But on further inspection, they aren't.
What about DevOps? Are organizations doing DevOps right? If they are doing continuous integration and/or continuous delivery right, can they still fail to fully check all the boxes for DevOps? Once again, these questions are important for organizations to sort out as they try to optimize their performance in an economy increasingly driven by software innovation.
Overall, doing DevOps correctly can be a huge catalyst for an organization. But doing it incorrectly can be counterproductive and can cost the organization in a number of ways. Here's a look at what DevOps is and how to do it right.
Defining DevOps
I like to think of DevOps, continuous integration, and continuous delivery as being like software delivery siblings — all descended from the agile and lean movements that aim to streamline processes.
There are important differences. Continuous integration focuses on processes like automated builds and quick changes on the left side of the delivery process. Continuous delivery covers best practices moving through the pipeline up to production. DevOps focuses on the organizational change needed to support collaboration between functions. But these concepts all tie together.
At a high level, DevOps is a cultural term. You achieve DevOps when you create a software development culture supported by technical practices. Within a DevOps culture, software development stakeholders have mutual understanding and empathy, such that they align on the shared objectives of releasing quality software rapidly and repeatedly.
Can you do continuous integration and/or continuous delivery right, and still fall short on DevOps? Absolutely. Continuous integration and continuous delivery are practices that you can implement — and even, to a certain extent, master — while not truly effecting the cultural change necessary to become a DevOps organization.
On the other hand, you really can't do DevOps right without incorporating the building blocks of successful continuous integration and continuous delivery practices. As Jez Humble likes to say, you could implement DevOps processes using a Bash script — DevOps does not inherently prescribe the component practices. But, to implement DevOps in a sustainable, repeatable, and scalable manner requires commitments to continuous integration and continuous delivery.
Doing DevOps Right
A lot has been written in recent years attempting to identify signs that your organization is either doing DevOps right or wrong. Some of the more popular traits assigned to effective DevOps organizations are that they have clearly defined DevOps strategies and can set up "common-sense" measures to identify when things go wrong. Some of the key flags for bad DevOps implementations include having no tolerance for failure and trying to roll in testing processes late in the implementation.
I would boil down this assessment to the following six recommendations, all focused on achieving a DevOps culture:
- Define a holistic process, from end-to-end. Successful DevOps cultures focus on the business, developers, testers, and IT operations teams working together around shared objectives. They give their input about how to start the process, build a successful pipeline, implement a delivery process, and measure the outputs.
- Successfully achieve DevOps first across one team. Before you try to achieve DevOps across your organization, you need to make sure it works on a microscale, ensuring there is a bottom-up adoption and buy-in from key managers. Management buy-in can be difficult and time-consuming at the start of
- Make sure your organization is free of silos. Not all organizations can eliminate organizational silos. But by involving and aligning all stakeholders in the delivery process across departments, you can have virtual (or actual) product teams, reducing the impact of organizational silos. This will help establish empathy between the different teams in the organization, and drive a culture of collaboration and feedback.
- Ensure the right people have seats at the table. If you try to create a DevOps strategy with the input of every single team and functional group within the organization, you may get mired in overwhelming complexity — analysis paralysis — and never really get started. To get your transformation going quickly, it is best to reduce the scope. Focus the initial implementation on one to a few projects. Once you are successful with those, begin incrementally scaling DevOps across teams, incorporating new input along the way. I recommend you start by gathering representatives such as management and an individual contributor from each of your processes and groups: a management rep from the business, a project management administrator, a lead developer from a development team, and an actual developer. Individual contributors are integral, as they are the only ones who can truly identify the pains of the experience and what should be improved. This also creates the necessary empathy and buy-in on the ground.
- Don't try to "buy DevOps." Some organizations operate on the belief that they can buy a set of tools that will make them into a DevOps organization. Don't fall for this trap. Tools are a critical part of connecting teams across silos and enabling the automation that supports DevOps, but tools alone will not solve your problem. You need to do all the hard work creating the culture and looping in all the important aspects of continuous integration and continuous delivery to ensure the tools are doing their jobs.
- Make sure you're successfully measuring your progress. An effective DevOps culture includes a commitment to measure results and report on quantifiable metrics. To stand up your delivery pipeline, you need to build in the ability to do these things and continually track your progress toward those goals.
For example, less-than-optimal software delivery processes tend to lead to significant overtime. Operations engineers and other team members tend to work long hours to get software deployed. So, measuring team hours with a goal to reduce overtime man-hours by 50 to 75 percent will instill the right amount of discipline and help promote a culture of excellence.
The Downside of Bad DevOps
There are consequences to doing DevOps wrong:
- First and foremost, you're going to miss opportunities. Today's market is moving fast, and every company surely has competitors already implementing DevOps correctly. They're innovating and gaining in market advantage. If you spend time focusing on a failed or misplaced implementation of DevOps, it comes with a significant opportunity cost.
- There also are internal costs. If a DevOps initiative flops, morale suffers and IT leaders may have difficulty getting the buy-in required for another DevOps transformation.
- Then you have the actual costs. Investing in a faulty DevOps project wastes money, time, and employee resources that could have been directed elsewhere.
The Upside of Good DevOps
On the other hand, successful DevOps implementations can generate significant value in the following areas:
- Happier employees. Creating an efficient, committed DevOps organization can help companies maintain and recruit top talent.
- Increased productivity. Less time wasted in the software development lifecycle translates into improved value in the software stream.
- Speed. The ability to innovate faster while maintaining quality gives a company a tremendous competitive advantage in the marketplace.
Conclusion
To do DevOps right, an organization needs to build multiple bridges — linking people, processes, tools, and organizational goals. This is hard work.
It cannot be done quickly. But it can be achieved if organizations commit to creating a proper DevOps culture. Don't just show up one day and say you're going to do DevOps. Use the concepts of continuous integration and continuous delivery as building blocks, and get the rest of the organization to rally around your vision. Establish where you are today, where you want to go, and how you're going to get there. Then you're on your way!
This article is featured in the new DZone Guide to DevOps: Implementing Cultural Change. Get your free copy for insightful articles, industry stats, and more!
Opinions expressed by DZone contributors are their own.
Trending
-
Build a Simple Chat Server With gRPC in .Net Core
-
Getting Started With the YugabyteDB Managed REST API
-
How To Integrate Microsoft Team With Cypress Cloud
-
Apache Kafka vs. Message Queue: Trade-Offs, Integration, Migration
Comments