AI is requiring software development teams to deconstruct then reconstruct the way they work, and add a heavy emphasis on machine learning. Credit: Getty Images
By AI Trends Staff
Now machine learning is seen as the new way forward in software development. It is seen as potentially able to take the programming out of programming.
Google research engineer Peter Warden said, “In 10 years, I predict most software jobs won’t involve programming,” in a recent article in TopBots.
Waterfall software development, also called the Systems Development Life Cycle (SDLC), entailed a programmer using a language such as Python or C++ to write code to deliver on the application requirements. These came from a requirements definition stage, often involving a software business analyst sitting with a business executive. Application design and development then took place, followed by QA testing. Once satisfied, the team leader deploys the application into production, then maintains it. Developers have modified this cycle many times, such as through agile software development “sprints” to try to speed things up.
In the new approach to software development, engineers to prepare domain-specific data for feeding into AI machine learning algorithms. The resulting models are trained and continuously improved. It is said a machine learning model can determine the features and patterns that are important to users, without a human such as a business analyst explicitly encoding the knowledge. Maybe the ML models will think of new important details the humans have not yet articulated.
The programmers of tomorrow will “collect, clean, manipulate, label, analyze and visualize data that feeds neural networks,” said Andrej Karpathy, formerly or OpenAI and now Director of AI at Tesla. “Neural networks are not just another classifier, they represent the beginning of a fundamental shift in how we write software.”
Andrej Karpathy, director of AI at Tesla
The SDLC approach will not disappear, since components surround the AI,for user interface, data management and security for example, will still be written in the more traditional way.
Look at Code as Data
Looking at existing code as data containing insights, is a viewpoint consistent with an AI infusion into software development. Code repositories, for example, are a record of all the versioning that went on to the application until it reached its current state. Metrics can be computed from program parsing, language classification and other analysis, according to a report in CIO.
Startups see an opportunity to help organizations bridge from waterfall software development to AI software development. For example, source{d} has developed a platform to automate code review for developers, while helping executives with data to help them keep the IT strategy and adoption of AI in synch. Startup Semmle helps with security by discovering new types of source code vulnerabilities.
For some tasks, the humans are no match for the AI. Find whether a piece of code is a duplicate from an open source project, for example, might require analysis of a million lines of code. An effective algorithm beats the human at that.
Machine learning models can be built to do coding work. Startup Diffblue uses machine learning to write unit tests for code.
An engineering manager who wanted to see what programming languages, open source or proprietary frameworks are now popular with the company’s programming teams, can gain visibility using a source code review tool.
Developers can also save time by training bots to review code as they submit it for QA testing, suggests a recent article in Linux.com. The bot could check for common mistakes, make sure the style is consistent with the existing code base, and work 24/7.
Read the source articles in TopBots, CIO and Linux.com.