The past few years have been an interesting time in the software developer zeitgeist. Each period carrying its own set of talking points and controversies, which are almost completely forgotten in the next.
In 2026, we find ourselves immersed in the tools and talking points of artificial intelligence. Tools such as Claude Code and GitHub Copilot have introduced new ways of thinking about how software is conceptualised, delivered, and maintained over time. People who have never learnt to code are delivering applications which many can use, with a few conversational prompts to the machine. Data centres in the USA, Asia and Europe are proposed to be the engines that power creators in South America and Africa.
A few years ago, Blockchain and decentralised ledgers had us re-imagining how we reliably stored and retrieved our data, with use cases ranging from medical record management to overhauling the financial infrastructure of sovereign states to use these digital currencies. We bought JPEGs for millions worth of fiat currency and traded them as stores of value. New architectures were proposed under the umbrella term Web 3.0, looking to redefine how we build our most critical of applications.
Before that, with the rising popularity of public cloud providers such as AWS and Microsoft Azure, microservices and serverless were the way we were to architect our applications. With functions running in public clouds in locations around the world, and messaging technology orchestrating business processes across these cloud functions, we broke up our dastardly monoliths into thousands of tiny little services distributed around the world to serve our customers. New roles and certifications enabled an environment for practitioners to use these public cloud providers in the best way possible, adapting organisational architecture to become “Cloud Native”.
A few steps further in time, with the increase in processing power within the browser environment (both on the mobile phone and the desktop), and the introduction of AJAX which made web pages dynamic, the JavaScript framework and library wars were taking place. From earlier libraries such as BackboneJS and KnockoutJS, to later frameworks such as AngularJS and React, there was a proliferation of new ways to create rich client experiences on the web. Software developers started defining themselves by their preferred technology stack, with 4 letter acronyms lining CVs hoping to align to 4 letter acronyms on job postings.
Moonwalking further back in time was the software craftsmanship movement, with Kent Beck’s Extreme Programming and other notable public figures such as Uncle Bob promoting practices such as Test Driven Development; others promoting practices such as continuous integration and continuous delivery; and organisations changing their career tracks to terms borrowed from medieval Europe and their guild societies such as journeyman, and expert craftsman. Training programs, seminars and conferences helped as become Agile Software Developers.
One more step back in future and it was the time of the Enterprise, where large companies provided tools which had been branded Enterprise tools, such as the Enterprise Service Bus, and large servers such as WebSphere and IIS, specifically made to handle the needs and challenges of large corporates (with sufficient budgets).
And I’ve experienced all of these in my just over 15 years of professional software development. Those who have been doing this for longer have experienced even more! But what is concerning is that each new trend and practice promises a radical departure from the past. A new way to do things. The future of software development! Until it becomes the past.
One feature of the software development practice over time is that it lacks maturity as an industry. Every 5 years or so, there is a new hype trend, leaving software practitioners acting like children, tossed to and fro by the waves and carried about by every wind of cunning flashy influencer’s sales pitch. The average collective knowledge is not cumulative, built on top of the lessons that have gone before us. The average person promoting lambdas and step functions isn’t promoting it by building on top of the decades of knowledge of asynchronous processing.
Modern software development has no established apprenticeship patterns, where the decades of experience can inform the understanding of new entrants, assuring that a base level is assumed for building mission critical applications, as it’s assumed in other industries. Traditional institutions such as universities teach those who attend (which are the minority of software practitioners), but don’t play a role in objectively informing the continuing practices of industry, leaving the job to consultancies with misaligned incentives.
In addition to that, there is no self-regulation or regulatory body that keeps standards and practices in check. Everything from cars to health monitors to banking systems are heavily dependent on software, yet those who are building these mission critical applications are accountable to nobody. There is no software development body proposing necessary controls and practices, leaving such specification to financial accountants. And yet, many practitioners around the world are so eager to call themselves “engineers” without the societal and governance infrastructure that affords the title.
Personally, this both makes me sad as software has been a part of my life for as long as I can remember. But at the same time gives me a big hairy audacious goal worth to strive for in my career.
In 1992, the year I was turning 5, my family got our first computer at home. Before I could read proficiently, I was comfortable on the command line in DOS. Around that time, hearing about Microsoft, becoming a software developer was my dream, and Bill Gates my hero. The first time I remember getting grounded as a punishment was in 1996, the year I turned 9, when my best friend Bradley and I ran the various diagnostic tools on the computer such as ScanDisk and Disk Defrag, but somehow managed to prevent the computer from booting in the process. In 1997, the year I turned 10, we got a new computer at home and I got the old one. I spent my pocket money buying new RAM, sound cards and games. I bought PC Format magazines, as every edition came with demo games one could play. In High School, through a random series of events, I learnt ActionScript and started making Flash applications. Eventually, that gave me first job where I developed an application for a rural health centre at the age of 16. In my final year of school, I applied to 3 universities for courses all software related.
Since graduation, I’ve also generally had a good career. I’ve worked on data warehouses, mobile applications, web applications, server side applications, and infrastructure in places around Africa – Johannesburg, Cape Town, Dar es Salaam and Nairobi. I’ve delivered products of national impact and seen billboards advertising work I’ve done. Yet, as the old adage goes, to whom much has been given, much is expected.
Channels such as CultRepo on YouTube have done amazing work documenting how the different technologies we use every day came to be. The videos start off each sub-chapter with aerial views of major world cities from which many of the leading figures that built the technological infrastructure the world runs on come from. Yet sadly, not one of those cities is in Africa.
Subreddits from different African cities show that the best career path that can be followed for a software practitioner is to work remotely for a European or American company. And so our best talent is continuing to build the infrastructure and glory of Western industry, whereas there are so many more interesting things that can be done around them, but there isn’t an enabling environment to do so.
Which leads to a big hairy audacious career goal – the maturity of local software development praxis, which can in-turn influence the maturity of software praxis around the world. Such a goal would require one to be both intimately involved in software development practice in industry, as well as the setting to step outside of it, to see it from the outside through structures such as academia, to be part of charting its way forward.