home *** CD-ROM | disk | FTP | other *** search
/ ftp.umcs.maine.edu / 2015-02-07.ftp.umcs.maine.edu.tar / ftp.umcs.maine.edu / pub / WISR / wisr4 / proceedings / detex / lavoie.detex < prev    next >
Text File  |  1992-04-05  |  17KB  |  367 lines

  1.  [12pt] article  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.   Increased Productivity Through Reuse: 
  11. An Economist's Perspective 
  12.  
  13.   Don Lavoie, Howard Baetjer, and William Tulloh 
  14. Center for the Study of Market Processes 
  15. George Mason University 
  16. Fairfax, VA 22030   
  17. agorics@gmuvax.gmu.edu 
  18.  
  19.    
  20.  
  21.  
  22.   
  23. From the economic viewpoint, increased software reuse seems
  24. to depend on these factors:
  25.  
  26.   
  27.  
  28. continuing development and use of the modularization
  29. techniques of encapsulation and information hiding in order
  30. to save on maintenance costs
  31.  
  32. division of programmer labor into increasingly
  33. specialized areas, accompanied by area-specific tools,
  34. frameworks, and reusable components
  35.  
  36. investment in a healthy reuse environment, including
  37. market-based management structures that address the
  38. communication, discovery, and incentives problems, and the
  39. increased use of component libraries and/or markets
  40.  
  41. property rights regimes that appropriately balance
  42. producer and user interests.
  43.  
  44.  
  45.  
  46.   Introduction 
  47. Widespread reuse of software components has long been
  48. advocated as a key to increased productivity and
  49. better quality software.  In addition, markets in reusable
  50. components have been seen by some as an important element in
  51. realizing these improvements  .
  52. While much progress
  53. has been made in addressing the relevant technical factors,
  54. it has become increasingly apparent that organizational,
  55. cultural, institutional, and economic factors must also be
  56. addressed in order to reap the gains from wide-scale reuse.
  57.  
  58. Among the important technical advances have been developments in 
  59. abstraction mechanisms, modularization
  60. techniques and object oriented technologies.  
  61. These technologies promise to play an important role in helping to
  62. realize the benefits of reuse by enabling alternative ways
  63. of packaging software through modular construction.
  64. Software developers will be able to take advantage of
  65. economies generated by the increased division of labor and
  66. capital,  while maintaining the flexibility needed to adapt
  67. to changing requirements and demands.  Some of the benefits
  68. taht are seen as deriving from reuse include lower
  69. development costs, reduced time of development, greater
  70. predictability of budget and schedule, and lower maintenance costs.
  71.  
  72. The Agorics Project, a team of researchers at the Center for the Study of 
  73. Market Processes at George Mason
  74. University, is now engaging in a comprehensive study of the
  75. software components industry.  Our study will examine the
  76. interaction of these technological advances with the
  77. institutional and economic factors that will affect the
  78. development of a vigorous software components industry.  In
  79. particular we will investigate the possibility of markets in
  80. reusable components.
  81.  
  82.   Modular Construction and Object-Oriented Technologies 
  83.  
  84. Many different visions of markets of software
  85. components have been proposed, based on a wide variety of
  86. abstraction mechanisms and resulting definitions of
  87. components.  Our own investigation is taking a rather
  88. inclusive view of the possible scale and nature of these
  89. components, but we see object-oriented methods as an
  90. indispensable part of the move to reuse.  The more modular
  91. methods of software development that result from the
  92. adoption of object-oriented technologies promise to provide
  93. a dramatic increase in the reuse of components and
  94. frameworks.
  95.  
  96. A key aspect of object-oriented programming in
  97. encouraging reuse is the support of encapsulation.
  98. Encapsulation of domain abstractions allows for greater
  99. reuse of others' experience.  Information hiding through
  100. encapsulation also eases the task of integrating different
  101. components.  Mark S. Miller and K. Eric Drexler have
  102. liked encapsulation in object-oriented programming to the
  103. discovery by programmers of property rights over data  .
  104. They write, ``encapsulation in software serves the same
  105. crucial function as property rights in human affairs: it
  106. establishes protected spheres in which entities can plan the
  107. use of their resources free of interference from
  108. unpredictable external influences.''  This modularization of
  109. data and action helps provide greater flexibility in the
  110. reuse of software components.
  111.  
  112. One great virtue of property rights in markets is the
  113. ability to rearrange them in response to changing
  114. circumstances and in order to meet new demands.  Similarly,
  115. object-oriented methods promise better maintainability and
  116. evolvability through encapsulation and information hiding.  The modular
  117. nature of object-oriented development encourages
  118. reuse by facilitating alternative packaging of functionality
  119. across different applications, allowing
  120.  a wider variety of
  121.  user requirements to be met.  In addition, modular
  122.  construction allows greater scope for reuse in sequential versions of an
  123.  application by facilitating quicker response
  124.  to changing user requirements through time.
  125.  
  126.   The Structure of Production of Software 
  127.  
  128. Reuse in software involves a shift to a more 
  129. capital-intensive software development process  .  The
  130. accumulation
  131. of capital is the accumulation of knowledge and experience.
  132. Capital goods such as components, frameworks and designs
  133. embody domain knowledge, while tools, environments and
  134. methodologies embody knowledge that aids in the solution of
  135. recurrent software development problems.  Effective reuse
  136. must build on prior experience and adapt this knowledge to
  137. constantly evolving needs.  To achieve large gains in
  138. productivity and quality from reuse will require reuse
  139. across a variety of developers and organizations.  New 
  140. software communities   must emerge that enables large-scale
  141. cooperative reuse.
  142.  
  143. Traditionally economists have seen increased
  144. productivity as resulting from the increased complexity of
  145. the structure of production -- the extension of the
  146. division of labor and greater use of capital.  Software development, 
  147. however, is still based largely on a model of craft
  148. production.
  149.  
  150. Craft production has certain advantages; most important
  151. among them is its flexibility in adapting to rapid change
  152. and in customizing the product to meet specific needs.  Human capital,
  153. the skills and experience of programmers, represents the main 
  154. source of reuse, as well as the main
  155. source of creativity and flexibility.  But a reliance on specialized
  156. human capital can be risky: wide diversity in skills, high 
  157. programmer turnover, and the expense of training and
  158. education, all limit the effectiveness of this
  159. form of reuse.  More importantly, however, this form of
  160. production does not scale up well in its ability to cope
  161. with more and more complex software projects.
  162.  
  163. A common solution to this problem in other industries
  164. has involved a shift from a complex production
  165. process to a more complex structure of production.  Rather
  166. than build in a single complex stage with multipurpose human
  167. capital, the idea is to build a complex series of simpler
  168. stages with more specialized human capital.  The increasing
  169. division of labor is aided by the division of tasks into
  170. easily manageable units, and by the standardization among
  171. resulting static advantages of the division of labor: 1.
  172. increased mechanization -- the substitution of capital goods
  173. for human capital 2. reduction in the amount of human capital (skill) 
  174. required for each task due to the increased
  175. routinization of tasks, and 3. economies of scale in
  176. manufacturing.
  177.  
  178. But software is not amenable to traditional scale
  179. economies of mass production.  Software development requires
  180. greater flexibility than is offered by the efficiency gains
  181. in standardized manufacturing processes.  In software,
  182. development, not manufacturing, is of the essence.
  183. Moreover, attempts to benefit from an increased division of
  184. labor are often overwhelmed by coordination and
  185. communication problems  .
  186.  
  187. What is needed is the ability to maintain the
  188. flexibility and creativity of the craft approach, while
  189. reaping the gains in productivity due to a greater division
  190. of labor and a greater use of capital, thus enabling more
  191. complex software projects to be undertaken.  Such an
  192. approach which some have termed ``lean production'' as
  193. contrasted with craft and mass production, must focus on the
  194. dynamic advantages of division of labor and capital  .
  195. These advantages come from the more effective use of
  196. knowledge and enhanced learning that accompanies such
  197. coorperative efforts.  The advantages can be found in: 1.  the
  198. increased rate of discovery of product and process
  199. improvements 2. the move from human capital to knowledge
  200. embodied in capital goods seen not as a dumbing down of
  201. production, but as a freeing up of human capital for
  202. application on the margin of improvement, and 3. economies
  203. of scope, not of scale, in development from the sharing of
  204. resources and experience across multiple projects  .
  205.  
  206.   Investment in Reuse 
  207.  
  208. To realize these benefits requires new organizational
  209. and institutional responses to the increased division of
  210. labor and capital.  Changes in the technological structure
  211. of production must be accompanied by changes in the
  212. institutional structure of production.  A variety of
  213. property right regimes, contractual relationships, and
  214. management structures must be explored to solve problems
  215. that arise with the communication and incentive that
  216. coordinate different stages of the production.  The forms
  217. that will emerge depend on tradeoffs between various
  218. institutional and technological solutions to these
  219. coordination and communication problems.
  220.  
  221. One important change that arises is the need to ensure
  222. an adequate return on the investment required in developing
  223. and maintaining the capital asstes necessary for wide-scale
  224. reuse.  This problem emerges whether reusable components are
  225. produced within or across firms.  In fact,  the problems
  226. within firms can often be usefully analyzed as analogous to
  227. problems in the market.
  228.  
  229. Investment in reusable software requires that software be managed as a
  230. valuable asset, and that the necessary organizational support be given to
  231. ensure a chance at an adequate return on the investment. This requires a long
  232. term commitment by management, including investment in the complimentary
  233. assets (infrastructure), and changes in evaluation criteria and reward
  234. structures. One of the key problems facing the firm is how to provide
  235. appropriate incentives for both the creation and use of reusable components,
  236. and assuring adequate communication of what components are available.
  237.  
  238. Much work on reuse has dealt with the most appropriate repository for reusable
  239. software components. Advances in search techniques and classification schemes
  240. provide an important area of research in improving access to components.
  241. Technological advances can help reduce the transaction costs of search: such
  242. techniques as browsers, hypertext navigation, classification methods, software
  243. agents, and good old librarians can all play an important role.
  244.  
  245. In addition to such improvements in library technology, increasing attention
  246. is being paid to the organizational incentives and communication flows needed
  247. to maintain a flow of reusable components into the library and a flow of
  248. reusable components to projects when and where they are needed. Repositories
  249. by their nature are not well suited to providing useful incentives. The
  250. problem arises of how to allocate the costs of building and maintaining the
  251. library among the various projects that use components from the libraries.
  252. Software, of course, is not subject to wear and tear, but it is subject to
  253. economic obsolescence. Continual investment is required in the maintenance of
  254. value to user. Rewards for useful contributions to the library and rewards for
  255. making use of the library need to be a fundamental aspect of project
  256. development.
  257.  
  258. Libraries as a shared resource serving many masters can be viewed as what
  259. economists call a commons. The problem is the opposite of the usual story of
  260. the commons; the problem is not the danger of overgrazing a fixed supply of
  261. pasture, but of ``undergrazing'' reusable components due to the lack of
  262. incentives and information regarding what makes for good reusable components,
  263. and when it is appropriate to use them. Care must be taken in setting up the
  264. appropriate rewards for contributions, and in reducing the costs of accessing
  265. and learning about the contents of the libraries on the part of users.
  266.  
  267. Electronic markets also offer a potential solution to the problem of
  268. affordable access to a wide variety of reusable components. Libraries are
  269. essential passive; they wait for users to come search them. Electronic
  270. markets, in contrast, reflect the active matching of buyers and sellers.
  271. Component vendors have an economic incentive to produce useful components
  272. and to reduce the transaction costs to users of gaining knowledge of and
  273. access to components. We can imagine the emergence of component brokers who
  274. try to match available components to developers' needs.
  275.  
  276.  
  277.   Property Rights and Markets in Reusable Software 
  278.  
  279. Many barriers must be addressed before vigorous markets in reusable components
  280. will emerge. Problems of importance include the limited extent of the market
  281. due to lack of standards, language incompatibilities, and domain specificity,
  282. and the need to establish certification, testing and reputation mechanisms.
  283. The biggest challenge facing the emergence of markets, however, is
  284. establishing appropriate property rights regimes which can balance producer
  285. and user interests. Entrepreneurs must discover combinations of attributes and
  286. functionality that users value (and means of delivery which keep low the
  287. transaction costs to the user) and price them so as to earn profits. The
  288. challenge to establishing markets in software components lies in finding the
  289. institutional and technological solutions which allow producers to be
  290. adequately rewarded, and ensure users receive quality software in a timely and
  291. affordable manner.
  292.  
  293. The ease with which software can be copied signals the difficulty of defining
  294. property rights in software. Component pricing policy, and the very nature of
  295. what is bought and sold, may well be shaped by tradeoffs between legal and
  296. technological means of protecting intellectual property. Current developments
  297. in patent and copyright law may determine what types of reusable components
  298. may be bought and sold. In addition to intellectual property law, liability
  299. issues in regard to reusable components are also an important issue that must
  300. be addressed, but as recent Nobel Laureate Ronald Coase has argued, this too
  301. is at root of a question of ownership  .
  302.  
  303. We need not depend entirely on legal means; as experience from other
  304. industries has shown us, there exists a wide array of possible means of
  305. appropriating sufficient return on the investment in intellectual property. In
  306. addition to legal solutions, there are a variety of technological and
  307. marketing options that have worked in other industries. The solutions most
  308. appropriate for different kinds of granularities of software components should
  309. emerge as markets evolve.
  310.  
  311.  
  312.    mcil68 
  313.  
  314. McIlroy, M. D. (1968) ``Mass Produced Software Components'' in P. Nauer and
  315. B. Randall (eds.)    Software Engineering , NATO Science Committee, October.
  316.  
  317. Brooks, Frederick (1987) ``No Silver Bullet: Essence and Accidents of Software
  318. Engineering''    Computer , April.
  319.  
  320. Cox, Brad (1990) ``Planning the Software Industrial Revolution''   
  321. IEEE Software ,
  322. November.
  323.  
  324. Miller, Mark S. and K. Eric Drexler (1988) ``Markets and Computation: Agoric
  325. Open Systems'' in B. Huberman (ed.)    
  326. The Ecology of Computation , North-Holland.
  327.  
  328. Wegner, Peter (1984) ``Capital-Incentive Software Technology''    
  329. IEEE Software ,
  330. 1:3, July. See also Ludwig M. Lachmann (1956) Capital and Its Strucutre
  331. Kansas City: Sheed Andrews and McMeel.
  332.  
  333. Gibbs, Simon, Dennis Tsichritzis, Eduardo Casais, Oscar Nierstrasz, and Xavier
  334. Pintado (1990) ``Class Management for Software Communities''    
  335. Communications of
  336. the ACM , September.
  337.  
  338. Brooks, Frederick P., Jr. (1975)    
  339. The Mythical Man-Month: Essays on Software
  340. Engineering , Addison Wesley Publishing Co.
  341.  
  342. Womack, James P., Jones, David T., Ross, Daniel, and Carpenter, D.S. (1990)
  343.    The 
  344. Machine That Changed the World  New York: Maxell MacMillan International.
  345.  
  346. Cusamano, Michael A. (1991)    
  347. Japan's Software Factories: A Challenge to U.S.
  348. Management , Oxford university Press, pp. 427-28.
  349.  
  350. Coase, Ronald (1960) ``The Problem of Social Cost''    
  351. Journal of Law and
  352. Economics , October.
  353.  
  354.  
  355.  
  356.   About the Authors 
  357.  
  358. Don Lavoie is Associate Professor of Economics at George Mason University.
  359. He is a leading critic of centrally planned economics and co-director (with
  360. Mark S. Miller) of the Agorics Project, a research effort sponsored by the
  361. Center for the Study of Market Processes and aimed at investigating issues
  362. that overlap between computer science and economics. Howard Baetjer and
  363. William Tulloh are graduate students in the Economics Department at George
  364. Mason University and members of the Agorics Project.
  365.  
  366.  
  367.