Nowadays, many software developers are using artificial intelligence technology to help write and review code, detect errors, test software, and optimize development projects. This helps enterprises deploy new software more effectively and makes it easier for a new generation of developers to learn programming.
This is the conclusion of a survey report on the use of artificial intelligence technology in software development recently released by Deloitte. The report’s authors David schatsky and sourabh BUMB describe how several companies have launched dozens of AI driven software development tools in the past 18 months. And its market is growing. AI startups committed to software development received an investment of US $704 million in 2019.
The new tools can help software developers reduce the workload, detect errors when writing software, and automatically perform many tests to confirm the quality of software. This is important in today’s era of increasing reliance on open source, because open source can bring some errors.
Although some people worry that the adoption of automation technology may cause programmers to lose their jobs, the two authors of the survey report think it is unlikely.
“To a large extent, these AI tools are helping and enhancing human capabilities, not replacing them,” schatsky said. These tools help democratize coding and software development, and enable some novice programmers to fill the talent gap and learn new skills. AI technology can also conduct code reviews and provide quality assurance. “
A study conducted by Forrester in 2018 found that 37% of enterprises engaged in software development are using coding tools driven by artificial intelligence. Many companies such as Tara, deepcode, kite, functionalize and deep tabnine provide automated programming services, and this proportion will be higher in 2020.
Successful applications seem to be accelerating this trend. “In addition to saving costs and time, many companies that use these AI tools have also improved the quality of their final products,” schatsky said
Deloitte’s research shows that artificial intelligence can help alleviate the long-term shortage of software development talents. Last year, poor software quality cost American enterprises $319 billion. The application of artificial intelligence has the potential to alleviate these challenges. Deloitte analysts believe that AI can help in many stages of software development, including project requirements, code review, error detection and resolution, and more help through testing, deployment and project management.
AI development experience learned by IBM engineers from Watson project
Bill Higgins, an outstanding engineer of IBM, is the head of IBM Watson’s artificial intelligence development task team, with 20 years of software development experience. He recently published a research report on the impact of artificial intelligence on software development.
Higgins said, “enterprises need to abandon the previous model of developing software. If it is difficult for developers to adapt, it will be far more difficult for enterprises to adapt than developers. Facts have proved that enterprise managers’ lack of experience in artificial intelligence is also an advantage. Because he has to go through this learning process, he has a deeper understanding and sympathy for developers who need to adapt. “
He said that in order to understand AI in software development, he studied how other people apply AI (ask questions) and use AI better than other alternative methods (solutions). This is important to understand what may happen and avoid misunderstandings.
He said that since he obtained his degree in computer science from Pennsylvania State University, the process of learning artificial intelligence was the most stressful and difficult learning experience he felt. “It’s too difficult for me to rethink how to improve software systems from experience, and software systems only do what developers ask them to do,” he said
IBM has developed a conceptual model to help developers think about the transformation based on artificial intelligence, which is called AI ladder. This ladder has four steps: collection, organization, analysis and injection. Most enterprises have a large amount of data, which is usually organized in the form of isolated it work or through acquisition. For example, an enterprise may have 20 databases and 3 data warehouses, which contain redundant and inconsistent customer information. The same is true for other data types, such as order, employee, and product information. “IBM has conceptually freed AI ladder from its predicament,” Higgins said
In the injection phase, the company is committed to integrating the trained machine learning model into the production system and designing feedback loops so that the model can be continuously improved from experience. An example of injectable artificial intelligence is the Netflix recommendation system, which is supported by a complex machine learning model.
IBM has identified a combination of APIs, pre built machine learning models and optional tools to encapsulate, collect, organize and analyze AI ladder for common machine learning domains, such as natural language understanding, dialogue with virtual agents, visual recognition, voice and enterprise search.
For example, Watson’s natural language understanding becomes rich and complex. Machine learning is now good at understanding many aspects of language, including concepts, relationships between concepts and emotional content. Now we can provide NLU services and R & D tools for natural language processing based on machine learning to developers through perfect API and supported SDK.
“So even if developers are not trained in data science or machine learning, they can now start using some types of AI in applications,” Higgins said. Although this does not eliminate the learning curve of artificial intelligence, it will make it smoother. “