More software needs iron clad leadership and control. Any organization that lacks this can’t help but produce shit software. There has to be a single person with real decision making power than can force upgrades and prioritization of work, and they need to be able to axe people or teams who can’t hack it.
It seems that worse is better.
What we see is just another manifestation of the current economic paradigm. Waste is winning.
Making too many pairs of jeans so we burn tons of perfectly good new pairs daily wins.
Throwing hundreds of engineers on problems bashing out hundreds of thousands of lines of code sending megabyte messages between dozens of service instances in multiple kubernetes clusters appear to be a winning move. Otherwise someone would beat them, right?
It's less obvious for internal systems and architecture. For example, your company wants to add domain-specific auditing to all of your existing services. You could have every service add a library dependency that lets them just call `auditor.log(...)` and the library internally writes to storage. Or you could add an auditing service with a full HTTP/GRPC API. Or you could go halfway and build an auditing service but provide a library that acts as an interface.
There's no right answer for this IMO, all those approaches have pros and cons.
In my experience, no, it isn't any common. But it is somewhat common for people to ignore the obvious option and go for services anyway.
Of course users want libraries but vendors want services. There are plenty of examples where something could've been a library, if the vendor had user's interest at heart, but instead it's sold (or rather rented out) as a service.
Go to Amazon marketplace, for example. Virtually everything there is a product that should've been a library but is sold as a service...
Is it something that relies on a private database, queue, massive processing, dedicated hardware, shared state, something geographically distributed? It's a service out of necessity.
Or is it just a bundle of quickly executing code? Then it's obviously a library.
I've never seen anybody try to turn leftPad() into a service.