Top tips for maximizing DevOps effectiveness
Whether you are well into your DevOps journey or still thinking about getting started, there’s always room for improvement and an opportunity to learn from each other. Perhaps at the top of your to-do list this year is to implement DevOps as part of your product strategy. You can picture it in your mind: Increased software velocity fueled by frequent releases, better team collaboration and visibility, improved testing procedures and more robust and reliable products.
But picturing something in your mind and making it a reality are two very different things. Which is why I’m offering what I consider to be the Top 5 Considerations for DevOps Success in 2018. Keeping these five items in mind as you make DevOps part of your organization will help increase your chances of having a successful implementation.
However, before diving right into the top five, let’s take a minute to define what success looks like in this landscape. DevOps means releasing software every second of every day, right? No! While that may be a reality at companies such as Amazon and Netflix, it’s a common misconception that to be successful in DevOps you have to fire off releases constantly. In reality, what works fantastically for one company (say, Netflix) may not work at all for your organization. DevOps is a personal journey and realizing success is about being flexible and understanding your organizational requirements.
With all that said, across organizations and industries of all kinds, one constant about DevOps that remains is that it should focus on making continuous improvement through changes, both big and small. In doing so, you will create the ability to improve the flow of work through your value stream to change how you deliver value to your customers. The only way to realize that improvement in value is through change, and if DevOps is designed to do one thing, it’s to make change easier.
Top 5 Considerations for DevOps Success
With a loose definition of what success looks like in this context, let’s take a look at the top five considerations for DevOps success to drive your business forward in 2018.
Make the Work Visible
The goal of every company in the software development space is to deliver value to your users. It’s often incremental improvements over time, but ultimately, your focus is to deliver a better product and a better user experience. The challenge is that it is not always (or even rarely) straightforward, and that’s because the work is not visible. When work is not visible—which means progress is not visible—not only can the work take longer, but also there may be misalignment within the company. This can lead to more mistakes along the way, as issues don’t get properly addressed in a timely fashion.
Part of this issue of visibility stems from the fact that many companies don’t use tools or methods to visualize their entire value stream or the value flowing through it. While some companies use physical means to address this problem, there are modern platforms that are able to aggregate data from all the different sources, provide a digital representation of the value stream and help identify any value that is falling through it.
Using a Common Currency for Value Across the Enterprise
There are several parts of the software delivery life cycle teams might use to measure value for development—releases, versions, packages, binary artifacts, etc. When an organization is fundamentally measuring teams using different value currencies, it becomes very difficult to accurately understand whether it is successful. What it needs to do is find a common currency that can span the organization and give stakeholders and developers a real apples-to-apples way of comparing and looking at value-add. In DevOps implementations this common currency is work items. Then, when code commits are actually occurring, those code commits can be affiliated to those stories and work items, which is basically the business value. In that way, the business can use a common currency to track and measure progress.
Measurement
Over the past couple of years, we’ve seen many companies buying tools and changing processes and spending a lot of money in their DevOps initiatives. While these tools are great and can provide incredible insight into your workflow, it is necessary to dig deeper into the measurement to get a bigger picture of the entire pipeline.
So, while measurement is important, what will really drive increased value for an organization is to measure the entire flow of value across the full value stream, not only in one phase or in one area. This means measuring from the very beginning—when an idea is created—all the way until end-of-life.
Along this same line, it is absolutely imperative for a company to establish real baselines for its data. Even if the numbers aren’t pretty, the company must have truthful baselines not only to measure against future performance increases, but also to help identify bottlenecks and other areas of weakness that are opportunities to improve.
Configuration as Code
The goal here is to leverage version control in such a way that a company is creating ultimate efficiency in its build cycle. Versioning everything touched in the software development process will allow for speedier deployments. When there is an error, the team can roll back without much effort. Fundamentally, a company must establish the practice such that every code push becomes a snapshot of the configuration of the entire stack.
Doing this effectively lowers computing code and it becomes trivial to stand up entire environments for the sake of a single user story or a single feature. Having configuration as code will allow a company to perform rollbacks much easier and will enable faster and more frequent deployments.
Compliance
Compliance used to take place after the software was done. When it had gone through development and testing, and prior to going into production, it was passed to a compliance team or officer who was responsible for making sure everything checked out. Not only does this slow things down, it creates a single point of failure and puts the organization at greater risk for not realizing ever-increasing and changing compliance requirements.
In modern practices, teams are embedding the compliance aspect of software development into their value stream and that allows them to avoid rework and waste. Compliance activities should occur in parallel to the development and testing work, rather than when the release is marked done or code complete. Modern DevOps platforms allow builds of all the activities of the software development process into the different phases. The goal here is to have confidence that every software release that comes out of a company’s value stream will be fully compliant and can be deployed into production at any time.
Conclusion
Whether you are already knee-deep in DevOps or are just starting to consider it as a strategy to drive your business results forward and improve your software development, keeping these five considerations in mind will help you stay focused, generate better results and realize success in 2018. If your ultimate goal is to improve value for your customers through incremental and on-going change, it’s a great time to be part of the DevOps culture.
Want more? Check out this webinar for a more in-depth look into what drives DevOps success.
— Eric Robertson