Software - Different Traits for Manufacturing vs Service? 23
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?"
Time to market vs reproduction costs (Score:3, Insightful)
Tangible vs. Software (Score:5, Insightful)
The code behind software can be printed. It is stored physically on a disk. These two things are good enough for the patent office and copyright law. They should be good enough arguments that software is indeed tangible. Another, somewhat easier, way to look at it is this: "Once you pay for it, it's yours forever."
You could also look at it this way:
If you are contracted to write a specific piece of software for a company you are performing the role of the manufacturer, and they are the customer. The price is variable, but once the project is complete the price becomes fixed. The company has a tangible product and does not need to contact you further. (Support contracts and the like really are separate products entirely, which most certainly qualify for the "service" mindset.)
Likewise, when a company employs an IT staff to maintain it's internal systems it really is a service role.
You can play all kinds of accounting tricks when you're supporting software. Does the cost of support add to the cost of the software? Not technically, the real cost comes from the hiring of support staff who likely service a wide range of internal systems. You can assign additional VALUE to the software though, since you have an established knowledge base with it.
The web complicates things a little. You subscribe to access to a web-based service. It is not tangible to YOU. It is tangible to the company you are subscribing to. These services fit both the manufacturing and service mindsets:
- The service provider contracted or hired the talent to build the software in the first place. This is manufacturing. Major upgrades and additions to the software are also manufacturing.
- The service provider contracts / hires the services of programmers to maintain their environment.
- The customer is purchasing a service from the provider.
I'm not sure if this even answers the questions asked. But it's 5:30am and it looks pretty good to me.
Re:Tangible vs. Software (Score:5, Insightful)
> The price is variable, but once the project is complete the price becomes fixed.
>The company has a tangible product and does not need to contact you further.
> (Support contracts and the like really are separate products entirely, which most certainly qualify for the "service" mindset.)
I don't think the developer in your example sounds as much like a manufacturer but more like a plumber. "I installed the new pipes and checked everything out; it's now working. If something fails or your needs change call me and I'll come check it out and bill you hourly."
Plumbers perform a service despite producing tangible results. This is the model that I think that Open Source will lead to, if it gets enough penetration. As a developer, I don't know whether to be happy, sad, or indifferent, but it's what it looks like to me.
Currently software for the retail market looks like something different to me, but I wonder if it could survive if open source were to really start gaining acceptance? Could I take OpenOffice and put it in a box and sell it at Best Buy today? (source on the CD and so forth) Is there a market for that? What would my motivation be as a customer to spend even $10 on something I could get for free? Or what value could I add to something GPLed that is worth paying for by an end user? Support? Customization? More services are the only thing I can come up with easily.
Re:Tangible vs. Software (Score:2)
To take your example one step further, programmers should be going after business, techinical or other skills that compliment their programming. The REAL power of programming is to provide the service of automating some task for the end user! The neat boundaries of OS developer, System Administrator, Programmer, User are quickly going aw
Re:Tangible vs. Software (Score:3, Informative)
The answer is a resounding "yes". The GPL not only does not forbid this, but this is one of the ways that a GPL-based company can make money. Read the FAQ on the GNU site.
If the question is, "Can I make money doing this?", then the answer is probably also yes, but with a few caveats. The main caveat is that people who buy software for themselves to use on a home level are few and far between - it's much easier to borrow a friend's (
"Information Wants to Be Free" is a myth? (Score:4, Interesting)
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!)
Re:"Information Wants to Be Free" is a myth? (Score:1, Interesting)
"Information wants to be free" expresses the observed characteristics of information, mainly that it tends to diffuse into the open, even when
Re:"Information Wants to Be Free" is a myth? (Score:2)
Business is about Applying that Knowlage to your current situation. Your situation is always changing...it's a more like a living thing that has different needs all the time. Hence there will always be the need to employ people to find new knowlage and apply it to make you more money than the other guy!
Software fits this model because rarely is software simply "used".
Re:It really all depends (Score:1)
Counterarguments to the article (Score:5, Interesting)
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.
Re:Counterarguments to the article (Score:5, Insightful)
#1 Summary of your point (?): On the one hand, if software made in-house is used by 1000 people that's 1000 users of that commercial code...yet on the other you say if your servers have software that represents the bulk of the source that source should count too.
Reply: The calculation for lines of code was never intended to be per-machine, it is "total lines of code written everywhere" = COTS_loc + remaining_loc. Oracle does not create a brand-new code tree for each and every machine it has licenced, yet spreadsheet macros and Access databases tend to be written on a regular basis, typically for well under 1,000 systems. (COTS ~ 'common off-the-shelf software'/sold as a product)
Having worked at both COTS software companies and on custom projects the difference between a product and a project is not trivial. The best contract software shops blend the two, though much custom code is still created and the volumes don't approach Word or even AOL cds let alone Oracle DB server. Moving an entirely in-house project to a product status almost always fails (with some noted exceptions).
The rest of your comments I either agree with in part or in whole.
"Ease of use" - One law I've learned:
You can think of this as related to any complex system.
A hammer is simple, requires some training to use, has a limited set of problems, and skill with a hammer increases over time.
A nail gun is not simple, requires less training for the basics, has a variety of simple and complex problems, and experience matters quite a bit less over time.
That said, I'll take the problems with a nail gun over having to use a hammer almost every time.
Another example: At one of the COTS companies I worked for, our tech support questions on a utility program were almost always one of the same 5 questions. Time to answer each one was about 5 minutes.
The answers were obvious though the tweaking was difficult for a mere mortal. The thought was "if we automate the installation process so that it configures the utility automatically...people won't have to call us as much".
So, after a massive effort of automating the installation and configuration process, those 5 pesky 5 minute questions went away...to be replaced by 20-45 minute questions on a variety of issues we never realized existed.
The 'new' problems always existed, we just did not see them.
Re:Counterarguments to the article (Score:3, Insightful)
Consider an example. Assume that each company has 1 programmer and a 1000 employees, and there are 1000 companies, and each company programmer writes 50,000 lines of code. Then you have 50 million lines of written code scattered across the companies, and 50,000*1,000*1,000 = 50 billion person-code-lines of usage of those custom code lines. On the other hand, if SAP hires a 1,000 programmers, an
Re:Counterarguments to the article (Score:3, Insightful)
(calculations using SAP as an example)
Come to think of it, this is even more effective when it's OSS; why reinvent the wheel when a perfectly good car i
Making Money Off Services (Score:3, Interesting)
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.
Re:Making Money Off Services (Score:3, Interesting)
Software is simila
Some Off the Wall Answers (Score:3, Insightful)
As economies everywhere are becoming more service-oriented, what are the main characteristics a software system must provide to work well in such environments?"
Which means there's room for improved products.
Once the purchasing costs are pushed down low enough, what matters most is that service-industry employees are made more productive by using the software; i.e., human factors.
And, if your software can make cheaper human beings function more like expensive human beings, then that's a plus. [Throw the rotten vegetables at me, but recognize it's because passing off cheaper workers for more expensive workders been done so poorly, so frequently, and, face it, can never be done completely.]
Re:Some Off the Wall Answers (Score:1)
It's only "service-like" if it's lousy... (Score:3, Insightful)
Now, they're product-like.
Software should be product-like. It is service-like because a) we still haven't figured out how to do it, and b) there is a combination of interests that is well-served by the status quo.
Remember Fred Brooks (Score:4, Insightful)
The next time someone says "we have to treat software like [anything other than software]", rest assured that they're wrong. But or course, your boss is paying attention to them, so you might as well learn the new buzzwords for the month...