Dear developers, thank you for Github Copilot. Also, you’re fired.

Photo by hao qin on Unsplash

Software developers are a peculiar breed. Since the dawn of the career, building tools to make their work easier has been central to their job. Among these tools are “automations”, code that keeps a developer from needing to do the same monotonous task over and over again. It’s the constant task of a developer to try to automate away all of their current work efforts so that they can take on more tomorrow. But that’s also the reason people say devs are always trying to put themselves out of a job. With the emergence of GitHub Copilot, they might soon be right.

For those of you who are unfamiliar with the latest trends in AI, tools like GPT-3, DALL-E 2, Google Imagen and more are taking over in force. Using natural language processing (which I talk about in this post), AI can accept a command in pain-English, and respond intelligently to what you asked. This can be used for all kinds of things, from simple Q&A about a topic that interests you, to the programmatic generation of beautiful artwork, or — in the case of GitHub Copilot — code. Yes, you can state “I want code that does X, Y, and Z” in plain-English, and GitHub Copilot offers not just one but many solutions. Just pick your favorite.

Now, a lot of people are saying that GitHub Copilot is limited — that it misses certain context, it gets things wrong, it can’t think architecturally for you. Their takeaway is that we still need our teams of software developers. And sure, that’s approximately true today. But I would be loath to imagine there exists anyone who sees this technology, understands exactly what it is and how it got here, without being able to see where it’s headed tomorrow. Unbounded growth is the nature of AI. Exponential growth is the nature of AI. Don’t just look at where we are, think of where we will be just a few months or years down the line.

So at what point would managers be ready to fire their dev teams? It’s not that difficult to conceive. End users, and the business-facing folks that have to put up with them, care about one thing and one thing only: does the product do what they want? Hmm. Let’s break that down. End users and managers are more than competent enough to declare “I want code that does X, Y, and Z” in plain-English. Where have we heard that before… This is the pinnacle of declarative programming — a concept that has existed for a long time, but only recently to this extreme. It’s a style of programming where you state what you want, and a lot (or all) of the implementation details are abstracted away from you. These are just taken care of. And for better or worse, now basically anyone with the right AI companion can do it.

Now I am not saying that engineers, dev teams, software security experts and the like that deeply understand the architecture of a product will never be helpful or necessary again — humans who know what the heck code is doing will be helpful for large, stable products for some time longer. That being said, many if not most products are not well-architected. Small to mid-sized teams will probably be better architected and more secure having AI write their code as opposed to letting a too-small team of underpaid overworked devs do a job they’re ill-equipped to handle. And at least in the States, many of us live in a fiercely competitive market where “it’s better to be first than better”, as they say.

We could have a nice long talk about the socioeconomic impact of blue- and white-collar career automation, though I think I’ll save that for another day. For now, I’ll leave you with this question: if you had a custom software application of your very own, what would it do? Tell me X, Y, and Z.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store