AI won't have to write code
Peter Juras · May 15, 2023 · 8 min read
Artificial Intelligence - more specifically Large Language Models - have generated quite a buzz recently and sparked many conversations and ideas on how they can be incorporated into product development workflows.
Software engineers and enthusiasts around the world started to experiment with using these tools in their daily workflows to help them to write and improve code or to perform other tasks that might speed up their workflows.
These early trials have already shown some promise: ChatGPT could be used to generate unit tests and documentation and image-generation tools such as Midjourney produced interesting results when asked to create mockups for a food delivery app. This can then be taken a step further with Screenshot to HTML + CSS generators like Sketch2Code or Fronty.
Food delivery app mockups generated by Midjourney
Leveraging this new category of tools is an exciting way to automate or at least improve many of our existing workflows and speed up the important part: delivering value to our customers.
In my view we might benefit from taking a step back and re-thinking what problem we are trying to solve. Instead of asking AI tools to generate artifacts that we are familiar with in our current workflow, can we just ask it to create the actual product that our customers want instead?
Dreaming of dish-washing robots
When thinking about automating a problem, our first instinct is to look at our current workflow and try to automate the existing steps to achieve our desired result.
Let’s pretend it’s 1800 - dishwashers don’t exist yet for at least another 50 years and we’re having a vision in our dream of robots that will take over the world help us to solve a dreadful task that has been cast upon us since the dawn of dishes: Washing the dishes 🍽️🧼🧽
Now what does this robot need to take over this important task?
Let’s first make sure it has a hand to hold a sponge. We’ll add another hand that can hold and squeeze detergent onto the sponge, to then later use the second hand to hold up the dishes while the first hand scrubs them until they’re clean. We still need our sink and running water of course, to prevent a mess in our house, and let’s give our robots some legs and - voilá - we envisioned a robot that can do the dishes for us!
Let’s fast forward back to today. Has the task of doing the dishes been solved and automated for us? Yes 🙌
Do most of us have a dishwashing robot at home? Yes 🙌
Do they look anything like the robot in the picture that Bing dreamt up for this blog post? No 🤔?
What happened instead?
We imagined the future was a humanoid robot to do the dishes. We got a dishwasher, and that *is* a robot, but we don’t see it like that— Benedict Evans (@benedictevans) June 8, 2017
We got dishwashers. They’re also robots, they’re amazing at getting our dishes clean even though they aren’t approaching it the same way we do. There’s no sponge. The detergent is packaged in a different form. It doesn’t even use a sink!
And all these points are fine - better than fine even. We created a machine with a very specific purpose that is not only able to do the dishes, it’s able to do them better than we can.
In the end, we care most about the outcome: getting clean dishes. How we get there can deviate from the way that we used to do it in the past.
What are the implications for software engineering & product development?
Now how can we apply this to our field?
Instead of using AI to help us improve our existing workflows - creating tests, documentation, mockups or even writing the code that drives our services, web applications and apps - why don’t we let it create the actual product that we want to build for our customers?
In the end, a lot of the artifacts that we create are to help the business become better at creating products, but don’t necessarily have an impact on the actual value of the product itself.
Tests help us to ensure that our code works correctly and continues to work correctly once it is changed. Will an AI still need to think about tests once it is creating the product itself? Tests might be our sponge and detergent, and the AI might no longer need these tools to get the dishes clean.
This can create a large opportunity to transform experimentation within our product development workflow. Experimentation techniques such as A/B testing can help us to generate learnings and identify whether our changes create a positive impact. An AI could be instructed to deliver a consistent version of a product’s experience, while leaving room to let it optimize on certain success metrics and alter the product for a subset of users to learn by itself and continuously make improvements that benefit our users.
Allowing AIs to create our products enables transformative new ways for a personalized experiences. These experiences would be able to not only keep the user’s context within a single company’s domain but could extend and learn from the user’s desires and behavior across multiple applications. If a user prefers detailed search filtering when browsing cars on multiple marketplaces, for example, an AI-driven product could keep this in mind while building their AutoScout24 experience. On a similar note, it could also create a more beginner-friendly experience for users looking for their first car, in which they are provided with more guidance throughout their journey.
Letting AIs create the end user experience does raise one question though: who controls the AI?
The writing is on the wall: Gatekeepers are increasing their power
Before the advent of modern AI tools, most users didn’t access our information and products directly by going to www.autoscout24.com; instead they typically searched for us on Google or their phone’s app store and discovered our content with the help of those platforms.
AI assistants have the mission to help their users solve their problems in the best way possible. This could also imply that users should not have to visit us or a competitor’s platform to get to their dream car, unless that improves their experience. It does present issues however: users who want to learn more may be unable to see the sources of the information they receive, and the companies running the AI assistants benefit from the work of other companies without giving them credit.
The theoretical exchange with an AI assistant above turned out great for both our user and AutoScout24’s business! The assistant could just as well have picked a competitor and one of their cars, though. How do we need to evolve to stay connected to our users while making them happy customers?
Overall, AI tools and assistants present a great opportunity for us and other businesses to improve our user experiences.
At AutoScout24, we aim to amaze our customers. Today we do that primarily by meeting them where they are today: our websites, apps, WhatsApp, text messages or e-mail. For tomorrow, we need to be prepared to rethink our approach and evolve them for the next generation of user interfaces.
Bill Gates called out that the advent of the new AI tools represents a shift that is as large (if not larger) than the advent of the GUI. For us, this means that we must shift to a new mindset that goes beyond improving our existing interfaces for our users and instead building connections to AI models that leverage our core competency - connecting car buyers with car sellers - and makes sure our users are provided with the best possible experience.
It is still early days for AI tools, and we still have a long way to go until we can leverage them to create better products with confidence. But I’m convinced that we’ll not only get there, but that all parties - users, companies, and AI platforms - will be better off with them.
[It is left as an exercise to the reader to figure out if this blog post has been generated by an AI]