Like many people, I’ve been thinking quite a lot about the impact of AI on the software development industry. Based on the current state of the Copilot technologies from GitHub and Microsoft in Visual Studio Code and Visual Studio (and increasingly in other tools), here’s one of my concerns: there will soon be a “programmer gap”.
In my experience over decades, most people have become “developers” by spending time as a “programmer” after somehow acquiring sufficient programming skills to get hired as a programmer.
My distinction between “programmer” and “developer” is that a programmer is someone who takes detailed requirements and programs software based on those requirements. A developer is someone who has the technical, business, and communication skills necessary to develop the requirements and to also program against them. You might use different terms, and that’s fine.
My career path, for example, is that I got a B.S. degree in Computer Science and then got a job as a programmer. I spent some time as a programmer, during which I learned a lot of skills beyond programming that ultimately allowed me to become a developer. In my case I’d say that time period was about 3-5 years.
(not that I stopped learning or improving at that point - it is just that I stopped “only programming” and started doing a lot more business-technology intersection type work)
So here’s my concern with AI, especially what we’re currently calling a Copilot: I’m finding that the Copilot technology does most of what I’d need a programmer to do by boosting the productivity of a developer (or more senior) by a substantial margin.
Why build a team composed of a development lead, 1-2 developers and a group of programmers, when these tools effectively eliminate the need for the programmers by boosting the productivity of those more senior folks?
The Copilot technologies aren’t solving the process of translating business requirements into technology. But they are doing large amounts of the programming. Rather than having a senior developer or developer write pseudo-code and some requirements, why not just have those developers leverage Copilot to build the code itself and just be done with it?
This capability seems incredibly positive, especially for those folks who’ve already got a few years of experience in their career, because their value is literally multiplied by Copilot, allowing them to not only do the inter-sectional business/technology work with the skills they’ve acquired, but to also create all the software and related devops assets without the need of other programmers on the team.
What I see though, is that if this becomes the norm, our industry will rapidly run into a problem, because today the path to become a developer is to slog through a few years of being a programmer. Not purely to get technical skills, but to get the inter-personal and business skills needed to be an effective developer.
So the problem I’ve been considering is this: how do we build the next generation of developers if the programmer path is closed due to automation. Is it too expensive to hire a programmer when a developer plus AI can do all that work?
In about five years from now, where will we get that new crop of developers that have the technical programming experience plus that hard-earned business and communication skill?
To put it another way, for folks that are entering the software field over the next few years, and may find it hard to compete with Copilot AIs, what are they going to do? Leave the industry? Find a new path to build the skills and experience necessary to become a developer?
I don’t have the answer to this question, and maybe I’m misreading the impact of Copilot AI, but the more I use Copilot in my own work, the more I’m convinced that being “just a programmer” is a place I surely wouldn’t want to be in my career right now!