Jon Dodkins

Head of Technical Solutions

Jon Dodkins is Head of Technical Solutions. With over two decades experience in tech, with recent work focusing on platform strategy, cloud, developer experience and DevOps, Jon has a track record of scaling software, teams, and organisations.


The history of software engineering is a tale of paradox; simultaneously moving toward greater simplicity while entrenching in deeper complexity. Every major advancement, from increasingly higher-level programming languages – to the commoditisation of infrastructure with public cloud, and the ubiquity of ever-sophisticated tooling, has all promised to make building good software easier. And yet, complexity hasn’t disappeared; it has merely evolved in lockstep.

The latest chapter in this story is the rise of AI across the tech landscape. Undoubtedly, AI is already enhancing productivity, accelerating development, and, in some cases, improving quality. But despite the hype-train pushing ever onwards, AI will not eliminate the need for experienced software craftspeople. Human expertise, collaboration, and judgment will remain essential to building great software.

The illusion of simplicity

Technological advances are often marketed as simplifiers of engineering. Higher-level programming languages abstracted further and further away from machine code, yet software didn’t become simple exactly – it became more powerful. Cloud computing relieved engineers from maintaining bare metal, yet software architectures inevitably grew more distributed, demanding more advanced expertise in networking, security, observability, and cost management.

Now, AI is being heralded as the next great simplifier. Tools like GitHub Copilot and ChatGPT can generate code, suggest fixes, and even refactor entire functions. But if history has taught us anything, it’s that automation shifts and reconfigures challenges, rather than eliminating them. AI may enhance productivity, but the underlying system complexity remains, often in new and less understood ways.

In an age where viral ideas spread rapidly, executives and industry leaders may be swept up in AI enthusiasm. However, we must approach AI’s role in software engineering with both ambition and realism.

AI as a multiplier

AI is set to transform software engineering by amplifying a software engineers’ capabilities, not replacing them. It acts as a force multiplier – enhancing skills, both good and bad, depending on who wields it:

  • Faster, but not frictionless – AI-generated code still requires human review, debugging, and contextual decision-making.
  • More productive, but more collaborative – The best software emerges from diverse teams, where creativity, ethics, and problem-solving are navigated together, not automated away.
  • More output, but new work that cannot be skipped – While AI can toil work, it introduces new risks around security, explainability, and bias, which engineers must learn to navigate effectively.

As Fred Brooks famously stated in The Mythical Man-Month, “No Silver Bullet” can eliminate software complexity. AI is no exception – it accelerates, but it does not bypass fundamental engineering challenges.

AI pitfalls in the real-world

While AI has shown great promise, there are already examples of AI-generated code leading to poor outcomes in software development. These highlight the risks of relying too heavily on automation without human oversight:

  • GitHub Copilot and Security Vulnerabilities – Research has shown that GitHub Copilot can generate insecure code, inadvertently introducing vulnerabilities such as improper input validation and weak encryption. A study titled “Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions” found that AI-assisted coding can create serious security risks if left unchecked (source).
  • AI-Generated UI Failing Accessibility Standards – AI-driven front-end design has produced software that overlooks accessibility. For instance, AI-generated code may not follow proper semantic HTML structures, leading to usability issues for visually impaired users. Poor colour contrast and missing ARIA roles (content to support screen readers) can make interfaces difficult to navigate, illustrating how AI often lacks the nuanced understanding necessary for inclusive design (source).
  • AI-Caused System Outages – Some companies have deployed AI-generated code directly into production, only to suffer downtime and performance issues. In cases where AI-generated logic introduced unexpected bugs, these disruptions have had significant business consequences. This emphasises the need for rigorous human-led testing before AI-written code is pushed live (source).
User profile image

Despite the hype-train pushing ever onwards, AI will not eliminate the need for experienced software craftspeople. Human expertise, collaboration, and judgment will remain essential to building great software.

User profile image

Jon Dodkins

Head of Technical Solutions

The human factor in quality software

High-quality software isn’t just about writing code – it’s about understanding real problems, serving real users, and delivering real business value. Context remains elusive even for humans, and real-world experience and judgement is still the greatest superpower in software development.

AI’s assistance will be necessary to keep up – don’t get me wrong; but experienced professionals will continue to play a critical role in:

  • Understanding and empathising with users – Product managers, designers, and developers must deeply grasp customer needs. AI may suggest solutions, but humans decide what truly matters.
  • Knowing when to stop engineering and start learning – Product discovery, experimentation, and iterative learning remain human judgment calls. AI won’t replace the need to balance shipping imperfect but valuable software.
  • Designing intuitive and accessible experiences – Great UI/UX requires human intuition and empathy. AI can generate UI components, but it lacks the nuanced understanding of accessibility, usability, and human behaviour.
  • Balancing trade-offs – Engineering is about making decisions between speed, scalability, security, cost, and user experience. AI can provide insights but cannot replace human expertise in weighing these factors.

It’s worth nothing that AI could play a positive role in these spaces too, supporting those with certain neurodivergence, or indeed helping developers who are colour blind manage UI design; rather than replacing the human, AI serves as complementary tooling.

Power-assisted steering, not autopilot

Rather than eliminating engineering roles, AI is reshaping them. The best teams will be those that leverage AI effectively while retaining strong human expertise. The rise of AI-augmented engineering means AI will handle repetitive tasks, suggest improvements, and enable engineers to move faster – without replacing them.

Software complexity will always remain and continue to rise under the hood, but our ability to manage it is evolving. The smartest companies will recognize that AI is an accelerator, not a human-replacement strategy. The best software will continue to come from experienced teams leveraging AI as a force multiplier.

Headforwards is full of humans with proven expertise of crafting quality software. If you’d like to find out how we can help, get in touch.

Headforwards™ is a Registered Trade Mark of Headforwards Solutions Ltd.
Registered Address: FibreHub, Trevenson Lane, Pool, Redruth, Cornwall, TR15 3GF, UK
Registered in England and Wales: 07576641 | VAT Registration Number: GB111315770