More organizations are increasing their use of automation throughout the enterprise, and DevOps is no exception. In fact, software development teams have been automating various types of tests for many years. More modernly, automation is seeping into other parts of the SDLC as evidenced by CI/CD pipelines that are automated highly, end to end. These days, it's not just a matter of testing more often and at a greater scale, it's about delivering value faster, improving product quality and improving DevOps team efficiency simultaneously.
“Initially, AI will augment developers, but eventually, it will replace some of them. ML/DL/AI can automate repetitive tasks, catch and correct errors, and vastly reduce the time needed to create a viable project,” says Rob Enderle, principal analyst at technology research firm Enderle Group. “These changes will significantly increase productivity, reducing much of the need for developers on a given project.”
Meanwhile, automating tasks has been becoming easier to do than it once was. While automation scripting isn't a lost art, there are more tools available now that don't require it. In the case of software testing, there's even a name for it: “codeless test automation.”
In 2017, Microsoft introduced IntelliSense, a machine learning feature in Visual Studio that enables “auto complete” capabilities. It automatically infers what a programmer is typing, similar to Google search.
More recently, Microsoft introduced a new open source low-code option called Power Fx, which is based on Excel. The purpose of Power Fx is to enable citizen developers to build applications using natural language, which is even easier than building applications with visual programming. In fact, Power Fx has been integrated into the Microsoft Power Apps visual low-code environment.
Meanwhile, Github and OpenAI launched the technical preview of Copilot, an AI tool that autocompletes code.
“[Copilot] has the potential to replace much of the googling for 'how to unmarshal JSON.' Sites like Stack Overflow won't be needed as frequently since the IDEs like Visual Studio Code will auto-suggest competent code (from what we've seen),” says Joseph Spurrier, CTO of automated cloud governance software provider Cloudtamer.io. “ML could be the equivalent of a turbocharger for development teams. The other potential is to correct code that is already written, essentially finding and fixing bugs in logic automatically, which would result in less buggy systems in the industry and millions to billions of dollars saved.”
So, AI isn't an existential threat to developers, at least yet. Bear in mind that today's AI capabilities will not be the same as tomorrow's AI capabilities. The line in the sand between what developers do and what AI does will evolve over time.
“DevOps skill requirements are so high that I don't see anything people are worried about. DevOps automation is the best example of that human plus machine augmentation,” says Rajendra Prasad, global automation lead at professional services consulting firm Accenture. “Someone has to understand the pieces of the puzzle.”
The Value of Automation
What gets automated in an enterprise -- including in DevOps -- are things that are repetitive, boring, or need to occur at a speed and scale that humans can't manage on their own, at least cost-effectively. When it comes to software development, automation's dual purpose is to increase release speed and quality. However, what AI can't do is automatically generate an application out of thin air, particularly without context.
“You can build the data; you can build algorithms; you can build functionality -- all of that -- but at some point, you have to understand what the user's needs or the right functional needs are,” Prasad says. “And those functional expectations keep changing.”
Like any other application of AI in a human context, AI is merely assistive. By splitting out what AI is good at (pattern recognition) and what humans are good at (creative problem-solving), enterprises get the best of both worlds.
Using Automation Strategically
Igor Bergman, vice president of software and cloud for PCs and smart devices at Lenovo, is determined to drive more value with AI.
“When you're developing a software feature, 80% of the time is spent developing common services, core services and features, infrastructure and cloud, but that stack provides little differentiation or value to the end user. The advanced features and innovation take about 20%,” Bergman says. “We're trying to reverse that to 20/80 using AI/ML automation so developers can focus as much as possible on innovation and advanced features.”
Instead of Lenovo developers configuring and maintaining an environment themselves, AI handles it for them by considering the contexts of developer behaviors, the project on which they are working, components, and infrastructure requirements. The code is continually updating, modeling the environment, and then comparing the modeled environment to the operational environment and then proactively addressing issues as they arise.
“I think machine learning/AI is incredibly powerful. I mean, how much money is wasted on infrastructure that we're not using in a virtualized environment, in a cloud environment?” says Bergman. “If you use the modeling to spin up and spin down, how much time does that save? [And] security, you can be predictive and proactive with anomalies, attacks, and triggers by automatically shutting down back doors, ports, and things like that.”
Lenovo also built a machine learning model that is used in R&D.
“We worked with Microsoft, Intel, and Amazon to build a device modeling environment,” he says. “We're trying to proactively determine where an issue will occur so we can adjust before the bug is even created.”
AI and machine learning save DevOps teams time and money, both of which they need desperately. The state of the art will continue to improve, which means AI will take on more tasks done traditionally by developers. For the foreseeable future, AI will simply create more time for the work developers are best qualified for.