Micro-Products
Let’s start with a declarative statement:
Every commercial product should be an orchestration of intentionally-designed microproducts– simple, elegant, single-function business capabilities; the product equivalents of a microservices architecture.
It’s time we finally stop using the term monolithic exclusively to describe our legacy technology investments. All they’re really guilty of– other than being old and held together by duct tape– is that they aligned their ancient architectures to the monolithic products that they were meant to support. Their problem wasn’t the programming languages of old. In fact, one of the best examples of a microservice architecture that I’ve ever seen was in Fortran.
The problem was that businesses sold (and continue to sell) monolithic products. And tech— being more waiter than chef– built systems that mirrored those business monoliths.
–
In the last two decades, tech has finally figured out that small is beautiful– hence the popularity of microservices. But most products– especially in large enterprises like banks– are still lumbering monoliths.
We regularly talk about what happens to big. Craigslist for instance. Picked apart– business function by business function.
But we keep selling big.
We’re all either going to shift to this microproduct approach or slowly be nibbled into irrelevance by startups that are too small to try to be everything to everyone.
–
So here’s where I get strange.
I don’t think that the move to microproducts should primarily be adopted because it would result in better scalability, greater agility, faster time to market, or business resiliency… although I’m convinced those would be the outcomes.
I think the move to microproducts is a moral and ethical imperative.
–
The development of a microservice can be federated to teams outside of the typical business power centers like NY and London. So, as engineers the world over have adopted microservice architectures, they’ve inched toward greater end-to-end ownership of their work.
Microservices have– somewhat unintentionally– promoted engineering autonomy; allowing small, formerly disenfranchised development teams to be recast from staff augmentation to empowered owners.
And that’s important because autonomy today is what company-provided healthcare was back in 1959. It’s our new definition of dignity. At work. Of work.
–
No one says it out loud but the larger the product you’re sitting on, the more likely that you too have unintentionally disenfranchised your teams. Not the ones sitting next to you. The ones sitting farther away.
So something as nerdy as microservices can be a moral lighthouse for product owners– one that grants agency and delivers on purpose. And dignity.