3 Ways AI Is Changing Software Development
Software engineering is not immune to automation, and developers know it. An oft-cited 2016 survey by Evans Data Corp. found that 29 percent of software developers at the time were worried about being replaced by AI. Since then, artificial intelligence has not advanced to the level of our cinematic imagination, but it is automating tasks in the software engineering lifecycle. Far from rendering developers obsolete, advances in AI have allowed software professionals to be as much as 10 times more productive.
In 2021, when GitHub announced its new CoPilot feature – an AI-powered tool that helps programmers code – industry-specific outlets reported that the technology revived developers' fear of AI. Those concerns prompted GitHub CEO Nat Friedman to assert that AI in programming is part of the "third wave" of productivity changes in the industry. In other words, artificial intelligence tools were the natural descendants of debuggers, compilers and open-source coding platforms. "The problems we spend our days solving may change," he wrote on Y Combinator, "but there will always be problems for humans to solve."
Friedman is right – we can't always predict the ways technology will shape the future, but we can count on its continued evolution. The tech industry is adept at transitioning and adapting to new use cases. This adaptability has become increasingly necessary when it comes to disruptive technologies such as AI, machine learning, deep learning and computer vision. But consider that it is humans who provide the complex reasoning skills AI and other smart technologies cannot replicate. There will always be a need for people with the right skills and credentials.
To stay competitive in software engineering, you need to be willing to reskill whenever and as often as necessary. Self-study can get you started but may be insufficient, given the breadth of the changes happening in the industry. Ambitious professionals further their expertise through graduate-level education in artificial intelligence-focused programs such as SMU Lyle School of Engineering's Online Master of Science in Computer Science with Artificial Intelligence Specialization (MSCS-AI). This guide explores the way AI is changing software development, the reality of artificial intelligence use cases in the field and how completing an artificial intelligence master's online can help you keep up.
The Role of AI in Software Development
In a study by SnapLogic, 61 percent of survey respondents said that AI made them more efficient and productive. Software professionals can harness the power of artificial intelligence in several ways. AI can't write code – yet – but it can optimize the ways developers write and improve code, preventing costly and time-inefficient mistakes. According to Deloitte, AI-enabled tools can reduce the number of keystrokes developers make significantly by providing recommendations for completing lines of code. AI can also identify bugs and generate tests, speeding up the development process rather than taking it over completely.
This isn't the future of software engineering; it's what's happening right now. The video game company Ubisoft used machine learning to "teach" a program to target and remedy bugs in the development process, estimating that AI-enabled tech was able to catch 70 percent of the bugs before the code had even reached the testing phase. This is the kind of "co-pilot" relationship organizations are investing in, leveraging the power of deep learning and machine learning algorithms to streamline the work of development.
But organizations have no intention of replacing developers because of artificial intelligence and machine learning – quite the opposite, according to Deloitte. "Due to increasing demand for software, employment of software developers is projected to grow 21 percent from 2018 to 2028, much faster than the average for all occupations," the company's report reads. Poor-quality software costs U.S. organizations $319 billion annually, according to the Consortium for IT Software Quality. AI improves quality assurance, making software development more cost-efficient, leaving money on the table organizations can use to hire more full-time developers.
How AI Is Changing Software Development
1. AI Is Changing Software Development Processes
AI Is Automating DevOps
AI-enabled tools make development less repetitive and more efficient. For example, the machine learning application Aroma recommends code as programmers are working by identifying similar code snippets in a repository to identify common options and errors. Facebook's Getafix suggests fixes for bugs, making it easier for developers to overcome deployment roadblocks and speeding up the testing process.
AI Is Creating Better Development Roadmaps
Planning is an integral part of software development. Artificial intelligence tools streamline the creation of software development roadmaps by synthesizing project goals and challenges and listing highly adaptable action items.
AI Is Predicting End User Behavior
Unforeseen user behavior can lead to unexpected updates that require more resources than post-production bug fixes. AI can prevent the need for these updates by using data analytics to predict how users will interact with software based on the ways people utilized previous iterations of an application or similar products. Artificial intelligence also makes it easier for developers to create several use cases for systems so they can tailor software to specific groups of users and their needs.
AI Is Making Strategic Decisions
Intelligent systems can't engineer software on their own because AI and related systems are bound by so many limitations. Machine learning algorithms, for example, are only as good as the Big Data sets we use to train them. However, when data scientists compile a useful data set based on high-performing software, AI systems can answer key questions and make predictions nearly instantaneously – a process that can take analysts hours. Given the right data, AI-enabled decision-making tools can design frameworks, create KPIs and help software engineers figure out which features are must-haves and which won't be beneficial.
2. AI Is Changing the Way Developers Create Software
AI Is Preparing to Manage Compilers
AI-managed code compilers such as Glow are still in the development phases, but such systems will eventually be able to turn code into machine language more quickly than humans can. Software developers already use AI-enabled compilers such as Compiler.ai to guard against errors by generating correctness proofs for executable code.
AI Is Making Testing Easier
Many developers use machine learning to streamline testing. Artificial intelligence programs power testing bots, which simulate human activity, quickly running through the possible uses of products and flagging issues along the way. These bots are faster, more thorough, and more efficient than human testers because they don't get tired. AI-powered testing programs include Testsigma, which can perform continuous testing in Agile and DevOps frameworks, and Eggplant, which creates models of real-world user journeys from which it automatically generates test cases.
AI Is Taking Over Mundane Tasks
Artificial intelligence is nowhere near good enough to automate software engineering end-to-end. In fact, it's barely good enough to operate independently. Putting machine learning and deep learning algorithms to use without the oversight of human judgment is potentially expensive and may even be dangerous. What AI can do in software development is take over debugging, testing and code compilation – time-consuming tasks that take away from software developers' creative output.
Developer Lee Brandt wrote on the Okta Developer Portal that "software today is about creating something from nothing. A blank screen. An open text document with a programming language's file extension, like a painter's blank canvas or a composer's empty page of sheet music." When software engineers spend less time on mundane, repetitive tasks, they'll have more bandwidth to conceptualize the "art" that improves lives, workplaces and sometimes, art itself.
3. AI Is Changing What It Means to Be a Software Developer
Programming was once a skill that signaled significant expertise. Today, many people think of software developers as technicians – functional doers and IT specialists, not creative technology experts who develop and execute a vision.
This is similar to how the perception of photography has changed. In the early 1900s, when cameras were more difficult to come by and had a less friendly UX, people saw photographers as technical experts. Today, anyone can take a beautiful photograph without knowing anything about what goes on behind the lens, and professionals lament the resultant devaluation of photographers' skills. Web design and development followed a similar progression. Having a website once signaled that the site owner had (or could pay for) coding and design skills. Then drag-and-drop website builders hit the scene, and anyone could make a website.
However, keep in mind that skilled technicians did not disappear in either domain. There are still professional photographers well-versed in the ways camera mechanics affect images and talented web designers who self-code beautiful sites and web applications. The best photographers and web developers use new tools – whether digital cameras or open-source libraries – to enhance their output.
Software engineering will follow the same trajectory. As new AI-powered development tools emerge, a handful of professionals will find their skills are no match for automation. Developers who make an effort to understand the applications of artificial intelligence, data science, machine learning, natural language processing and other technologies in software engineering will adapt. That may mean moving from coding roles into roles concerned with planning, technology management, design and oversight.
This is where the value of pursuing higher education comes into play. Enrolling in an AI-focused graduate computer science program is a straightforward way to understand and adapt to this technology as it's coming to fruition. Coursework in SMU Lyle's MSCS-AI degree program covers advanced machine learning and neural networks, natural language processing, internet applications and advanced data mining that improves AI-enabled analysis algorithms. Students gain hands-on, real-world experience in the online program and receive academic and professional guidance from the university's world-class faculty members. They exit the graduate program with an advanced set of interdisciplinary AI skills they wouldn't necessarily gain in an undergraduate degree program in computer science or via work experience.
AI Won't Render Software Developers Obsolete
"Programming is really about having a dream," OpenAI CTO Greg Brockman told Wired magazine. "It's about having this picture of what you want to build, understanding your user, asking yourself, 'How ambitious should we make this thing, or should we get it done by the deadline?'"
Artificial intelligence can't replicate a human brainstorming session, identify the broader limitations of a technology budget or truly understand what makes an application popular. Additionally, AI-powered program automation prototypes like Open AI Codex, DeepCoder and GitHub CoPilot have made it abundantly clear that even when intelligent systems can write code, they still require a good deal of human intervention.
The future of software engineering – what Andrej Karpathy calls Software 2.0 and predicts will be run by neural networks – will involve much less coding (possibly none) but will require software developers (possibly more). Software engineers and developers must ready themselves to meet this next phase head on, much in the same way they prepared for disruptions in the past. Remember that advances in computation and programming tend to increase the demand for software professionals with the right skills.
SMU Lyle's MSCS-AI curriculum includes 100 percent online courses in machine learning in Python, mobile applications for sensing and learning, knowledge-intensive problem-solving, neural networks, advanced data mining and more. You won't have to take time off from your current job to complete coursework and earn a master's in artificial intelligence because this part-time master's degree program is flexible enough to accommodate busy working professionals. This is one of the few intensive yet versatile career-focused AI programs designed to prepare you for the future of artificial intelligence in your industry.
Apply now to be a part of shaping the future.