In my previous blog post, we dived into two critical questions centering on one critical mission: How to prepare for, and then get started on, a DevOps Journey.
As with most anything that involves running a business, the basics and the details are paramount as you lay the groundwork for success.
Before you take one step outside the door, consider five essential elements to any DevOps transformation:
Having an Agile mindset
DevOps, as the conventional wisdom goes, was born of the need of Agile software development to increase the frequency of releases. More releases required faster feedback loops, better quality control and increased use of automation. DevOps practices evolved to meet those challenges.
If organization leaders are considering DevOps, they should have already successfully embraced Agile, or be well-along in their Agile transformation.
As an outgrowth of Agile software development, DevOps follows many Agile practices, including cross-team collaboration, continuous and rapid feedback loops, continuous improvement, test-driven development and more.
If your organization cannot adopt Agile, it will likely fail to successfully embrace DevOps. Imagine a typical scenario in which DevOps enables an organization to release more frequently—say, monthly instead of quarterly, or weekly instead of monthly.
Breaking down silos
Taking a proverbial sledgehammer to departmental silos is closely associated with an Agile mindset. If you already made an Agile transformation, then one should assume those physical or more often process-induced “walls” between departments have been torn down.
Having embraced Agile, we assume that Development and Testing are working side-by-side as part of an Agile software development team.
Implementing DevOps requires closing the often wide gap between Development and Operations. If your organization cannot tear down the typically shorter wall between Development and Testing, then tearing down the larger walls between Development and Operations will be impossible.
Knowing your business
Before starting your DevOps journey, know thyself. Most organizations establish business metrics, such as sales quotas, profit targets, employee retention objectives and client acquisition goals.
However, many organizations have not formalized their IT-related Key Performance Indicators or Service Level Agreements.
DevOps is all about measurements—application response time, incident volume, severity, and impact, defect density, mean time to recovery, downtime, uptime and so forth. Establishing meaningful and measurable metrics is one of the best ways to evaluate the continuous improvements achieved by a maturing DevOps practice.
Taking the long view
Rome was not built in a day, and organizations don’t transform overnight. DevOps is a journey, not a time-constrained task in a team’s backlog. There is a reason DevOps maturity models exist. Like most engineering practices, DevOps takes time to become successfully entrenched in a company.
You’re best-served by aiming for quick, small wins, followed by more small wins. Don’t expect a “big bang” with DevOps. Achieving high DevOps performance is like the Agile practice of delivering small pieces of valuable functionality, in an incremental fashion.
Getting the “Hello World” application successfully through a simple continuous integration pipeline might seem small, but think of all the barriers that were overcome to achieve that task—source control, continuous integration server, unit testing, artifact repository, and so on.
As I mentioned earlier, the first step in creating a DevOps plan is analyzing your current level of IT maturity. Individual department leads must be willing to be open, honest and objective in assessing their status. An inability to be transparent about practices, challenges and performance, is a sure sign of an unhealthy corporate culture.
Accurate perspective is critical for maturity analysis and planning; furthermore, an unhealthy culture can be fatal to most DevOps transformation. DevOps only thrives in an open, collaborative and supportive culture.
As Alexander Graham Bell once famously said, "Before anything else, preparation is the key to success." Although not a guarantee, properly preparing for a DevOps transformation by addressing these five key areas, should greatly improve an organization’s chances of success.