Xref: utzoo comp.object:3038 comp.software-eng:5252 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!cs.utexas.edu!uunet!brunix!doorknob!rsw From: rsw@cs.brown.EDU (Bob Weiner) Newsgroups: comp.object,comp.software-eng Subject: Re: How to pay for reusable software Message-ID: Date: 4 Apr 91 23:21:49 GMT References: <1991Apr3.231849.13410@m.cs.uiuc.edu> Sender: news@brunix.UUCP Organization: Brown U. Lines: 82 In-reply-to: johnson@cs.uiuc.EDU's message of 3 Apr 91 23:18:49 GMT In article <1991Apr3.231849.13410@m.cs.uiuc.edu> johnson@cs.uiuc.EDU (Ralph Johnson) writes: > For the last few years I have been learning how to make software > reusable. ... > The real problem is that it is so hard to create reusable > software. > > This leads to an interesting problem: how can we afford to pay the > costs of developing reusable software? The same way we afford anything else. We convince ourselves or become convinced that the benefit outweighs the cost. How do we do that? In the industrial world, we gather believable examples of where company A with an established reusability program is trouncing competitor company B who writes most of their software from scratch. The correlation becomes especially believable if company A points to this program as their main success strategy and if they used to trail company B. Electrical engineers have learned the value of standardization, though they do not always apply it. Computer scientists, software engineers, and programmers generally do not show this same understanding, at least as it applies to program generation. Their mindset will also shift as startling examples of technology advancement arrive. And if they don't, then maybe many people will find that they have been promoting the wrong crusade. > Some application domains, like graphical user interfaces, are popular enough > that a company can build a set of reusable components and sell it and make > lots of money. I don't think there are many of these application domains, > and in any case most people seem to undervalue software and don't want to pay > a fair price for it. Thus, it is only cost-effective to sell software if you > can sell a lot of it, which rules out specialized application domains. I think this is a forest-and-trees issue. The development of standardized sets of reusable software components should not be about the commercialization of the components but about their use as enablers in the construction of needed applications within real world constraints of time and resources. People don't make much money selling me a few screws, bricks, or 2-by-4s, but the person who builds a house with such things often gets a very good markup. Because people place much more value on the product he delivers than on the components from which it is made. Further, I submit that there will never be a shortage of software applications for people to work on, since we will forever raise our expectation thresholds for the functionality needed within programs. This in turn means that we will have to invent new components and even re-engineer the old ones as they become dated. All of this is just as true for any industry that society keeps vital through its demands. Since software spans virtually every industry, I see no need for you to worry that component standardization will finish the job once and for all. > The problem that I see is that there will be many areas where it would be > valuable for us to develop standard libraries of software components, but > there will be no economic incentives to do so. Even were this at all true, there are many organizations, even technical ones, which do things mainly for society's benefit. > Does anybody have any ideas on how to solve this problem, whether it is a > problem, or (better yet) references to papers that discuss it? Sony doesn't make a lot directly selling their media or miniaturized circuitry. They settle for market dominance in application areas: computer storage, consumer electronics, profession video, and so forth. The tree view is that they make this money from their competence in the underlying technology areas. The forest view is that they are good at drawing on these strengths to deliver well engineered, timely products in which they locate or develop solid demand. If you do sell non-standalone components, your only market is software developers. This market may be large enough to satisfy many entrepeneurs, but the applications market is insatiable. Remember, no one, in the figurative sense, wants an echo canceler but everyone wants a telephone, making it a popular target of both entrepeneurial and engineering talent. Easy to see why, isn't it? Bob -- Bob Weiner rsw@cs.brown.edu