Live data from Hacker News

Software Development Has Diseconomies of Scale

allankelly.blogspot.com

1–10 of 89 posts

Re: Software Development Has Diseconomies of Scale

#2
In software you pay for complexity. Big software is more complex than small software (by definition!) so it's more expensive.

However, managing systems of small software also incurs complexity, the smaller the software components the harder you have to work to make them play together.

It's often not clear a priori whether it's worth to pay a lot more up front to get a monolithic solution or to try and glue together many simple tools.

Re: Software Development Has Diseconomies of Scale

#3
People don't think software has economies of scale. The amount of articles I've seen about the "mythical man month" and such all talk about how hard software is to scale.

What people do think is that the marginal cost of reproducing software is basically zero, regardless of size. This means that choosing between two products, if product 1 has n amount of features, and product 2 has those same exact n features plus an additional feature, all consumers will rationally choose product 2 (lots of assumptions, i know).

This is why companies try to get bigger because if they can offer more features, than all the consumers will choose them and they get all the sales. One could argue that this is the reason why the "power law" effect thats been talked about on HN recently happens.

Re: Software Development Has Diseconomies of Scale

#4
post #2

In software you pay for complexity. Big software is more complex than small software (by definition!) so it's more expensive. However, managing systems of small software also incurs complexity, the smaller the software components the harder you have to work to make them play together. It's often not clear a priori whether it's worth to pay a lot more up front to get a monolithic solution or to try and glue together m…

This diseconomy of scale argument rings true for the size of releases for sure. From an operational standpoint, I agree - the calculus is a lot less clear.

Re: Software Development Has Diseconomies of Scale

#5
There are many kinds of scale.

Poor performance on military projects is often an issue of huge development costs spread out over a tiny number of units.

Apple spends as much to develop an iPhone as it costs to develop a new weapon system, except they sell millions of the phones so the unit cost works out ok.

Re: Software Development Has Diseconomies of Scale

#6
It depends on your point of view.

The point of software is to deliver value to the business. There's overhead with supporting and integrating each system -- to borrow an analogy from the article, each milk carton needs cardboard, a date stamp, etc. Even if software development productivity drops 75% and delivery cost increases, having one big carton of milk may be more cost effective than supporting 50 smaller, more nimble cartons.

If you want evidence that this exists, consider that SAP and PeopleSoft exist and are thriving businesses. Or that the general ledger of most big financial institutions are running on mainframes with code that's been in production for 30 or more years.

Re: Software Development Has Diseconomies of Scale

#7
post #2

In software you pay for complexity. Big software is more complex than small software (by definition!) so it's more expensive. However, managing systems of small software also incurs complexity, the smaller the software components the harder you have to work to make them play together. It's often not clear a priori whether it's worth to pay a lot more up front to get a monolithic solution or to try and glue together m…

Well, of course it's easier to have a single off-the-shelf solution which solves N things than have to cook up the same solution using separate independent pieces of software.

But I would argue it's easier to debug and modify each piece separately if the divide between them is clear and the interface layer is at least somehow contained in one place than to debug/extend monolithic software solution.

Re: Software Development Has Diseconomies of Scale

#8
Diseconomies of scale certainly aren't unique to software, and the author sensibly notes "individual knowledge".

One of the main effects of protectionist and interventionist policies has been related to them. A domestic firm starts to rot, unemployment prospects are rising and a sense of national preservation starts to set in. Thus, in the short term, tariffs are levied, subsidies are made and some macro notion of "stability" or "optimality" is reached. The long term costs are the artificial delaying of the onsets of diseconomies of scale with state and business expansion leading to symbiotic interests. Then people complain about Big Business fucking them over.

(The fact that the author quote Keynes makes this all the more ironic. Keynes-the-man wasn't objectionable, but the neoclassical synthesis/"pop Keynesianism" of his disciples Paul Samuelson and John Hicks did influence government policy in a negative way, as noted in James M. Buchanan's Democracy in Deficit.)

Re: Software Development Has Diseconomies of Scale

#9
Bootloaders are small, but very important software.

k/q is small but a very useful interpreter.

There are so many examples, but it appears that to "the market" the most valued software development is large scale.

The sentiment is create and contribute to large projects or go home. Stupid, but true.

"Do one thing well" is more than just a UNIX philosophy. It is an essential truth. Most programs are lucky if they can do one thing "well". How many so-called "engineers" are afraid to write small, trivial programs lest they be laughed at?

Large programs often become liabilities. Can we say the same for small programs? If it happens, write a new one.

Maybe a user with an unmet need would rather have a program that does the one thing they want as opposed to one program that can allegedly do everything... whereby they are granted their wish through addition of "features". More internal complexity. And majority of users only using a fraction of the program's feature set. Waste.

Re: Software Development Has Diseconomies of Scale

#10
Software has economies of scale in distribution. In fact the economies of scale of software are the key point of how software businesses are causing disruption. A single software program can be replicated infinitely at zero cost and allow anybody who has 1 liter of milk to have 1000 liters of milk at no additional cost. So in the author's example, software would be the same price for both 1 and 2 liters.

Complexity is something completely different and is well known in all products. I can design a calculator that adds numbers very easily. A calculator that does fractions is much harder to design and costs more. A car with a more complicated engine is much harder to build than a simple engine. This has nothing to do with the actual economies of scale of the calculator or car or you could say that cars have dis-economies of scale too - and obviously they don't. They're the poster child for economies of scale.

Building a truck that is 10km long is worse than building 100 trucks that are each 100m long, but this has nothing to do with 'diseconomies of scale' inherent in trucks.

Post reply on HN