Tales from the pit: AI and the software engineer
- Reference: 1763126115
- News link: https://www.theregister.co.uk/2025/11/14/ai_and_the_software_engineer/
- Source link:
Over the past few years, I've seen firsthand how AI is starting to change working practices. It's not a sweeping transformation, nor is it irrelevant hype – it is something more nuanced.
'Vibe coding' named Word of the Year. Developers everywhere faceplant [1]READ MORE
For some engineers, AI is quietly becoming part of the everyday engineering toolkit, showing up in code assistants, test generation tools, infrastructure management, and even project planning. In my own work, and in conversations with other engineers, I've noticed a shift. But is this for the better or for the worse?
As an experienced software engineer (I've recently crossed the half century in years), I was asked about my own experiences of using AI. Like many of you, it is beginning to make an impact in daily work and my approach to tasks.
A brief background. At university I studied chemistry and physics. After a brief stint working as a chemist, I moved into programming. Mostly I've programmed on Windows using languages such as Visual Basic, Delphi, C/C++, and C#. I occasionally dabble with Python, and in my spare time, I play music and boardgames.
[2]
Back in the '90s when I started as a software engineer, search engines capable of finding information easily were not available. Generally, engineers learnt their skills from traditional sources. These included in-person training courses, books, technical newsgroups (remember them?), talking to other engineers, and (perhaps most importantly) from whatever code you happen to work on. Since I did not study "computer science" at uni (until later, when I went back to do my masters), I was constantly exposed to new ideas, data structures and languages, new problems and fresh ways of tackling them. One memorable moment came when an experienced engineer told me about a circular list, a data structure with a fixed list, where the insertion point into the list moves in a loop - when the insertion point reaches the end of the list, you cycle back to 0. Simple, yes, but also not something you might be exposed to every day.
[3]
[4]
In terms of programming and AI, I should say upfront that I am a light user. Mostly, I rely on experience, muscle-memory and traditional search. I lean heavily on the patterns of solid, clean and defensive code, built up through years of trial and error. My aim is code that will be easy for others to read and maintain years into the future. While not exactly an AI-sceptic, I do find that the variable, incomplete results served up by AI are, on average, not time savers.
Coders paired with bot buddies work fast, but take too many shortcuts [5]READ MORE
Naturally, I make occasional use of AI tools (primarily CoPilot). The quality of results on simple, direct questions is generally very good. And the conversational style of summarizing both technical and non-technical subjects means AI tools often give better answers than a traditional search engine. These are two areas where AI shines. Occasionally, though, the suggested code is crude or just plain wrong - even the most ardent AI enthusiast would surely agree that the time is not right to remove humans from the loop.
Enthusiasts generally pigeonhole developers into one of three categories in terms of AI usage:
Group 1: Use AI lightly or not at all (the implication being this group is missing out on a game-changing revolution akin to the internet in the '90s; enthusiasts assume this group will disappear into irrelevancy through replacement and retirement; for fun, we'll call this group "The Luddites.")
Group 2: Use AI just the right amount (the implication being that this group, to whom the enthusiast naturally belongs, is sophisticated and productive - they review AI output "to ensure high quality" while "scaling productivity"; let's call this group "The Blessed").
Group 3: Use AI too much or blindly (the implication here being this group are lazy, or creating a maintenance and security minefield for the sake of speed; let's call them "The Maniacs").
Assuming those categories are approximately right, as a light user of AI I guess I fit somewhere between group 1 and 2.
Even so, my scepticism relates to other issues:
Modern IDEs come with AI tools baked in. There is no escape from their Sauron-like gaze. If AI offers up mostly reasonable, generic solutions, will new developers "crack their heads" on hard problems and learn to craft solid, efficient and creative solutions? Even if the answer is not quite "No," it's a concern.
AI tools invariably provide answers confidently and assertively. Even on poor or incomplete answers, little room is left for doubt! Anyone with a little "life under their belt" will know that even the best laid plans sometimes fail, that life is never that certain. Perhaps it's just me, but the cheerful assertiveness of AI tools is irritating ... and worrying.
For years, power has been accumulating in a few, mostly American, companies like Microsoft and Google. We've all been guilty of giving up our data, and increasingly our freedom itself, for "free" tools such as gmail. AI companies, by sucking up and ingesting a sizable chunk of the combined total output of human creativity have ridden roughshod over privacy and copyright. If the hyped promises of the AI companies are true, we may already be too late to control our own future and retain independence from the tech behemoths. Recent changes to how [6]Microsoft is closing "loopholes" that allow users to [7]create local accounts on Windows 11, and the ubiquity of forced, no choice, updates, are two concerning trends.
Ex-CISA head thinks AI might fix code so fast we won't need security teams [8]READ MORE
Perhaps after reading that, the enthusiasts out there will put me firmly back into group 1, where I belong.
For some color, here are some of my recent personal experiences with AI:
A company I have worked for manufactures automation machines for factories. Its main product, and much of its codebase, has been around for several years and targets Windows. Naturally it has been modernized over time as hardware, operating systems and development tools have changed. The main application uses Delphi for the front-end, with hardware and peripheral control in C/C++.
[9]
Its application is single-purpose - users should not leave the environment provided by the software. We needed a way to display PDF user manuals. Many options suggest themselves, such as hosting a simple PDF reader (perhaps written in C# using a component like WebBrowser), using the system web browser with its built-in PDF support (perhaps Microsoft Edge), or relying on whatever application happened to be associated with PDFs (from the Windows registry).
So I asked CoPilot how to read the application associated with PDFs from the registry "in Delphi." CoPilot confidently suggested looking at " HKCU\Software\Classes\.pdf " only. Although the code did not compile in my version of Delphi, the actual problem was that details were missing. I finally found a StackOverflow question (see [10]here ) that covered more of the subtleties.
Software CEO tells Catholic uni panel AI won't take out jobs, but it could take out brains [11]READ MORE
For those interested, one issue is the associated application can be overwritten by "user preference," such as "Open with" overrides in Windows Explorer.
The AI gave no hint at these wrinkles. It was the same in C# (which is more commonly used than Delphi).
Some will shrug - this is, after all, why humans should review and test the AI suggestions. But it does at least show the limitations of blindly following the AI. Had I relied on its confident initial answer, a quick test might not have uncovered the subtle problems. The code might easily have been released and then made it into factories where it is hard to update (machines are rarely connected to the internet).
[12]
A more positive example was my question on how to suppress warnings when loading a URI in the C# WebBrowser component. The AI pointed out the "ScriptErrorsSuppressed" property of the control, which resolved my problems. This is the simple type of contained question at which AI shines.
[13]AI coding hype overblown, Bain shrugs
[14]AI software development: Productivity revolution or fraught with risk?
[15]AI coding tools make developers slower but they think they're faster, study finds
[16]Older developers are down with the vibe coding vibe
I was speaking with an experienced Test Manager at a major UK betting company. When I asked him about his experiences with AI, particularly at writing unit tests, he mentioned that results have been poor. In his experience it would usually take several cycles of modifying the prompt (skills sometimes known as "prompt engineering" or "query formulation") before the answer was usable. And then to integrate the code into their (sizable) codebase required the suggestions to be completely re-written. He thought that the AI was a net time-waster, especially for more experienced testers.
Trust the AI, says new coding manifesto by Kim and Yegge [17]READ MORE
The context matters here: For greenfield projects, copy-pasting AI code into the (growing) codebase can be productive. But for larger, more complex real-world codebases, much greater care is required. Often, the AI suggested code is difficult to use or simply wrong.
In summary, my experiences with AI have been mixed. Asking the AI for suggestions on simple, direct queries, and then integrating those suggestions into the existing application is sometimes effective. But attempting to integrate code into a codebase which must be maintained many years into the future is much riskier.
Some of us have grown up in a world where smartphones have always existed. Many may struggle to imagine a world without their smartphone. We're increasingly chained (some might say enslaved) by these devices, requiring them for bank payments, ticket collections, and more... on an ever-growing list. How many of us could confidently navigate a physical map, having used Google Maps (or its equivalent) for years? What happens when the services we rely on disappear behind a paywall, or simply stop working altogether?
I fear the same is happening with AI. By all means, make occasional use of these tools to learn and be productive. But recognize the risks. Before you turn to that smartphone app or AI tool, attempt the problem yourself.
Stay in control and think for yourself – the tool you rely on today might not be here tomorrow. ®
Get our [18]Tech Resources
[1] https://www.theregister.com/2025/11/06/vibe_coding_escape_the_clutches/
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aRdgKVPaq_zTlTfekcyx8QAAAAk&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aRdgKVPaq_zTlTfekcyx8QAAAAk&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aRdgKVPaq_zTlTfekcyx8QAAAAk&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[5] https://www.theregister.com/2025/11/04/humanhuman_code_pairs_more_talkative/
[6] https://www.theregister.com/2025/10/07/windows_11_local_account_loophole/
[7] https://www.theregister.com/2025/08/05/set_up_windows11_local_account/
[8] https://www.theregister.com/2025/10/27/jen_easterly_ai_cybersecurity/
[9] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aRdgKVPaq_zTlTfekcyx8QAAAAk&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[10] https://superuser.com/questions/266268/where-in-the-registry-does-windows-store-with-which-program-to-open-certain-file
[11] https://www.theregister.com/2025/09/26/ai_catholic_uni/
[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aRdgKVPaq_zTlTfekcyx8QAAAAk&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[13] https://www.theregister.com/2025/09/23/developers_genai_little_productivity_gains/
[14] https://www.theregister.com/2025/05/01/ai_software_development_productivity_revolution/
[15] https://www.theregister.com/2025/07/11/ai_code_tools_slow_down/
[16] https://www.theregister.com/2025/08/28/older_developers_ai_code/
[17] https://www.theregister.com/2025/10/21/book_review_vibe_coding/
[18] https://whitepapers.theregister.com/
Good enough solutions
I might not necessarily agree with the recommendation of trying to solve things yourself first. I can do that for most tasks I come across; the bigger problem is whether my solution is good (fast, maintainable, extendable, etc.) enough to be used. A bit of online research beforehand can increase the chances of that greatly.
Unfortunately, the same cannot be said for AI tools, especially those that suggest one single solution, providing little context for its advantages and disadvantages.
"Tales from the pit"
Says it all. The road whither is traditionally paved with good intentions (and human weakness.)
A decent technical library next to one's desk is often a far better resource than the whole internet combined. Actually getting up an taking a book from the shelf to lookup some detail of a data structure or algorithm etc allows the mind's focus to broaden and become receptive to peripheral information in the text which might lead to a much better solution.
Although in practice most software that doesn't need to scale to millions is often better forgoing complex data structures and involved algorithm for simplicity. Its usually easier to replace a simple implementation after benchmarking with a more efficient but more complex implementation than the other way round.
My observations in the last two decades would suggest proportionately far fewer graduates from the exact sciences (eg maths & physics) enter software careers than previously. The vast majority seem to be IT graduates followed by Comp. Sci. (not quite the same thing) graduates. The narrowness of the former IT courses, especially the typical total lack of any mathematics, does limit the creativity and insight required for problem solving tasks.
Re: Premature optimization
Premature optimization is the root of all evil
It is difficult to look at AI and consider it "optimization", but from a practical standpoint, the use of AI agents might indeed be seen as an optimization that is rather premature.
Re: "Tales from the pit"
Having worked with a lot of quants over the years, I can state with authority that being good at maths has absolutely no relationship to being a good coder.
circular lists...
Very popular in assembler, particularly useful and fast when the list is 2^n - a common size I came across was 256.
The student becomes the master.
AI:"look at me, i'm the captain now."