Over the last few years, AI and automation have been slowly but surely changing the landscape of the software development industry. Whether it is applied to testing, security, or reducing wait times for tasks that had previously been done manually, this technology has proven to be essential in order for organizations to keep up with competitors.
The main goal of these use cases, and several others, is to support developers while they work to accelerate the delivery of new products.
Automation is no longer just an option
Suzie Prince, head of product, DevOps, at the software development tool company Atlassian, explained that with today’s developers being tasked with so many different jobs, AI and automation work to simplify complexities as well as control tool sprawl.
“Automation is really the only way for developers, specifically, to keep up,” Prince said. “But also we know that the best organizations use automation all over the place inside their software development life cycle…Unless a team has automated test speeds and automated deployments, there is no way that they can move to continuous delivery and therefore, they can’t really become these elite performers.”
Knowing this, adopting automation is no longer optional. Rather, it has become the next necessary, evolutionary step for every company.
“All companies have to become AI companies in order to remain competitive,” said David DeSanto, Chief Product Officer at GitLab. “It’s not just about leveraging their own machine learning products, but leveraging products that use AI to be more effective and deliver software both faster and more securely.”
Rajesh Raheja, chief engineering officer at the intelligent connectivity and automation company Boomi, built on this, saying that automated code scanning tools that can identify bottlenecks or errors in code are a way that many organizations are currently utilizing AI to speed up development.
“There are tools out there that can use algorithms to try and determine if what you have put into the code is correct in terms of legal implications with open-source software,” he explained. “But then it goes even deeper into product quality.” Raheja explained that manually performing these product quality tasks would take a tremendous amount of time. By bringing in this automation, the developer gets that time back and the process is accelerated.
Anand Rao, global artificial intelligence lead at the business advisory firm PwC, went on to say that he is seeing AI and automation being applied to three different areas to accelerate development: data life cycles, software life cycles, and the model development life cycle.
“AI and automation really plays across all of that,” Rao said. “Not just to automate the software engineering process but also to automate the pipelines that connect the data to the AI.”
Where is automation most useful?
In Raheja’s experience, automation has had the highest impact on velocity when it is applied to quality.
“First, you have the automation in the pipelines that ensures that bad quality code does not get into production, so that already helps the team to not spend time fixing defects and retesting,” said Raheja. “Secondly, this can help companies fix tech debt… Quality automation allows developers to make much bigger and more inclusive changes than they otherwise would without the fear of breaking the system.”
Furthermore, DeSanto explained that GitLab is currently utilizing automation in several other areas to provide for faster development speeds. These include identifying the right code reviewer, actual code creation, and intelligent code security.
He expanded on this, saying that introducing AI into code security can help to speed up development because its main purpose is ensuring that the first time code is committed to a project, it is already secure.
DeSanto noted that by building automation into security early in the process, code can be pushed to production quicker since it cuts down on the number of times developers will have to go back to earlier stages to fix a vulnerability.
Additionally, when looking to add automation into security practices, Atlassian’s Prince emphasized that organizations will get the most out of this automation if it does not fall on the developer alone.
She said the expectation that the average developer or operations team member will be able to double as a security expert is unrealistic and can end up having a negative impact on delivery speeds.
“You have to really look for expert skills in your teams and also look for best-of-breed security tools… These are expert skills and this is a very specific area, so find the best tools and use their automation either in the coding or in your test automation suite,” Prince said.
Empower developers, don’t replace them
Rao also mentioned that in order to get the most out of security automation there has to be an established way for a human to take control if the automation fails.
That being said, it is important to note that even with the usefulness of AI and automation, organizations should be wary of losing that essential human aspect of software development.
“I am a very strong proponent of ‘human in the loop’ systems,” Rao said. “So, essentially the AI is making the recommendations to the human, but the human makes the final choice and that choice is then implemented by the AI.”
According to Rao, this allows for automation to still play a major role in development without the potential for it to make decisions that the developer wouldn’t have made, thereby making the life cycle more efficient.
Boomi’s Raheja also touched on this, explaining that AI and automation cannot think critically, so it cannot operate effectively without a human there to make those decisions.
“A business might have the goal of growing 50% year over year, or that they want their revenue to be a billion dollars, and how do you translate that into automation? The automation doesn’t really know what that means, so you definitely still need that particular human thinking,” he said.
DeSanto went on to explain that when human developers work with automation, it can help to accelerate development because it works to get ahead of problems.
“There is a style or a nuance that could potentially be lost in generating code without context, and so we really see [security automation] as a way to empower developers,” he said. “This helps the developer from the beginning as opposed to giving them a writeup of problems after they’re done with the project.”
He added that while automation is essential to increase speeds, it was never meant to replace developers.
Rather, DeSanto believes it has the potential to fight against developer burnout and result in an even more engaged team.
“I see AI as a way to help make the existing staff more effective,” he said. “When you look at it from that point of view, you don’t lose that human aspect anymore, in fact it kind of becomes the most important thing.”
Additionally, according to Raheja, automation can be an incredibly useful tool to allow developers the freedom to work on what they actually want to work on.
He said that the best way to do this is to automate the processes that are essential but that the developer finds monotonous.
This enables developers to invest in the more interesting and aspects of the job, while the important but more tedious work is done through automation.
Prince went on to explain that in her experience, security automation is the best example of human developers and AI needing to work in tandem.
“There are circumstances where a new vulnerability becomes available or a new way of exploiting software reveals itself, and that is where you would need that human expert,” she said. “They would then have to dive really deep into the software and do what we call black box testing or penetration testing, ”
Automated testing
An important area in which AI can accelerate development is in the testing process. David DeSanto, VP of product at GitLab, explained that AI/ML tools can reduce the amount of noise developers see when working on unit tests.
Automation in testing, he said, can help developers go right to the unit or quality tests that are causing problems, while automatically getting rid of false positives.
“Early in my career, cutting through all the noise and all the alerts developers get was essentially the challenge of the job for me,” DeSanto said. “If we can leverage AI to make that easier, you’re going to find better uptime, better engagement, and less stressed ops engineers.”
According to DeSanto, several organizations have already brought automation into their testing practices in order to accelerate development and make the lives of team members easier.
He cited GitLab’s most recent DevSecOps survey, noting that “37% of teams said that they use AI/ML today as a part of their software testing. That is up from 25%, with another 20% wanting to do it within the next year and the remainder wanting to roll it out in the next couple of years.”
With this, DeSanto explained that a company’s ability to automate and their ability to maintain a competitive edge are not just correlated, but causal.
“App transformation, cloud migration, digital transformation, they’re all about how to get value from what my developer is building from when they start writing it through to when it is in the hands of the user,” he said. “A growing percentage of organizations are having to ship software continuously to really do that… that’s because they have to deliver the value faster and you can only do that if you automate.”
The future of automation
Even with the strides that have been made with AI and automation, Raheja believes there is still room for improvement in the future.
He said that the areas in which automation has the most potential for growth is standardization and maturity. He explained that for an organization to reap all of the benefits of AI, it needs to be both consistent and repeatable.
Raheja said that some of this standardization has already been applied to automation in low-code tools, but generally, AI and automation still has a way to go before it reaches the optimal level of maturity.
Prince also touched on this, saying that she believes development teams are still just scratching the surface of what this technology can offer.
She said, “We really have a long way to go with most organizations…Ultimately, I think that we are at the very beginning of businesses taking advantage of the power of automation and AI.”