I’ve always written to help myself think, and I thought it may be interesting to share those thoughts with the world. This post was written in a single stream of consciousness with very little editing.
I love going to watch classical music. Listening to such a large group of people come together playing in such perfect harmony to create music is a sight I think everyone should witness at least once. Last time I attended, I tried to think more deeply about what it was I enjoyed so much. A thought planted whilst my wife and I were chatting about AI.
When I really boil it down, the reason I love classical music is partly because it just sounds great on the ears. But also, and I think a bigger reason, is the amount of work each individual musician has put in to get to where they are on that stage. The inevitable failures, the challenges, the hours and hours of practice. That’s all paid off and there they are on a stage.
If you look further back to the composers who wrote many of the great symphonies. I mean Beethoven was deaf, yet still managed to compose some of the greatest pieces of classical music that exist today.
The humanness adds an extra dimension to almost all things we’d consider creative.
## So how does this relate to AI?
Seemingly, the problems AI companies are trying to target first are the creative ones. Disney selling the rights to their characters to Sora, Spotify generating their own AI music and flooding playlists with it. Nowadays, anyone has art/film/music at their fingertips. Just a prompt away.
And when you think about it, this makes sense. I love this article and how it refers to LLM’s as a bag of words. Without knowing the details of what data AI companies use to train their LLM’s, I would assume a lot of the words in the bag are from films, music, television and books. There is a lot of reference data, which makes generating stuff easy.
When you compare that to science, as the bag of words post does, things are a little different. Most groundbreaking science, by it’s very nature, is stuff that hasn’t been done before. That makes the bag of words pretty shit. There aren’t many words in the bag to describe something that is brand new.
So whilst an AI could generate a bunch of low quality studies, repeating things that have already happened, I’m not convinced in it’s current form it could do anything new and novel. That’s just not how the tools work.
All of this does beg the question though, what exactly is creativity?
What is creativity?
In all of the above; classical music, film, science, where exactly is the creativity? Which specific piece of it is creative?
I was chatting to someone at a conference recently and a family member of their’s was an artist. And one of the things the artist used to do was take paint and throw it in the air above a canvas. Wherever the paint landed was how the piece started. The act of doing that seems pretty creative. But is that too dissimilar for having the seed of an idea and asking an AI to continue from there.
This is where I get conflicted. Very conflicted. And I don’t know, even for myself in my day to day, where the right place to draw the line is. When does creativity, humanness, turn into AI generated slop. To be able to type a prompt into an AI service, you need to have the idea in the first place. Is that not creative? You have the idea, but you don’t have the skill to create the end product.
I feel this conflict deeply when I start to relate these same ideas to software development.
I’ve always been a backend developer, and I’m dreadful at anything frontend or UX related. I know enough to be dangerous, but not enough to create quality front-end experiences.
Now I have a tool at my fingertips that allows me to think of an idea, code the backend and generate a passable frontend layer that is 10x better than anything I could have created myself.
The creativity is in the idea, and it feels great to generate functional applications quickly. But does that diminish the hours and hours and hours of time others have put in to becoming great frontend engineers?
Quick sidebar, the one relatively large frontend codebase I’ve used an AI to generate become an absolute un-maintainable hellscape after a month or two of work and adding new features. Probably due to my lack of skills on how to build quality frontend applications.
Creativity in software development
So what is the creative part of software development? For me, software exists to solve a problem. To make someone’s else life easier, faster, better or more efficient. If you’re building software that isn’t doing that then what is the point in building it.
The creative part, is solving the problem. Is figuring out a new or novel solution to meet your users needs. Whether that’s the specific needs of the user, or the fact you’re user traffic has increased 100x and you need to find a way to scale it.
Most software systems I’ve ever worked on are snowflakes. We talk about microservices, or serverless, or event-driven architecture, but even systems that follow these patterns are unique. Different programming languages, different tools, different stacks, different business conditions, different leadership styles, different team structures. All these things come together to build software.
All of these things, make your system unique. It might be similar to other systems, but without a doubt it’s unique.
And this is where I think things start to get interesting with AI.
Because whilst your system might be unique to mine, there are some similarities. We’ll both have tasks we need to do that are repetitive and tedious.
”Oh crap, I need to add a new property to the class and then make the same change in 10 separate code files”.
”We’ve added this one API route, I need to scaffold 20 others in the same fashion"
"I’ve got an API with 30 routes, now I need to generate an OpenAPI spec to document it”
These repetitive, tedious tasks is where I believe AI coding assistants shine. I can give them clear guardrails, go off and do this things.
But the stuff that makes your software unique, the stuff that solves your users needs in a new and novel way. The creativity that you as a human, with all your experience, your 3am pagers, your big wins and terrible losses. That creativity to solve new and novel problems in new and novel ways.
The bag of words ain’t got a chance.
James