Crossing the Fine Line of Customer Obsession
Innovation, not re-education, is what it's all about!
Amazon’s famous leadership principle of customer obsession is an encouragement to look at what a customer needs and then work backwards from that need towards a solution.
Customer obsession is a spectrum, not a binary switch. On one end, you give customers exactly what they ask for. On the other, you go above and beyond to deliver something truly remarkable. But there's a point where you cross the line from customer obsession to pursuing your own agenda.
Take relational databases, for example. When customers asked for a way to run their databases on the cloud with minimal hassle, Amazon delivered RDS. It was a straightforward solution that met their needs. But then came Aurora, a game-changing reinvention of relational databases that still looked and felt like a traditional RDBMS.
Let’s be honest: with Aurora, Amazon didn’t exactly deliver what customers were asking for. Aurora is such a novel take, and a complete reinvention of how relational databases had worked up until then that, frankly, no customer could have asked for something that specific.
How, then, do we know that Amazon fulfilled their customer obsession principle with Aurora? I think that it comes down to how much overlap there is between the original need and what is being delivered.
With Aurora, no customer had to be convinced of the power of relational databases. Nor did anyone need to embark into a lengthy training programme. Aurora is a good old relational database. It’s compatible with the database engines (PostgreSQL and MySQL) that most developers have known and used for decades.
Aurora is a more innovative answer to the same customer need that brought us RDS.
Sure, it’s technically a new thing. If you’re trying to convince someone to use Aurora (as I have) you do need to explain a little bit of what it is and why it’s better. You can’t just say “It’s PostgreSQL on AWS” (as you would, rightly, if talking about RDS).
However, when we start telling customers that they need to abandon their relational databases and adopt something like DynamoDB, we've crossed the line. We're no longer obsessed with their needs; we're pushing them into something completely different and somehow assuming we know best (with no malice, I’m sure. I’ve done that myself many times).
I’m afraid that’s what's been happening in the serverless world!
For years, we've been evangelising DynamoDB as a key component of serverless architecture on AWS. But what about customers who have invested heavily in relational databases? Do we really think they're just going to rip and replace their entire architecture? It's not only unrealistic but also condescending.
The truth is, there's nothing inherently hostile to relational databases in the serverless paradigm. Cloudflare's D1, a serverless SQLite-based database, is a shining example of what's possible: cheap, fast, and there's nothing new to learn. It's good old SQL.
But if you’re building on AWS and you want the power of a relational database, you’re stuck with Aurora Serverless, a service which is possibly great for the enterprise but is far too expensive at low-to-medium volumes.
As I recently pointed out on X, how is it that DynamoDB can cost virtually nothing at low scale, whereas Aurora has to be so expensive?
Now, if your answer to that question is “oh but you don’t know how hard/expensive it is to set up backups/multi-AZs/read replicas, etc”, let me point out two things.
Firstly, a lot of us do know. We used to do all of that. Back a few years ago, everyone used to be able to set up a MySQL/PostgreSQL database locally and often even on a production server. It wasn’t that hard and it wasn’t at all expensive at low volumes.
Secondly, look again at DynamoDB! It does all of those things for you and you don’t even need to think about it. It just works, and it does so inexpensively (for the customer, that is).
It's time for a change. We need True Serverless® solutions that truly meet customers' needs, without pushing a specific agenda down people’s throats.
That's why my number 1 request for this year’s re:invent is an SQLite-compatible, truly serverless, hyper scalable, cost effective database service from AWS.
It can be done. Amazon knows how to build something remarkable under the pressure of an aggressive deadline. If they need more resources, they could just drop one or two GenAI initiatives. That would be a double gift!