Enough work to pay the bills, hopefully! But beyond that, if you have been paying attention to previous blogs or IT news in general, you can't have missed that AI is massively changing how one of the core services we provide clients works. Anyone can code now, right? Well, sort of...
It is certainly true to say the way our developers approach most problems is very different to how they would have gone about things even just a year ago. AI assisted coding has gone from somewhat helpful autocompleting of a specific line of code to full feature implementation from a prompt in the flash of an eye. This being the case, where do the humans in the middle of this process actually fit in now?
The job of a developer is quickly evolving from someone that spends most of their time writing code to more of a "system architect". It seems that the primary aspect of the job will become working with clients to design systems and features and then working our how that fits into the larger whole, before carefully prompting AI to build some or all of this and adapting on-the-fly to the problems this presents, and equally the things that used to take ages that can now be done in minutes.
This is one of the bigger gains that AI assisted coding provides. There's plenty of times where there's more than one way to solve a problem, but historically both would take ages to get working, so you have to commit to one or the other once you've started. With AI, it becomes a lot simpler to just try both approaches and see which is a better fit. It's likely both will need refining from AI's first attempt, but as long as the basics are there, that's all you need to evaluate it.
The Illusion of “Anyone Can Code”
The first thing to consider here is that the final outcome of a feature or system is only going to be as good as the person "driving the car", so to speak. An AI code assistant is a bit like the classic genie granting wishes to the letter, and you only realise the implications of having all the money in the world when your wish is granted and you're immediately buried alive in tonnes of coins. The AI will do its best with the thing you ask it to do, but it won't understand the full context of the system you're asking it to work within, or about that other new feature currently being planned in the background that's going to link into this one eventually unless you tell it.
This can be pretty dangerous for "untrained" people thinking they can now do the job of people that have been doing this job for decades. For easy-to-define, standalone one-shot requests, it's definitely now possible for someone with no coding skills to produce something that basically works now, and there's no point in us claiming otherwise. However, that's never really been a big part of what we do anyway. What we spend almost all our time doing is either slotting new features into existing systems, or building big new systems from scratch.
Set an inexperienced person on this task, and tears won't be too far away. AI will give you the illusion everything is working as expected, and it may even appear to be working initially. But when you then add the next request on top of that and then another on top of that, everything starts to fall apart. And you have no idea why or how to fix it because you don't understand anything that's been done. You just know it's not working now. So you go down a rabbit hole of just saying "It still doesn't work" and hoping the AI fixes it.
We've seen one example of this happening to the point that the AI decided to just remove all password protection to a system as a "workaround" for the password login not working! The problem presented to it was that the user couldn't log in, and it solved that problem.
This is why it is still important to have someone that understands both the code and the context in control. They will catch rubbish code as it's generated and nip it in the bud. They will also be able to identify code that is correct but ignores aspects of the system the AI has missed, or hasn't been done in a way that allows for future changes to be made in a maintainable manner.
What AI Still Can’t Do (Yet)
There's also still plenty of tasks that AI can't really help with much (yet, at least). We had a recent system conversion where the system being converted was being run on architecture old enough that there would have been no way to let AI "see" what it was aiming to convert even if we wanted to.
So, while it is absolutely the case that AI has changed the way our developers are working now, the job is just evolving to present a different set of problems to solve. Time being freed up in some cases is now being spent in other areas of the project instead.
Given the media coverage on this, it would be easy to think that the developers are off on a yacht somewhere while AI does all their work for them. Unfortunately for them, this isn't the case. So they tell us, anyway. We haven't actually seen them for months...