How Much Should Software Cost?

How Much Should Software Cost?
Brisbane, Australia

Last time I wrote about a personal horror story. A big part of that story was ultimately about money: the cost of delivering a digital factory when the requirements that the resulting digital product must adhere to change partway through development - perhaps many times.

In breaking the work up (now over one year ago!) I used a pizza analogy to describe how the time and cost of delivering products can vary dramatically depending on how granular the specified outcomes are and how rigidly we must adhere to them.

To continue exploring a scenario raised there, suppose that we have engineered our very own factory for producing Domino's Pizza on-demand. Now suppose that the tastes of the market we are targeting have changed and consumers are now much more interested in what Pizza Hut has to offer and that the demand is large enough that offering an identical product makes good business sense.

How much work could be involved in transforming Domino's Pizza into Pizza Hut? What could it cost?

Everything.

Making that happen most likely means throwing all of what we have in the bin and starting from scratch.

Even if in abstract terms the production processes are very similar, most of us don't know which aspects of the differentiation are important. Perhaps all of them are important. The more aspects we are unable or refuse to replace, the greater the risk that we are not in a position to deliver Pizza Hut to the market. We never truly know what it takes to satisfy an audience until after we've achieved it. Maybe a 99% match isn't good enough to the market, and just maybe 99.9999% isn't good enough either!

All of this ties in to the matter at hand. Contemporary software requires a tremendous amount of work, and the amount of work to meet every expectation is only increasing, while the capacity to meet those expectations has not increased at a commensurate rate.

In the pizza analogy we were working with a relatively stable foundation. The concept of pizza is well-understood and over a thousand years old. We cannot say the same for any digital product. Figuring out what works for people and how to deliver it is still an active process of discovery. Sometimes teams do know what needs to happen but the cost to get there is many months and many thousands of dollars and the expected increase in revenue is zero.

New classes of devices such as those with foldable screens increase the breadth of work that designers must contend with. Cyber criminals become increasingly capable and prolific. New technologies like LLMs enter the culture and create an expectation that your software will offer new functionality or deliver an existing experience in a new way from at least some proportion of your audience. This is far from an exhaustive list of considerations, we touched on some others in software as good and software as service.

In the digital games industry there has been a tradition of hardware manufacturers releasing a new device every 5 or so years. The hardware of each new console generation was more capable. Meeting that potential - the new baseline - required more work with each iteration. This cycle now seems to be on the precipice of collapse. Delivering any experience, let alone one that is 'good' by contemporary standards, has become prohibitively expensive for many projects that could have succeeded were they produced at an earlier point in time.

These economic challenges are no secret. It is nevertheless a significant undertaking to convince an audience that prices increase or the overall quality of products degrade because of a portfolio of obstacles that could not have been predicted rather than the extraction of profit, because the publicly visible signals are very similar.

I've been asked to build an app like Uber, and an app like Google Maps. The thinking encoded in this ask is that someone has already done it, therefore it should be cheaper and quicker for anyone to replicate that - perhaps it'll cost nothing and take no time at all. Nevermind that those platforms took years and hundreds of millions of dollars to establish and operate.

This is the classic shared misunderstanding of production that I hope that we can one day leave behind - that the digital product is a static entity, pixels on a screen.

Until next time.