Why is DevOps now so important to software teams and their businesses?
Let's count the ways, says Mark Levy, director of strategy for software delivery at Micro Focus. He recently shared his observations on the current state of software delivery, which include the following:
- "Heavyweight, linear-sequential development and delivery software practices."
- "Large, infrequent software releases supported by complex and manual processes for testing and deploying software."
- "Overly complex and tightly-coupled application infrastructures."
- "The perception of security, compliance and performance as an after-thought and a barrier to business activity and innovation."
These weighty old methods of software delivery -- siloed, and via waterfall methods -- only mean "large amounts of technical debt and rework, which inhibits adoption of new technologies," he says.
Enter DevOps, which, as a discipline, has been on the scene for close to a decade, but has garnered a great deal of interest over the past two years. DevOps, which aligns and automates the activities of developers and operations teams to promote continuous integration and delivery, "represents one of the biggest IT transformation initiatives of the past 30 years," Levy says. Ultimately, the rise of DevOps means significant changes ahead in the career paths and skills requirements of IT managers and professionals as well.
Still, despite all the hoopla over DevOps in recent years, he adds, true adoption "has been slower than expected." DevOps has proven itself as the way to accelerate an enterprise's transformation to digital, "but the conservative nature of enterprise IT has many organizations stalled and waiting for the push from the executive team to cross the DevOps chasm," Levy says.
Once DevOps is in place, he continues, it helps promote a culture of continuous improvement. However, he cautions, "there are no silver bullets, and continuous improvement is not linear as it tends to follow a J-curve. Early and easy wins to help build momentum, but eventually things get harder and quite often you will see a regression."
Still, Levy sees DevOps accelerating over the coming months, as the many DevOps pilot programs give way to actual enterprise realities. "Up until now, most DevOps implementations in the enterprise were focused on at the team level," he points out. Making the leap into the enterprise will now require "a seismic shift in the way an organization plans, builds, tests, releases, and manages applications." To achieve this, Levy urges DevOps proponents to "work through the early regressions as greater success lies ahead. DevOps does not have an end state as organizations are always optimizing, improving, experimenting, and learning."
The challenge managers face at this time, he says, is promulgating DevOps principles across the enterprise -- especially those with large, complex, and legacy-laden systems. Part of the issue is the need for more DevOps skills to move things forward. "A lack of skilled development, testing and delivery personnel means that manual efforts cannot scale, so many organizations struggle to release software in a repeatable and reliable manner," Levy points out. Automation can help pave the way to greater enterprise adoption, which "can shorten the time it takes to delivery application updates while eliminating the security vulnerabilities, data loss, and downtime associated with today's deployment processes."
This means rethinking how IT departments and workflows are structured as well. DevOps is helping to "redefine how organizations and teams are structured, with automation redefining the types of skills and jobs needed to support the deployment pipeline," he says. Increased automation of software delivery and deployment will shift many tasks. "The deployment pipeline is the end-to-end process of taking a business idea and delivering it as value to the customer, so most jobs that provide manual services in this pipeline are prime candidates for automation," he adds. "While some tasks can't be automated, most can and will be."
While some tasks may be eliminated, new tasks will emerge. "For example, a system administrator must learn how to design and develop the automation policies and scripts that support the deployment pipeline, while a quality assurance test engineer starts working with developers to design and deliver the automated test scripts," says Levy. "Leveraging domain expertise by updating skills to support the automation of IT will be crucial. Automation will replace people in routine, codifiable tasks, but when problem-solving skills, adaptability, and creativity are required, people will still have the advantage. Automation frees up valuable development resources, who can refocus on creating customer value for the business."