Artificial intelligence is making the design, development, and deployment of software faster, better, and cheaper, according to Deloitte.
Companies involved in software development, either for external customers or for their own internal needs, face a variety of challenges. A shortage of skilled developers is impeding efforts to create quality software. Development projects often go awry. Many are late, go over budget, or are simply cancelled before they come to fruition. And despite the best efforts of programmers and other pros, finished applications can be hampered by bugs. One factor that can alleviate some of these obstacles is, according to a new report from Deloitte.
SEE: Managing AI and ML in the enterprise 2019: Tech leaders expect more difficulty than previous IT projects (TechRepublic Premium)
AI can help software development in several ways, says Deloitte. AI-powered tools can cut in half the number of keystrokes that developers need to type. They can catch bugs and vulnerabilities before the code is reviewed or tested. And they can automatically generate some of the tests required for quality assurance.
Certain work typically performed by developers can be automated.and Natural Language Processing can analyze source code and other development data, including records of project schedules, delays, application defects, and application fixes. AI can help developers write more accurate code and create better requirements documents, says Deloitte.
Deloitte cited a few specific examples in which AI can help.
Project requirements. Requirements management is the process of gathering, validating, and tracking the requirements that end users have for a program. But if mismanaged, this process can cause software projects to go over budget, face delays, or fail entirely.
Using AI, digital assistants can analyze requirements documents, find ambiguities and inconsistencies, and offer improvements. Powered by natural language processing, these tools can detect such issues as incomplete requirements, immeasurable quantification (missing units or tolerances), compound requirements, and escape clauses. Companies using such tools have reportedly been able to reduce their requirements review time by more than 50%, according to Deloitte.
Coding, review, bug detection, and resolution
As developers type, AI-powered code completion tools can serve up recommendations for finishing lines of code. Some tools can even display a list of usable code snippets based on relevance. AI-powered code-review tools can understand the intent of the code and look for common mistakes, thereby detecting bugs and suggesting code changes. Video game company Ubisoft says the use of machine learning is helping it catch 70% of bugs prior to testing.
More thorough testing
Automated software testing tools that run test different scenarios have been around for many years. But now AI can help companies not only run tests automatically but also generate the test cases. AI-based tools can also identify true defects rather than false positives and determine their root causes.
As one example, a private equity firm used an AI-powered tool to automatically generate more than half of the test cases used to validate one software project. As another example, a mid-sized software company turned to an AI-based testing tool when its traditional tool couldn’t adapt to different scenarios. The company was able to get the same level of same test coverage as with its older tool but in much less time.
AI-powered tools are helping companies predict deployment failures beforehand by analyzing such data as statistics from prior code releases and application logs. In one example, an e-commerce company that used machine learning to verify software deployments and rollbacks achieved faster application delivery and a 75% decrease in the mean-time-to-restore from a failure in the production environment.
In another example, an online company used a machine learning tool to analyze potential application runtime settings and automatically deploy optimal environment configurations. This process helped the company cut in half its cloud costs and more than double application performance.
Companies are also using AI to improve software project management. AI-based tools use advanced analytics to predict technical tasks, engineering resources, and timelines required by new software projects. As one example, the innovation team at French telco Orange used an AI-powered project management tool to automate the time-consuming and manual process of updating project timelines with changes in the project scope or feature sets.
More AI-based tools that support software development are hitting the market or even becoming accessible for free, says Deloitte. Over the past 18 months, vendors have launched dozens of AI-powered software development tools. Startups that offer AI-powered software development tools raised $704 million over the 12 months ending September 2019.
Still, a reliance on AI to improve software development does have some pitfalls, according to Deloitte. Tools trained on open-source software, which is not free from errors or vulnerabilities, could encourage developers to inadvertently introduce bugs and security risks into their code. Companies that deploy code recommendation tools could see productivity slip before rising as such tools require some training before they can work effectively.
But AI-based tools for software development are here and will increasingly play an important role.
“Pundits have long predicted the end of programming,” Deloitte said. “Some have forecasted that computers would eventually write their own programs; others have suggested that the task of programming computers will give way to a process of teaching computers, by means of machine learning. Both of these are happening, to a limited degree.
“But for years to come, most software will be created by people, Deloitte added. “AI-enhanced software development tools are a good example of how AI can empower, rather than replace workers. Technology leaders are on a mission to help their organizations create the future, and savvy use of AI to improve the practice of software development can support this mission.”