Because there are plenty of jobs AI may be going to feast on
AI is hungry for workers, with a report from Goldman Sachs stating that it could automate 300 million jobs. Technical writers, paralegals, market researches and teachers are all under threat according to various news sources. This might make a lot of people feel anxious, but there’s also plenty for us to be excited about.
The technology could transform teaching by giving children their own AI assistants — I for one am a fan of Neal Stephenson’s The Diamond Age, which, in part, explores the impact of AI on education and how it could open up avenues previously only available to the wealthy. AI can also help healthcare professionals by generating novel proteins, speeding up drug development. But what could it mean for software engineers?
This post is the first in a series about generative artificial intelligence, where we see it taking us and how we expect it to influence our worlds of testing, devops, product, design and data.
ML ascends from a niche interest to tech industry saviour
I’m old enough to remember machine learning (ML) coming into fashion, not for the first time because I’m not THAT old, but recently enough that much of the tooling we have today didn’t exist.
My PhD involved ML. I read books and papers, I used tools that other folks created but I also had to write my own — partly for learning purposes but also because I needed to solve specific problems.
As I moved from academia to industry, I straddled data and ML. I eventually moved more towards enabling data science than doing it myself, but I watched on as ML ascended from niche tool to the silver bullet for the problems the tech industry faced.
Are your systems behaving badly? Don’t worry, ML can solve that, all you need is to build an anomaly detector. Is landing new customers slow and painful? We can use ML to identify which folks are more likely to convert. Are there lots of people who drop out of the onboarding process? Don’t worry, we can solve that with a ‘next best x’ model. Want to cross-sell to your customers on a new service for streamed media? ML can help!
For all these scenarios and more, ML was going to be there for you, helping you deliver value to your business and customers. As long as you had ML, it didn’t matter what the problem was — the silver bullet was chambered, all you had to do was pull the trigger.
As more tooling came along, the barrier to entry became lower. Services like DataRobot, Sagemaker and Vertex AI arrived, as well as the tools that would help you get models off your local machine and into production.
Things became so easy that all a data scientist had to do was follow some simple steps:
- Get a data set
- Call model.fit()
Of course, this is facetious. Having something that “works on my machine” is very different to production. Ensuring that models don’t drift and aren’t biased is hard and time-consuming — having a fallback mechanism if things go off the rails, which they do, is essential. That’s even assuming your teams can get access to all the data they need to build the models in the first place.
This is why around 90% of models don’t make it to production. Even then, you’ve only achieved a fraction of the potential value — will the model scale across different functions within the same business? Can you utilise the same processes and frameworks across different industries — can you create a data product?
Does AI make the situation better?
As time passed, we stopped using the term ML. We began favouring AI/ML, before fully adopting the umbrella term of AI. As it happens, AI is much more marketable than ML, but it also served to broaden the scope of the kinds of conversations that could be had and the type of problems companies were willing to address.
However, it seems that we are currently experiencing a somewhat regressive trend. The term AI appears to have become synonymous with generative AI, particularly Large Language Models (LLMs), which appear to be having their iPhone moment. Let me clarify, I do not intend to disregard the achievements of DALL-E or Whisper, nor do I mean to imply that these tools lack substance or the potential to bring substantial business value.
Nevertheless, it would not be an overstatement to say that opinions are divided regarding the short and long-term benefits of any flavour of AI. We’ve already seen Terminator-esque thought experiments and truly inspiring possibilities for education. I will also admit that I find it fascinating, watching folks in my scientific network becoming perplexed when ChatGPT generates references to non-existent papers; it’s not limited to them either, the lawyers are getting involved.
But what does this really mean for folks in the world of software? Specifically, are junior engineers + AI currently enough to make senior engineers surplus to requirements? Can you replace half your workforce with AI?
On developer tooling, things are interesting. My immediate response to most of these kinds of questions is “No, things are simply not there yet.”
Tools like Microsoft CoPilot, CodeWhisperer or Ghostwriter are exciting, generating a bunch of code with a natural language prompt is a great way to bootstrap a project and I see folks I work with using ChatGPT and similar tools to generate code.
I’m also having fun doing the same, but many of the conversations I have, with coworkers and friends, is that the code is often wrong, incomplete or missing the point. This means a bunch of time is spent tweaking either prompts or outputs to meet expectations and you have to review EVERYTHING.
Here’s another anecdata point:
In a recent blog post, the developer of a product called Datasette demonstrated the power of ChatGPT code interpreter to benchmark some code. He, Simon Willison, managed to achieve his goals — all within 5 minutes.
There are a couple of things to call out. First is that this was part of a series about using ChatGPT to get things done — at this point in the series he already knows how to use the tools to get the outcome he wants. Second is that he’s an experienced developer — he created Datasette but also co-created Django, one of the mainstays of Python web dev.
You can probably guess where I’m going with this.
After publishing this post, I realized that I’d missed a mistake ChatGPT had made.
I wanted to compare the time taken to execute
PRAGMA schema_version v.s. calculating the MD5 hash of
select group_concat(sql) from sqlite_master. But… ChatGPT had started the timer with
start_time = time.time() before creating the tables — so the time measurement included the table creation time.
This didn’t affect the comparison between the two, but it did mean that I wasn’t getting the underlying numbers that I most cared about.
Like I said earlier, You have to closely review EVERYTHING they do. I’m embarrassed I missed this!
The emphasis in the quote is his, not mine.
Senior Engineers aren’t about to be eaten by AI — at least for now
If experienced folks can be tripped up by stuff like I described above then I’m less inclined to believe the junior engineer + AI equals senior engineer equation balances.
I’m actually leaning more into the idea that the gap between experienced and less experienced engineers is going to grow because of these tools. Of course, I have no concrete evidence to back up my hypothesis. However, it feels like that’s the direction of travel.
That said, I think it’s foolish to ignore the productivity gains these tools yield — you just have to review everything they do, as you should be doing for all your pull requests. Trust, but verify.
We’re currently working with numerous clients to help them leverage the power of LLMs to improve their existing products. Our work includes consolidating and surfacing domain-specific knowledge, developing context-aware assistants that guide new users through complex software packages, helping business users perform analytics previously unavailable to them and more.
If you’re interested in finding out more, please do not hesitate to contact us. We’d love to speak with you about how our AI expertise can help take your business to the next level.