This is the third post in our series on emergent AI technologies / tools and their impact on learning and job demand for tech professionals such as software developers, data analysts and data scientists, etc. The first two posts reported on a recent survey of how our graduates are using these technologies on the job, see How are software developers using AI tools? and How Should We Integrate AI Tools into Learning?
We’ve all heard the hype about AI technology in the media. Predictions of millions of jobs being eliminated over the next few years by AI, or millions of jobs impacted and changed by AI, have become routine, as have predictions of massive economic benefits being derived from applying LLMs (Large Language Models such as ChatGPT) and generative AI technologies. The hype has been so noisy that it’s difficult to cut through it to figure out what’s real, what’s imminent, and what’s still years or even decades away.
In our corner of the tech world, the hype is even generating questions from potential career changers and applicants as to whether software engineering, data analytics, data science, and/or web development are going to remain good career fields with good job prospects. That’s a subject we’ve been studying for the past few months so that we can understand how AI tech is likely to change the demand for tech talent and reshape the skills needed for entry-level talent to enter such careers. I’ve translated some of what we’ve learned into the list that follows (yes, it’s a listicle! I’m a bit embarrassed to use such a clickbait blog format but it does seem to go with the hype of AI as a topic!).
Here are my top 9 reasons why generative AI technology is not going to reduce or eliminate software engineering and related jobs (I use software engineer or software developer as a generic title below - but data analyst, data scientist, data engineer, web developer could all equally be used). Make sure you get to #9 and learn how AI may actually increase demand for these types of jobs:
Period. No argument. Ask anyone who has used the major LLMs to generate code and they will have examples of this issue. LLMs need human supervision to define in detail the problem that needs to be solved, to review the code generated to make sure that it is correct, and to test the code and review the tests. As one of our graduates said in response to our recent survey on AI tool use “AI is a very useful tool but it still gets things wrong all the time and it can really bite you in the butt if you aren’t paying attention.”
Again, LLMs need careful supervision by individuals that know how to build secure applications - the way to create prompts that drive generating secure code, the review of the code for accuracy and completeness, and the testing of the code to ensure suitability for production use.
LLM-based code generation is driven by a statistical “guess” as to the next character or token in a sequence - there is no overall problem-solving intelligence or methodology. The ability to guess well is a function of the LLM that’s being used, the quality and extent of the training data set, and the specificity of the prompts used by the “developer”. That’s why in some examples, an LLM can generate a quality solution - given the scope of open source code that was available to train something like ChatGPT there is a great deal of guidance available for certain common problems types. For example, the fact that you can generate all of the scaffolding code for a Wordpress plug-in is great, but not surprising because there are thousands of examples of Wordpress plug-ins in the training data set. But scale up the problem in scope and complexity, or focus on building something that hasn’t been done dozens or hundreds of times before, and you immediately have to have an experienced problem-solver (i.e. a software engineer) to break the problem into its constituent parts and describe each of those individual parts, each function or code snippet, to the LLM so it can generate a useful chunk of code.
This relates back to the fact that LLMs have no memory per se of prior project experience, they have no model of problem-solving, design, etc. They lack context and the base of tacit knowledge that a human software engineer or data analyst builds up through experience, mistakes, interpreting bad specifications, etc. Therefore, to generate good, accurate, professional quality, secure applications, the AI tool needs for the problem to be broken down by a software engineer into very, very specific detailed instructions - much more detailed than we are used to providing to human software developers.
The training of LLMs using massive amounts of internet information may yet be ruled to violate open source licenses and other intellectual property rights, making it very risky to integrate code generated by such tools into products being licensed to third parties. This is the type of concern that can slow a new technology from “crossing the chasm” into widespread adoption. It’s the type of issue that causes larger, more conservative organizations to slow roll adoption of new platforms and technologies and contributes to why new technology adoption can take many years to penetrate the conservative/mature “back-side” of markets.
Some companies have banned the use of these tools to generate code intended for production use because of the risks and uncertainties over code quality, security, IP rights, etc. (It’s really difficult to replace jobs with a technology the employer has banned.) This is validated by research published by McKinsey last week that highlighted the top four risks associated with generative AI deployment as: inaccuracy, cybersecurity, intellectual-property infringement, and regulatory compliance. These problems will likely diminish or go away over time as experience is gained, and as lawsuits and/or regulation and/or new legislation clear away some of these uncertainties. But experience and regulation may also place constraints on the use of these technologies. In any event, full adoption of generative AI, even in assistive tools under the control of engineers, will take longer than the current hype cycle suggests.
Essentially everyone predicting the end of coding / programmers has a vested interest in hyping that topic - they invest in AI companies, they are CEOs of AI companies, they are CTOs of AI companies, all of whom are calling attention to what they are doing. These are overwhelmingly the voices in the media talking about the potential and promise of generative AI technology. And to be fair there is a lot of potential in the technology.
On the other hand, the software engineers actually trying to use these tools are pointing out there are problems with using this emergent technology. Here’s just one example from a recent article in Infoworld:
Our engineers have found GitHub Copilot to be a force multiplier, saving them time and increasing their efficiency. However, it's important to note that Copilot isn't foolproof and will frequently generate incorrect code. (The folks at GitHub and OpenAI are fully transparent about this and warn us not to trust the code until a qualified human software engineer has checked it.)
Did I say “incorrect” code? I mean truly random, weird, garbage code that will make you throw up in your mouth if you have any sense of good programming style."
Note - we’re not picking on Github Copilot, in fact, it’s probably our favorite at this point in time. You’ll find this exact complaint about all of these tools.
There is simply not enough experience using these tools to generate code to allow us to know where the “rough spots” or shortcomings or boundaries in this technology are. Those rough spots certainly exist because every new technology, even transformational ones like the internet or relational database technology and many others, has limitations when young and immature.
We already have seen many examples of this. For example, the surprise over LLMs “hallucinating” or “seeing mirages”. And at this point even AI researchers aren’t sure if such hallucinations can be eliminated, see here for example. The most recent example I’ve seen of the discovery of new “rough spots” is the research from just last month indicating that ChatGPT-4’s performance is degrading the longer it has been operating [https://arxiv.org/pdf/2307.09009.pdf].
And here is the most important reason that AI assistive technologies won’t eliminate coding jobs or reduce demand through improved productivity. As AI methods prove to add value in different industries and problem domains, we will see another explosion in new applications that can now be addressed that previously could not be addressed. We will also see next generation solutions to old problems where AI augmentation provides better solutions than prior generation applications. This translates into lots of applications that must be built by software engineers, which drives demand for more software engineers (and data scientists, and data engineers, and data analysts, and cloud engineers, etc.).
For one view of this, see [link: https://tomtunguz.com/why-data-teams-will-grow-ai/]. For a broader take on the key tech trends and their impact on talent demand, McKinsey’s recently published Technology Trends Outlook 2023 says:
We can’t overstate the importance of talent as a key source in developing a competitive edge. A lack of talent is a top issue constraining growth. There’s a wide gap between the demand for people with the skills needed to capture value from the tech trends and available talent: our survey of 3.5 million job postings in these tech trends found that many of the skills in greatest demand have less than half as many qualified practitioners per posting as the global average. … Applied AI and next-generation software development together posted nearly one million jobs between 2018 and 2022. Next-generation software development saw the most significant growth in number of jobs. …
This bright outlook for practitioners in most fields highlights the challenge facing employers who are struggling to find enough talent to keep up with their demands. The shortage of qualified talent has been a persistent limiting factor in the growth of many high-tech fields, including AI…"
Here’s what the U.S. Dept. of Labor Statistics has to say in its most recent projections of job demand for software developers, which looks out as far as 2031.
Overall employment of software developers, quality assurance analysts, and testers is projected to grow 25 percent from 2021 to 2031, much faster than the average for all occupations. … Increased demand for software developers, software quality assurance analysts, and testers will stem from the continued expansion of software development for artificial intelligence (AI), Internet of Things (IoT), robotics, and other automation applications."
This pattern has happened with every new transformational computing technology or platform. The best recent example is probably the internet. In the first half of the 1990s, did we all believe that Blockbuster was in imminent risk of being eradicated by video streaming? Did we see that e-commerce was going to totally transform the retail industry? Did we expect the music industry or the newspaper and media industries to be ravaged by the internet? And did we expect the numbers of software engineers to sky rocket and for whole new tech job categories (DevOps anyone?) to be invented to help service this explosion in new applications? Well, if the promise of generative AI lives up to the hype, it certainly appears that it’s going to happen again - and that’s good news for talented people in, and wanting to get into, the tech workforce.
It’s certainly possible to disagree with some of my points above, and it’s certainly possible to argue over how fast generative AI technology will evolve and solve or mitigate some of these issues. I’m biased on this subject in my own way. I definitely feel like I’ve seen this movie before. Back in the 1980s the then-current hot AI technology (Expert systems or rule-based systems) was touted as being, among other things, capable of automating code generation. In fact, at my first start-up I led a project to build a computer-aided software engineering product that would use an expert system for code generation. Well, long story short, that generation of AI tech was not ready for prime time, at least not in replacing software engineers.
Nonetheless, whether it is ready to eliminate tech jobs or not, it is very clear that generative AI technology is going to reshape the work of software engineers, data analysts, and other tech professionals - we are all going to be working with AI-powered “sidekicks” that will help take the repetitive and mundane tasks that are part of every tech job off our plates. This will improve our productivity and probably the quality of our work. It will also allow us to focus more on the higher level, creative aspects of problem-solving, which is the work that attracted many of us to the profession in the first place and the work that delivers the most value and satisfaction. And that sounds like a good thing. Just don’t expect it to happen overnight.