Live data from Hacker News

Software Development Has Diseconomies of Scale

allankelly.blogspot.com

41–50 of 89 posts

Re: Software Development Has Diseconomies of Scale

#41

It's not a brilliant article. Software is not like milk. That analogy is facile and stupid. Software should be more like civil engineering, where it's normal to unleash a big team on a big infrastructure project and still have some hope that costs and deadlines stay under control. Or maybe like movie making where there's a cast of thousands, the time is huge, and the costs are epic, but some projects stay under contr…

"Software is not like milk" is exactly the point: the author's observation is that (some) people treat software as though it had scaling economies like a commodity product, when in fact it does not.

Software engineering would be like civil engineering if civil engineers had teleporters, matter-replicators, and armies of construction robots capable of building anything from a set of blueprints, without supervision.

Software engineering is its own practice and the fact that it is unlike other forms of engineering is a feature, not a bug.

Re: Software Development Has Diseconomies of Scale

#42

Earlier quoted context omitted.

There is no reason why 'big software' can not be made up out of small software pieces inter-operating. In fact those are the strongest and most maintainable systems.

As soon as you've got a few hundred small pieces interoperating, you're not talking about something small any more.

That's true, but if you architect it well you should still be able to have an overview with every program as a functional block and inside the programs the scope should be limited enough that they are easy to understand. It's all a matter of balance. Good examples of such systems: message switches, telephone installations, routers, large scale web applications and so on. These are all very suitable to such decomposition into communicating processes.

Re: Software Development Has Diseconomies of Scale

#43
The best part of the article is the concrete image of the milk cartons. On first seeing the image, your mind is going to tend to think things ought to be one way. Then it comes out and says, "No, it is the opposite." That creates a bit of cognitive dissonance and makes one ask: "Wait, why?" This is good as far as software goes, because it is so abstract that often the brain is not fully engaged when talking about it. It is too easy to know something in the abstract, but then not know it enough to apply it in the concrete.

Re: Software Development Has Diseconomies of Scale

#44

The argument the author makes is really that software development and maintenance has diseconomies with the scale of projects and releases (basically that development and maintenance output needed scales superlinearly with complexity and output scales sublinearly with team size), which seem to be fairly widely.accepted observations in the field. There some effort to portray this as unusual compared to other industrie…

The body of the article refers to software development, so we put "development" in the title. Also I don't think he's so keen to distinguish software from other kinds of design work—in fact he makes the opposite point at the end.

Re: Software Development Has Diseconomies of Scale

#45
post #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 i…

Perfect, bug-free software has economies of scale. There is no such thing as perfect, bug-free software. Once you start getting into any sort of maintenance, bug-fixing, feature creep- you lose all of the economies of scale of perfect software and replace that with the expenses the author discusses in the article.

You've possibly missed my point. The author made the statement that software differs from other items. It does not. Try making a 1km long truck and see if it's perfectly bug free. That doesn't mean trucks don't enjoy economies of scale.

Let me try another way to explain this: if software had diseconomies of scale, then selling each successive copy of your software that you made would make all the software more expensive. Eg, if I made a computer game and sold it to 1 person, I could do it for $10. If I sold it to 10 people, I would no longer be able to afford selling it for $10 and would need to sell it for $20 (x10 = $200 total). Makes no sense right? That's because software enjoys economies of scale. If I sell 1 copy of my game and want to make a profit, I need to charge $500000 to 1 person. If I sell it to 500000 people, I can get away with charging each person $0.99. The more software I sell, the better my economies of scale become.

abrgr explains it nicely in a sibling post here.

Re: Software Development Has Diseconomies of Scale

#46
post #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 i…

You're responding to an argument the author doesn't make with a fact he is aware of. That's why he wrote: "once the software is developed then economies of scale are rampant". You can't distribute something before it is developed.

Most of this HN thread seems merely a reaction to the title—specifically the failure to say "development" in the title—which is a shame, because the point it makes about staying small is a critical one. If we don't even understand this here, the odds of any large group ever understanding it seem negligible. Another diseconomy of scale I guess.

Re: Software Development Has Diseconomies of Scale

#48
post #27

Earlier quoted context omitted.

While some small, simple programs are great, big economic contribution is mainly in large software: manufacturing control, ERP, air-traffic control, power-plant control etc.. Small software is great, but the big economic impact belongs to big software.

There is no reason why 'big software' can not be made up out of small software pieces inter-operating. In fact those are the strongest and most maintainable systems.

Small software that's made up of small pieces is still big software. In fact, most big software systems in the last twenty years or so are built that way, but that doesn't eliminate the the complexity. It makes it manageable -- not cheap.

Re: Software Development Has Diseconomies of Scale

#49

Earlier quoted context omitted.

As soon as you've got a few hundred small pieces interoperating, you're not talking about something small any more.

That's true, but if you architect it well you should still be able to have an overview with every program as a functional block and inside the programs the scope should be limited enough that they are easy to understand. It's all a matter of balance. Good examples of such systems: message switches, telephone installations, routers, large scale web applications and so on. These are all very suitable to such decomposit…

> These are all very suitable to such decomposition into communicating processes.

That doesn't make them cheap to build; only possible.

Re: Software Development Has Diseconomies of Scale

#50
post #36
post #19

Earlier quoted context omitted.

KISS has been a cherished principle for most of the past century and for good reason.

Indeed, the history of the development of very large software systems has been littered with disasters. Don't people read The Mythical Man-Month any more? http://www.amazon.com/Mythical-Man-Month-Software-Engineerin...

Apparently not. Communication between team members has a huge cost factor ... not only ito dollar/time but also ito the quality of the final product.
Post reply on HN