
Avoiding the AI Scrap Heap
Photo by Benhur Emmanuel
Is AI going to replace the programmer in 2027?
As is the case in many scenarios, this depends and it depends primarily on how we perceive role of a programmer in 2027.
It is fair, I believe, to say that what we understand as a programmer prior to 2023 has changed irrecoverably. When a software engineer is AI literate, uses AI in daily working patterns, and are also something of a:
senior and over see code reviews and pull requests
scrum master that is capable of understanding code
systems or application architect that creates working prototypes
a former operations person turned automation engineer that is already a platform engineer or on the way to being one
our jobs are not likely going anywhere right now.
However, if, the programmer is not AI literate and is:
a ticket fixer and never responsible for anything greater than minor feature requests
a tester that takes simple features and manually tests each one, recording results in a spreadsheet
someone at the level of junior or associate dependent on a senior to mentor them to code
a developer that rejects AI as a tool to generate code, preferring the craft of physically writing syntax, over that of problem solving
Then it could be time to up skill, as AI is already competent at repetitive tasks, even though those tasks are complicated. AI Agents can, when engineered to do so, replace even these roles.
Can AI replace Senior Programmers?
My gut, says no. Even with the latest frontier models, a human is often found at the helm of at least a prompt or two where real outcomes hit the headlines. And this of course depends on how we describe that role.
So my answer could, to me, be a certain yes, if the 'job' of a programmer is defined as one that is not AI literate and as described above. AI is more than capable right now to simulate the workflows of simple spec / feature scenarios.
Where AI still fails, I believe is in judgement of one PR over another. It fails when it comes to the application of the KISS principle and where something needs to be minimal and viable. It is very bad at being pragmatic, unless strongly prompted to the contrary.
Human in the loop seems to me to be the only way to be sure that lines of code do not escalate out of control and over engineered solutions become the default.
Perhaps, it could be said, before AI were trained, many organisation already over engineered their solutions. These became documented that this became the training data that has become the LLMs of today. Could we have only ourselves to blame for the way LLMs behave toward problems that we give them to solve today?
Do we need AGI to bring about disasters?
AI is being hyped as a potential cause of an event that leads to human extinction. I grew up in the 60s and 70s under the axe of mutually assured destruction (MAD) and the world possibly ending at any minute. There have always been extinction events that are entirely of human origin since the turn of the last century.
It is not necessary, I believe, to have to reach 'super intelligence' in for this happen now. If you have not seen the 1980 film War Games perhaps now could be a good a time to watch it. The scary computer that nearly starts a thermonuclear war in this story is primitive if it were to be compared to chatGPT of 2023. We don't need full on AGI to bring the end of all life as we know it. AI of today when given the ability to access to the launch codes could be quite sufficiently bad already.
What would AI need to replace humans ?
It needs to be intelligent in the way we understand humans to be now. We can debate the nature of intelligence and find that there is no agreeable definition. But common sense dictates that a reasoning person can make value based decisions that lead to a well designed outcome. This process is based on a mixture of intuition and experience that is influenced by learning and knowledge. Aspects of each can be simulated by AI but they cannot, at present, be replaced entirely.
AGI seems always to be between 6 months and 50 years from now.
If the writings of Gil Duran are anything to go by, where he speaks of predictions of a human ascendance to immortal synthetic super beings, we have a problem. This dystopian vision thankfully still remains a distant unrealised dream. Even now, we have little idea how the human mind and intelligence actually works and in a way that could be implemented in software.
Do we wait on AGI?
The mistake we could be making is to ignore the the now and see that many of the risks that are being predicted regarding threats to humanity are already present and have been mostly for decades.
Waiting for some kind of quantum event will be too late for the event to have taken place already.
There is enough AI right now to do significant damage to our way of life. Many people are being affected by AI in a detrimental way in as much as other factors such as global warning and climate change.
What can a programmer do to remain relevant?
Unless we are members of the senate in the US, it is unlikely that anything we as individuals can do much about existential threats to humanity. It could be debated that even those senators and the ones above them could do much either, but that is another debate, another article, another podcast of which there are already plenty.
As individuals we need to adapt and prepare for change. If you've been working in technology for 20 or more years, you cannot have survived if you were not capable of adapting to change.
Back in the 1950 s Kathleen Booth and a team researchers demonstrated a working prototype of what became know as an assembly language (ASM)
Up till this point, then programmers entered hex codes into computers to program them. Assemblers were seen by some as the end of programming as they knew it.
Failure to embrace change to the tooling of our trades is certain to lead to our roles, if tied only to the tooling that we currently are proficient in, to be redundant.
The enemy of change and to our ability to deal with it is over specialism. We need to specialise in something if we are to succeed often, but the over specialisation brought about by a philosophy of ford like division of labour will lead to individuals becoming expendable in their roles. This could be seen as a bi-product of division of labour or it could be seen as a desired outcome by an acquisitive selfish venture capitalist.
The role of the programmer cannot any longer be pigeon holed into a cubical dwelling code jobber that receives tickets and kicks out features at the end of each working day.
I saw the end of non programmer operations roles in any real sense and the rise of devops taking over that of ops in most workplaces.
Similar is happening in the world of software development, where it has been limited to software authoring and nothing to do with its delivery.
We need to be able to work across more than one discipline and often, well out of our comfort zones if we are to remain relevant in programming post AI
Once, the term 'full stack' suggested the ability to write some JavaScript and React for the front end and also a bit of server side rendering on the server using perhaps react components or just express js. Perhaps I am being a little harsh but I hope you get to my meaning.
We all need to become 'full stack' if we are to survive AI and remain relevant.
We still need to know how to code, we still need to understand best practice. But we also need to work outside of the cubicle where only features are built. We need to appreciate how systems are built as a whole, how they are managed into production and how they are manged as ongoing services.
Service management has often in my experience been forgotten by sales driven product development. Focusing on only short term ROI is a common human failing.
If we truly adopt the agile manifesto, we would have already adopted many if not all of these ideals. Yet we have not. Business units have taken over self deterministic units that do not answer to them.
AI threatens roles limited in scope from being in existence but it also offers opportunities. If we use AIs as a means to become multi-skilled, we can continue to have our own specialist knowledge but to augment this with an expanding working knowledge of other disciplines.
Our unique selling points as human beings with real, human intelligence, is to be able to make rational, human design choices that have better outcomes.
We become code managers, not code writers but without losing the knowledge of what code is and how it works.