What is the point?

When I started out a programmer I had assumed that the job would entail lots of clever algorithms and complex data structures together with the kinds of design principals outlined by the likes of Uncle Bob and Martin Flower.

It pretty quickly became clear that this would not be the case.

The fundamental goal is to deliver features to customers and/or business users in the most economical way possible. I don’t think there’s anything fundamentally wrong here. If you think that clean architecture (or whatever it is you’re into) matters it’s up to you as a programmer to make the business case for it. Capitalism pays our wages so we should observe the rules of capitalism.

However, this is based on the idea that the primary metric is how much an end user values a feature vs what it cost to produce.

Recently, though, I’m less convinced that this is the primary metric in many cases. Just look around you. Companies like Splunk, Datadog, Palantir etc. rarely, if ever, turn a profit. Those that do tend to trade at ridiculous PEs. A large amount of VC money is tied up in companies that don’t have many end users (much less profit). In this situation the primary metric is no longer the amount of money coming in from end users, it’s the amount of money coming in from the markets.

In other words, the goal is no longer to sell software to customers, it’s to sell hopes to investors.

In this model features must matter in the sense that without feature there would be nothing to sell to investors but the direct relationship is no longer there.

Still, as the old saying goes: “during a gold rush, sell shovels”. So, it’s good that we’re selling shovels.

But what do we do once the gold rush ends?

Leave a comment