Get in touch
Think that we can help? Feel free to contact us.
The explosion in AI chatbots over the past few years is having a massive impact on software development. At the moment hot takes are ranging from “developers will all be replaced by AI” to “this is an over-hyped grift that will crash & burn”.
As the owner of a 13 year old software development agency I wanted to write about how AI impacts our development processes in the here & now.
My main motivations in writing this are to communicate with our clients about how things are changing, & lock in a snapshot so I can nostalgically read this post five years from now.
I’m going to use two analogies to explain the current state of play:
Imagine feeding an AI LLM the contents of a library containing every fiction book written in the past 100 years & then asking it to write a novel. As we know, the AI will have no problem generating pages upon pages of grammatically correct sentences. However, it will fall over in the following ways:
So while an AI is capable of writing a novel about a young woman caught in a love triangle between a vampire & werewolf in under an hour for less than $5, it would be the literary equivalent of wallpaper paste.
Just as AI can write a novel in less than an hour, it’s very very fast at writing code. But there’s more to software development than writing code.
When talking to clients I often use house building analogies when talking about software development. At a simplified level there are architects, engineers & builders - who all work together to build a house. Currently there are AI coding agents that act as very enthusiastic, very energetic, very fast builders. Think of a house frame going up in under 5 minutes & you get the idea.
But, like our AI author, these AI coders have been taught on a library of trillions of lines of code. Like our hypothetical library a lot of that code is absolute garbage - outdated, buggy & littered with security issues. However - there are libraries of reference material on various programming languages & API which give more context on what good code looks like.
In the real world, our family recently had a block wall built from plans created by a structural engineer. Workers excavated dirt, built framing, re-routed electrical wiring, poured concrete & laid blocks. Imagine having a team of AI robots who were trained on the building code & libraries of building reference material building the same block wall.
At face value this sounds great - a team of block laying robots could out-pace humans & all they’d need to do is follow the engineering plan & their own training - right? Which brings me to:
Most successful uses of machine automation exist in tightly controlled environments where there are no surprises & the plan can be applied exactly how it was written.
Those two analogies bring us to:
You can probably see where I’m heading with this. While parts of software development take place within heavily codified logic based frameworks the important parts interact with deeply complex humans in a chaotic world.
We have enthusiastic, energetic, mind-bendingly fast builders - but without guidance they can & will generate a lot of code that’s fit to plan, but not fit to use. They will also make mistakes, get distracted, go down rabbit holes & use bad code from their training data - all at breakneck pace.
So AI coders need firm, detailed documentation to write quality code. But the last coding revolution - the move to “agile” development - found success in moving from building to rigid blueprints to a flexible building process where the project evolves as new functionality, requirements & limitations surface. In 2020 I wrote about the dangers of developing to a rigid software scope. AI agents building to spec risks losing the flexibility that has defined the past decade of development.
UpShift’s current development process looks roughly like this:
Our bottleneck used to be writing the code - but now our bottlenecks are the engineering & the code review.
Yes, we are building software a lot faster than we were two years ago. But we’re heading towards a point where the only way to increase development speed is to let unsupervised builders spew out unreviewed code - which raises the risk of bugs, security holes & structural issues in our applications.
I could easily write another thousands words on the future - but two things jump out at me:
Part of the reason I’ve built a career around software development is I find the ever changing pace of technology exhilarating & challenging. The past three years have seen more changes than the previous three decades.
Having a friendly robot that writes code at an eye watering speed is both awesome & riddled with risk. Humans need to collaborate with machines in a process which makes the best use of human/ machine strengths & weaknesses. How the next three years track is going to be a wild & interesting ride.
Footnote: "AI as an Author" is already happening in genres like romance - there's a good article here & a podcast interview here about how AI is impacting writing novels.
Banner Photo by Artturi Jalli