Will Artificial Intelligence Finally Replace Software Developers?
Instead of being concerned, we should've been taking advantage of it!?
More e more companies are using AI to help improve every stage of the software development process, from requirements gathering to deployment. Let's consider the following examples.
Project requirements.?
Requirements management—the process of gathering, validating, and tracking what end users need from a piece of software—is a major cause of delayed, costly, or failed projects when done poorly. Several vendors have introduced digital assistants that can analyze requirements documents, flag ambiguities, and inconsistencies, and suggest improvements. These tools are powered by natural language processing and trained on widely referenced guidelines for writing high-quality requirements. These tools can detect inaccuracies or other weaknesses—such as incomplete requirements, immeasurable quantification (missing units or tolerances), compound requirements, and escape clauses—to expedite requirements review. Enterprises using such tools have been reportedly able to reduce requirements review time by over 50 percent.
Coding, review, bug detection, and resolution. As developers are typing, AI-powered code completion tools provide recommendations for completing lines of code. According to various sources, this can reduce the keystrokes required by up to half. Some tools even generate a relevance-ranked list of usable code snippets. Some of these tools work on the same principle as Gmail’s Smart Compose, a machine learning-powered feature that suggests words or phrases as a user is composing an email. Meanwhile, code-review tools use AI to automatically detect bugs and suggest code changes by understanding the intent of the code and identifying common mistakes and their variants. At Facebook, a bug detection tool predicts defects and suggests remedies that are thus far proving correct 80 percent of the time. This is important: The cost of fixing bugs rises considerably further down the software life cycle, as reproducing the defects in a developer’s local environment can be complex and business-critical services failure can be costly. Video game company Ubisoft says the use of machine learning is helping it catch 70 percent of bugs prior to testing.?
More thorough testing.?
Automated testing tools that run test scenarios written by quality assurance analysts have been in use for years. Now, AI has made it possible not only to run tests automatically but to automatically generate test cases. This saves analysts time and helps ensure that more scenarios and functionality are tested. For instance, a private equity firm used an AI-powered tool to automatically generate over half of the test cases it used to validate one software project. These tools can also make it easier to distinguish true defects from noise and identify their root causes. A mid-sized software company found its traditional tool to be brittle—tests would break with slight changes in the user interface (UI). The firm found an AI-based testing tool to be more robust; able to adapt to UI changes by identifying elements by their functionality and not just their position on the screen. The company achieved the same test coverage as with its older testing tool in a smaller fraction of the time.
领英推荐
Deployment.?
Sometimes software defects become apparent only after the software is deployed in the environment in which it is meant to run. But AI-powered tools are helping to predict deployment failure ahead of time by examining data such as statistics from prior code releases and application logs. This can speed up root cause analysis and recovery in case of a failure. In one case, machine learning–based automatic verification of deployments and rollback helped an e-commerce company attain faster application delivery and a 75 percent reduction in mean-time-to-restore from a failure in the production environment. AI can even help applications run optimally while in production. Another online company deployed a machine learning–based tool that analyzes numerous potential application runtime settings and automatically deploys optimal environment configurations. This helped them halve cloud costs and more than double application performance.
Project management.?
Firms are even using AI to improve project management. A number of startups have introduced tools that apply advanced analytics to the data from large numbers of prior software projects to predict the technical tasks, engineering resources, and timelines that new software projects will require. This can make project planning more accurate and project execution more efficient. As an example, the innovation team at French telco Orange deployed an AI-powered project management tool to automate the long, manual process of updating project timelines with changes in project scope or feature sets.
Conclusion:?
As software development grows increasingly complex, efficient management of the process is key to success. AI is playing an increasingly important role in software development by automating various tasks and providing insights that humans may not be able to glean. From requirements gathering to deployment, AI is helping to improve every stage of the software development process. As a result, companies that make use of AI in their software development efforts are likely to see a significant competitive advantage.
Founder @ Capitol CNCT
2 年super interesting read!
Engineer, MBA, Entrepreneur, Investor
2 年not even the creators of AI are safe from its impact