During the summer of 2018, as is common in the military, I was assigned a new role that required rapid skill development to be done by last Friday. As is not so common in the military, that skill was coding; and I was instantly hooked.
Work wasn't "work" anymore: it was adventure; it was exploration; it was discovery. I fondly remember the penny-drop moment when I wrote some code that looped and printed a statement ten-thousand times in an instant! The potential was exhilarating.
The Advent of AI in Coding
There were two significant moments when I realised change was on the doorstep:
A demo in 2022 of an early version of Github Copilot. You typed what you wanted the code to do and then watched as it magically generated before your eyes. I remember thinking that we had automated away the fun part of coding. Ironically, I have grown to love Github Copilot and often use it as an autocomplete for my thought process đ€« But it does still fall over with new features of languages/frameworksâAI is only as up-to-date as its training data.
The first time I held a technical conversation with ChatGPT and the weight of what that meant. It helped me understand a new concept I was grappling with. I was able to validate my comprehension (or lack thereof) by repeating the concept back in my own words and having ChatGPT confirm or correct my understanding.
Contemplating the "Near" Future
This all leads to the question on my mind: if Artificial Intelligence can be so good at technical creation in this early stage, will it eventually inherit my job of actually writing code?
I don't actually know the answer to this. I'm not sure anyone does...yet. If the past has taught us anything it's that the future is hard to predict. But I think it's important to contemplate potential outcomes.
In the next few years, Artificial Intelligence could take on a role comparable to an aircraft's autopilot system: it'll do most of the heavy lifting but won't be trusted to do it unconditionally. Pilots in aircraft often do very little actual flying. They usually control take-off and landing. Then for the rest of the flight they monitor, make adjustments if required andâmost importantlyâare fully trained to take control in case of emergencies.
A day in my future dev-life might look like this:
- Tell AI to generate feature X to solve problem Y
- Look over generated codeâand its related unit tests, of courseâto verify it works as intended. If not, adjust and repeat step 1 â ïž potential infinite loop for a stubborn mind â ïž
- If all is well, merge code into codebase
- If all is not well, oil programming hinges and put fingers to keyboard like I did in the good old days. Maybe ask ChatGPT to help...ahem
The human will have moved from a person who creates, to a person who guides: mastering the art of leveraging AI to generate vast quantities of code that integrates into the existing codebase. Teams could end up moving at a pace we can only dream of currently.
More Than Just a Coder
However, itâs so easy to get caught up in what AI can do that I sometimes canât see the forest for the trees. The best coders write very little code. Some of the most important skills a developer can have are uniquely human.
For a lot of companies, the developers have to engage with end-users, elicit their problems, empathise with their situations and discover creative, bespoke solutions to their needs. There are times when customers donât fully know what they need, and it requires discernment to separate the wheat from the chaff.
Developers communicate complex technical concepts and their business value to non-technical stakeholders; this may serve as the critical determining factor for the allocation of funds.
Consider solutions and implementations that are the result of two humans chatting casually about what theyâre doingâthe old âwatercooler effectâ. These situations are founded on the coming together of two different beings, often with drastically different outlooks on life. My music-teacher wife often provides a perspective on a problem that I hadnât even considered.
What about leadership? Mentoring junior developers and onboarding new members of a team are obvious examples of leadership. But the developer who consistently includes general refactorings into their workload understands the value of quiet leadershipâthe kind that might get overlooked. They do it anyway because technical debt can strangle a project.
The role of a developer is rooted in technical skills, but it's the soft skills that bolster a team and keep business goals and technology aligned. AI is currently great at the former, but not so much the latter.
Ethical Considerations and Innovation
But what about further into the future? When AI can be creative intentionally, instead of on the back of hallucinations. When it can generate production-ready code consistently and communicate clearly to stakeholders. Could devs be out of a job?
These game developers are already pushing the limits of what AI can do. And my gut tells me that some companies will push it to the extreme. If there is a buck to be made someone will want to be the first to prove it. Let's look at some possible consequences if this happened across the industry.
Programming languages have "Core Devs": teams of people who maintain, update and improve the programming languages themselves. Their most important job is implementing security patches. They also fix bugs, improve usability etc. If AI inherits developer jobs, maybe it will inherit the job of a core dev too. Being responsible for the very code that it generates. Can AI be held responsible?
Maybe AI will do away with the need for programming languages and default to writing machine code. Arguably, all languages are designed to be human-readable and add overhead as a result. If a human doesn't need to read it, then why bother? You'll get more efficient code.
I hope this never happensâno matter the autonomy given to a system, we should always be able to verify what it's doing and why.
How will innovation fare? Innovation is usually driven by determined people who are convinced they know how and why something needs to change. They often face large amounts of push back until the world either accepts the inevitable or gets onboard with the idea. Could AI innovations be as impactful as the lightbulb, the telephone or the internet?
Maybe human innovation will flourish! There might be a world ahead of us where AI takes on so much of the mundane that humans are freed from the repetitive and empowered to innovate full-time. My job as a dev would be one of AI-empowered innovation.
The future is a mystery. Questions abound more than answers. This may always be the case. How AI will change my role as a software developer is up for debate. I hope the changes feel like improvements to those it affects.
Either way, I'm excited to see what happens.
Top comments (0)