← Back to context

Comment by mlthoughts2018

4 years ago

I’ve often thought about this in two areas:

- “full stack development” attempts to commoditize software engineering within a firm, so that complements (product management, designers, political managers) are seen as having more value.

- various cloud vendors trying (so far mostly failing) to make software ecosystems commodities so that renting hardware from them to run the software can extract higher rents. Things like open sourcing Tensorflow & Keras, then turning around and selling a bunch of ML optimized GCP products - commoditize the specialist ML software labor, which is the complement to the cloud vendors offerings.

Software engineers really have to watch out for these situations and walk away from places trying to treat them as a commodity.

The cloud providers have no desire for higher rents. Andy Jassy the CEO of AWS just said in his keynote that only 4% of enterprise workloads are on any cloud provider.

The cloud providers want market share. Right now, they are competing against non consumption. AWS has never raised prices on any of their services. In fact, they are aggressively trying to reduce costs by creating their own processors purpose built for their needs and passing them on to consumers. I would think the same is true for Azure. Amazon and Microsoft both know that the minute they raise prices, it’s going to scare companies away.

Who knows what the heck Google is doing with GCP.

  • They're also running up against significant competition in the form of extremely inexpensive local hardware.

    Ten or twenty years ago a company with a thousand employees typically needed multiple racks full of servers, in some cases to handle the load but in many cases just because each separate service would have its own physical machine.

    Today all of that can fit on a pair of local physical machines hosting virtual guests. A single machine can have over a hundred cores and terabytes of memory. Moreover, a physical machine can be amortized over ten years provided you have a load that doesn't vary significantly over time. And because it's such a small number of physical machines, you no longer need exotic local power and cooling solutions.

    Cloud providers are already more expensive than this in many cases. They need every cost advantage they can get just to be in the game.

    • Hardware is cheap. People are expensive. Besides that, procuring resources with your cloud provider is simply a matter of writing a yaml file. Not to mention the lack of an upfront investments and only paying for your resources you need instead of having hardware that you are spending money on because you have to have enough hardware to handle peak load. You would be amazed at the amount of resources you can buy at the cost of the fully allocated salary of one engineer.

      And yes you can buy hardware. But can you run a data center in multiple regions? Besides that any cloud provider offers more than just a bunch of VMs. AWS alone has 260 services with an entire team of people keeping them patched and optimized. I don’t keep up with Azure as carefully. But this isn’t meant to be an Azure vs AWS comment. I just don’t know Azure.

      13 replies →

  • I don’t think it’s mutually exclusive. They might be commoditizing a complement to get market share or find areas of vendor lock-in to raise prices later. I.e. they could be seeding commodity tools that their customers can plug in, while also generally lowering prices for a more pressing immediate land grab before raising prices later.

    • The cloud has been a viable alternative for about a decade and still has only about 4% of enterprise spend combined. By the time the market is saturated and the only path to increased profitability is raising prices, most of us will be retired. Is that really the most pressing risk that most business have? In any of our lifetimes, when has the cost of technology ever increased- besides phones?

Interesring! So the more technologies, the more pay, as it will be harder to find specialists. But while it takes years to get good at something, say a CRUD programming language, that experience will be useful for other CRUD languages. But managers do not understand that so it can be very hard for a specialist to find a matching job when the combination of platform x languages x frameworks x transpilers get too big. Another interesting fenomen is that such specialists so quickly become obsolete ....