On software development and generative AI
by Jeremy French
Yes this is another article on this subject. I’ve not seen anything so breathlessly written about in a long time. So is this article just white noise?
Possibly, but I would say that a lot of what has been written has been by people who have neither used generative AI nor written software… They have seen some demos and extrapolated.
With something like this extrapolation is a very uncertain art. I have no idea where we are on the S curve or the hype cycle for this tech. It feels like we are at the top of both but it’s really anyone’s guess.
Also, I don’t want to undersell this tech. It’s come from more or less nowhere and has become the biggest disruptive tool I’ve seen in 25 years of software development. It’s the nearest thing I have seen to a silver bullet in terms of improving developer productivity by orders of magnitude. But it isn’t the end of software development.
I’m imagining that there are some project managers who are convinced that their job would be easier if they could just get rid of those pesky developers. They are sitting dreaming of being able to plug their requirements document into an ai bot and perfect software will come out the other end. To be fair to them I’ve seen a few demos showing just this. But they are going to be very disappointed.
Why is that? Well, firstly the idea of application generators is not new… There are loads of “low code” or “no code” solutions out there.
I remember back in 2002/3 looking at something with Rails that would given a data definition generate a CRUD application for you. You could get something started very quickly. But then when you needed to do something that was not possible with the tool… Well, you needed to learn Rails, and then figure out what the scaffold was doing. So while you could get a “working” site in a couple of hours, getting it to do what you wanted would take days.
None of the tools out there solve this. They can get you reasonable partial solutions to problems they can generate contextual snippets of code that are useful much of the time. But they very often make mistakes. Mistakes you can easily miss. And for anything that involves integration with bigger solutions, they get lost in the woods.
I think a lot of the excitement comes from people who don’t understand what developers really do. They imagine we clock in and spend the whole workday typing frantically making new code until home time.
Those days do happen, and they are satisfying, but they are very rare.
Things developers do in their workdays other than write new code
- Find and fix bugs
- Clarify things with stakeholders where there is ambiguity
- Refactor working code to manage new requirements
- Manage priorities ….
And many more non-code tasks.
AI tools are much less useful with all of these tasks. They don’t understand the bigger picture for large custom systems and repeatedly make bad suggestions.
If our optimistic project managers were to get rid of their developers they might get a number of working snippets for each of their tickets but they wouldn’t have a new product and they would not have the knowledge to know how to move forward.
So I think we should welcome these new tools, and apply them where they give the most value so we can deliver software faster and better than ever before.
tags: AI