Hi,
We’re all back from vacation and ready to get stuck in. Let’s go.
We know many of you are starting out on your platform journey. As you do, I want to talk about one thing you should forget right from the start: You can not and should not try to please everybody. Platform engineering is an 80/20 game, and there are several reasons why.
Reason 1: It’s impossible to cover every technical case
The world of cloud-native is simply too differentiated and crowded to cover all edge cases. Building a functional platform covering the Kubernetes (K8s) ecosystem is a challenging thing in itself and believing you can weave in serverless, VMs, and all your legacy is simply naive. I’m not aware of a single case where an organization has managed this. The same thing holds true for resources. Is it technically great to have every new AWS service on your platform? Conceptually maybe, but it becomes impossible to maintain at high quality – and with a sufficient devex.
So what’s the fix?
80% of your application surface area will likely look very similar. Or, if you’re currently in a transformation phase, you have a target for what your 80% will look like. And this is what you cover, it’s as simple as that. If I mean “look like”, I mean that most of your workloads will be containerized and running on K8s for instance. They all use more or less the same resources, databases, DNS, or file storage. The individual configs vary, but are neglectable. Imagine you have to standardize on three to four base configs for all your Postgres Databases, this is almost certainly possible.
If developers want to have a good experience with SLA-backed, supported resources, they have to stay on your golden paths. This doesn’t mean they can’t leave, but that’s where the support ends. This leads to a situation where architectural decisions are made depending on what’s available. But does this really matter? Will you make more money as a business because microservice A uses Lambda?
Reason 2: It’s impossible to cover cultural nuance
I’m telling you now, there will be, developers that hate you. And even if they don’t tell you, they may still boycott you. More often than not they’ll be juniors, or even more dangerous — juniors that think they’re seniors. They haven’t seen the sh*t hit the fan at speed and scale. Depending on your environment and business, the number of these developers will vary and make up as much as 15-25% of your population.
So what’s the fix?
Don’t try to convince them. It’s impossible to tell humans not to do something today, so as not to suffer tomorrow. Rather, just let them go off-piste without the cushty support guarantees, and make sure they know they’re on their own.
That’s it until next time. I hope this was useful and as always if you have any questions, feel free to reach out.
Regards from Berlin,
Kaspar