AI is transforming all business functions, and software development is no exception. Not only can machine learning techniques be used to accelerate the traditional software development lifecycle (SDLC), they present a completely new paradigm for inventing technology.
Traditionally, developing a computer programs requires you to specify in advance exactly what you want the system to do and then hand engineer all of the features of your technology. Encoding many tasks in an explicit way is possible, as computers before the advent of AI were still quite powerful.
There are many tasks and decisions, however, that are far too complex to teach to computers in a rigid, rule-based way. Even an activity as seemingly simple as identifying whether a photo or video on the internet is of a cat is beyond the reach of traditional software development. Given the vast possible permutations that cat photos can take, no team of engineers can possibly enumerate all of the rules that would reliably recognize cats vs. all of the other possible objects that can appear in media.
Machine Learning Fundamentally Changes The Software Development Paradigm
Enter AI techniques such as machine learning and deep learning. In these approaches, an engineer does not give the computer rules for how to make decisions and take actions. Instead, she curates and prepares domain-specific data which is fed into learning algorithms which are iteratively trained and continuously improved. A machine learning model can deduce from data what features and patterns are important, without a human explicitly encoding this knowledge. The outputs of ML models can even surprise humans and highlight perspectives or details we haven’t thought of ourselves.
Thus, the most profound impact of AI on computer programming is the unraveling of how humans perceive, define, and execute software development. Author, scientist, and Google research engineer Pete Warden is confident that “there will be a long ramp-up as knowledge diffuses through the developer community, but in ten years I predict most software jobs won’t involve programming.”