Ah, DevOps! IT leaders have always had a love and hate relationship with you. You can provide amazing speed, collaboration, and experimentation but the cultural change you bring with you is too hard for some people which keeps them up all night.
Business leaders who attend DevOps events tend to struggle with the Culture aspect more than anything else. The concepts of blended or shared responsibilities, blameless postmortems, and speed vs stability can often run counter to the principles which they have been taught about leading their organizations in the past. They do realize that the future of their business will be highly impacted by their ability to deliver software faster, but they struggle to find a language or framework to communicate to their teams about how to make this happen.
Let us now have a look at what the effective DevOps habits are –
Be Proactive
Let’s start with the one constant in IT – Change. 20 years ago, client-server was just starting to gain momentum. 10 years ago, the iPhone was barely introduced and AWS had two services. 5 years ago, Linux containers were still overly complicated to use and web-scale companies weren’t open sourcing important frameworks.
We have seen massive changes in the last 50 years regarding which companies lead their respective industries, and which market segments are the most valuable. Business leaders must recognize that technology is driving these changes at a rapid pace and be proactive for the next change.
Set Goals
There’s absolutely no point sailing a ship if you are unaware of the destination. Hence, a good DevOps consultant always sets the goals pertaining to things like reduced bugs, deployment times, frequency of deployments and software quality.
“A good DevOps team sets its goals right from the start,” said Rick Broker, a sales engineer with XebiaLabs. “Your goals may be about development velocity, software quality or even commits to the source code repository. But you must set goals before you start.”
Put First Things First
Work on the most important business priorities. While it’s easy to imagine what a greenfield organization would do to make “DevOps” their culture, in reality, it is not an immediate step for most of the organizations. Their org charts are optimized for yesterday’s business model and distribution strategies. They have many application platforms, siloed for different business lines. And they need to adapt their applications to become mobile-native in order to address customer expectations.
Putting first things first, these core elements need to be in place before the business can expect to be successful in deploying software into production, rapidly.
Automation – It is critical to building a core competency in the skills and tools needed to automate repetitive tasks, both for applications and infrastructure.
CI/CD Pipelines – Just as factories have been built around assembly lines, building modern software is driven by automated pipelines that integrate source code repositories, automated testing, code analysis, and security analysis. Building skills to manage pipelines and process around frequent software updates is critical for building a framework to manage frequently updated software applications.
Application Platform – Once applications are built, they need to be deployed into production. Also, customers expect to get updates on their software on a frequent basis, so it’s important to have a repetitive way to deploy application updates and scale to meet business demands on the application. Managing the day-to-day activities of applications is the role of an application platform.
Once these elements are in place, many IT teams are ready to start containerizing their existing and modern applications.
Team Autonomy and Enterprise Alignment
Scrum teams should autonomously pull items from a common product backlog, and align to enterprise goals on a six-month planning cycle. In this time frame, it should be absolutely clear what needles you’re trying to move for the business and then you can measure how you’re doing against that. They may move ahead, they may move backward, they may decide, based on the data they’re collecting to do more or do something else. But you know, what’s in their control based on the things they’ve agreed for the six-month plan.
Focus on the Flow of Customer Value
Feedback from customers and application performance knowledge is the key to ensure that your applications are running smoothly. Look at how people use your software, that is – observe what gets used and what doesn’t. See what the scenarios are and reach out to customers qualitatively. Engage with high-usage accounts and encourage your engineers to buddy up and find out what’s gone well, and what they would like you to improve upon.
Adopt New Tools
When it comes to tools, there is no shortage of options to explore. Well-established choices, like Chef and Puppet, make it possible to automate the software development environment. New tools like the ones offered by Go2Group, a DevOps tools, and solutions vendor, are good for tasks like eliminating the need for departmental sign-offs and time-consuming interdepartmental requisitions. Effective DevOps consultants know that learning and adopting new tools can save them a significant amount of time in the long run.
Turn Failures into Success
Things do fail, that’s just a reality of life. But effective DevOps consultants know that the inevitable failures can be chalked up as a success, as long as they are dealt with appropriately. Lance Knight, COO of Go2Group said: “Reducing defect conversion time – that is, the amount of time it takes to fix a defect after it has been identified, is an often overlooked benefit of DevOps.”
A DevOps approach doesn’t just mean getting applications quicker to market, it also means being able to handle failures more efficiently. Are there manual tasks that take place when a build breaks that can be automated? Can scripts be written to replicate the common troubleshooting tasks a systems administrator performs? If so, the entire process of getting the system back up when it inevitably goes down can be hastened. That’s the way failure can become a big DevOps success.
This certainly isn’t an exhaustive list. But if your consultant isn’t indulging in these practices, they’re definitely not doing their job right.
In the end, the habits of highly effective DevOps require a range of skills that go beyond learning a new way to use automation to improve availability and performance – these skills also include prioritization/time management, effective relationship management and goal alignment across teams, and continuous improvement. But the good news is that most of the DevOps folks seem naturally inclined to continually improve.