via Forbes : Back when I was a teenager, before the days of the internet, I taught myself how to program, and of particular interest to me were neural networks and deep learning.
From this perspective, it’s been fascinating to see how artificial intelligence (AI) has re-emerged after long periods of failing to meet expectations. Helped by the power of cloud computing and big data, AI is creating a revolution faster than we could ever imagine. We see it everywhere today — from Google Photos to Amazon’s Alexa to the self-driving capability of a Tesla. But how will AI impact the development of the software that underlies many of these new services? How will the job of a developer or tester change?
Will we see the transition to, in the words of Google CEO Sundar Pichai, software becoming a system that “automatically writes itself”?
AI is already starting to impact all aspects of the software development lifecycle, from the upfront conceptualization of the software to development, testing, deployment and ongoing maintenance. Currently, I see two main impacts of AI on software development:
- AI helping developers and testers create better software
- Developers using AI to create better functionality that is more responsive to users
AI Is Helping Developers And Testers Create Better Software
The first impact of AI on the developer job has been due to improved tools that help developers code better and for quality assurance (QA) experts to test more effectively. This is already helping improve overall software quality, as using machine learning to test software is the natural next step after automation testing. We’re already seeing testers use bots to find software bugs. Meanwhile, an emerging area involves testing tools that can use AI to help testers find flaws in their software and then fix code automatically after finding a bug. As an example, last year the Defense Advanced Research Projects Agency (DARPA) held a major event to develop systems that can automatically and autonomously “detect, evaluate and patch software vulnerabilities” to improve cybersecurity.
AI will also help young developers become better programmers faster while helping them learn different languages if they want to change their focus. Just as we’re seeing AI seep into enterprises via the tools that we all use every day (think of Salesforce embedding AI into its CRM platform or AI now appearing in Microsoft Word’s Editor), similar tools will impact the developer community.
One of the most interesting areas of AI is seeing how it can help developers work better together. For example, in agile development, we’re seeing how AI can be used to improve estimates. While agile teams can become very effective at estimating accurately after working together for some time, there will still be challenges given the range of influencing factors. AI is well-placed to provide guidance on estimates where there is a complex interplay between different variables and a lot of data available from previous projects.
Meanwhile, I believe we can expect to see machine learning being used in scenarios such as predicting the possible failure rate for an agile sprint. We can also expect to see the emergence of AI helping developers decide what they should be building. For example, what parts of an application should the development team focus on?
Developers Use AI To Build Better Applications
Enterprises today want the functionality that AI can feed into their software to provide highly customized and personalized services for customers. There are already countless examples of AI improving applications and creating new functionalities, whether it is the predictive text on your smartphone or the bots that the Washington Post is using to write simple news articles.
Integrating such AI functionality into applications is becoming a lot easier for developers. For example, at Build 2017, Microsoft announced the deployment of 29 Microsoft Cognitive Services to make it simpler to incorporate AI with just a few lines of code. Microsoft APIs help developers easily integrate AI into the applications they are developing. Meanwhile, it’s now possible to create a custom chatbot for your business without programming experience via Octane AI or Chatfuel, which you can use to create a bot for Facebook Messenger.
The Challenge Will Be Developing The Right Mindset
Machine learning, and neural networks in particular, will require developers to not just learn new skills but also establish a new mindset. Developing this mindset will be the real challenge. Traditional developers typically think in linear algorithmic ways, and this is not always what is required when developing machine learning algorithms.
It’s also going to require developers to have a much deeper understanding of the business and what the overall objectives are. This is because when AI is implemented into software, there is a shift from a relatively simple input-output equation to building software that can automatically respond to different situations and provide a range of responses.
Self-Writing Software Is Still A Long Way Off
We’re still nowhere near being able to simply tell a computer what our requirements are and then the computer single-handedly writes the code and creates the final application. I don’t believe developers should be worried about losing their jobs with the emergence of AI; rather, they need to look for ways in which they can develop skills in AI and use AI to become better developers. What we’re going to see is a broad shift in the nature of the developer and QA job.
Source : Forbes | How Will AI Impact Software Development?