Software - Different Traits for Manufacturing vs Service?
tachin asks: "We've all been hearing about software as a service industry as opposed to manufacturing, there are some differences that favour that view, but I wonder if the type of industry affects the fundamental design of a software system. Considering the differences between those two types, are there some software constructs that are appropriate for one type of industry but would be undesirable for the other? As economies everywhere are becoming more service-oriented, what are the main characteristics a software system must provide to work well in such environments?"
The website claims that "Information Wants to be Free" is a myth:
Interesting. I guess the point is that even if the cost of replicating code/software/information is very close to zero, the marginal utility can certainly be greater than zero. (high school economics, pull me through!)
The two top arguments in the article for why software is a service were erroneous.
1. 19/20 jobs are for in-house programmers This ratio may be true, but the conclusion that most software is written at the point of use as a service is false. If that one-in-20 commercial software company programmer writes commercial code that that sells even one thousand copies, then commercial code becomes 1000/(1000+19) = 98.1% of the code instances in use.
Another way to look at this is to examine the code inside the average company server for the ratio of in-house versus chimerical code. You will find maybe 10 million lines of code in a commercial OS, millions of lines of code in commercial enterprise applications (e.g., SAP, Oracle, Exchange Server, etc.), and a comparative fraction of that in code written in-house (config files, business rule scripts, report generators, PERL scripts, custom applications, etc.). Look inside the average desktop and the ratio of in-house to commercial code is even more extreme.
2. Remainder bin software: This argument is partially tautological. People (and retailers) devalue discontinued items or items from defunct makers because of the often valid perception that the item (or maker) was discontinued for good cause. If something did not sell on the shelves and the maker goes bankrupt, there is probably a reason. I will grant that future value plays a role in buying software, but part of the discount for remaindered goods reflects the low present use value.
Enterprise Does Have a Service Component: I think part of the difference lies in the distinction between enterprise software and consumer software. Clearly, enterprise software requires much more configuration, maintenance, and support -- its much more service oriented. The Accentures, EDSs, and IBMs of the world have made a ton of money on service related to software and IT.
Consumer Won't/Don't Pay for Service: In contrast, consumer software is much more manufacturing driven. There is simply no way that a $49 retail piece of software can come with any service. Nor, judging by the income statements of software makers, do these makers provide much service. There is simply no room in a $49 price point to cover the costs of real on-going tech support. Even upgrades are hardly a service -- the upgrade price is software half or 2-3rds the full retail price and given that the software maker gets to keep a bigger cut by selling upgrades direct, upgrades are a massive profitable product sales.
I doubt consumers will move to a subscription model for software (see Microsoft's attempts to do this) and I doubt they would like a pay-as-you-go model either. Most people bitch anytime that have to buy service (fixing a car, hiring a plumber, etc.) because most people place a less-than-salary value on their own time while the cost of service is always a more-than-salary amount (to cover benefits, employers taxes, support costs, profit, etc.) Do-it-yourself retailers like Home Depot and AutoZone have gotten very rich on consumer's asymmetric valuation of service labor. Consumers only want free service and that means bundling service into the retail price of a saleable manufactured asset.
Rising Ease-of-Use == Less Service:But I even wonder about the service model in all kinds of software. I would further argue that as ease-of-use improves, the need for service drops. The more a piece of software "just works" the more it acts like a manufactured good.
Even in configuration-heavy enterprise software systems, better interfaces could reduce the amount of coding-labor required to configure, maintain , and support big enterprise systems. The move from all-in-house applications to commercial enterprise apps also reflects a move to manufactured software. And as the enterprise apps accumulate functionality (SAP has 27 different inventory management algorithms), it becomes harder to justify paying in-house programmers to write one-off application. Now I'm sure that enterprise system will continue to need lots of service, but I wonder if the amount of service (per function point) won't decline as the systems become more plug-n-play, point-n-click.
Two wrongs don't make a right, but three lefts do.
One of the dangers of buying software as a service is that the vendor company may be tempted to forgo quality or ease of installation/changes if the contract specifies that installation, changes, or bug fix services are conducted under a time and materials contract. In that case, the service company has an incentive to provide as much "service" as possible since that means more money.
I once worked for a consulting company that was a partner to compensation software company. I got this feeling that the compensation software company didn't feel the need to make their products easy to implement or of high quality (bug wise) because all contracts were essentially time and materials contracts. Thus, the harder the packages were to implement, the more money that the software company (and my employer) made. Thankfully, I only stayed with the consulting company for 9 months before moving on.