- Shopping Bag ( 0 items )
Software As Capital looks at software development through the eyes of a capital theorist, an economist fascinated by the constant evolution of new and better tools and processes. It asks, what is really happening in software development at the concept level? Why has programming practice evolved as it has? Why are certain tools and methodologies superior to others? What will it take to bring dramatic improvement to the industry? Answers lie in capital theory and the evolution of capital goods.
The concept that designing capital goods is a social learning process leads to interesting conclusions about software process models and methodologies. The book examines the main failing of the software industry when compared to other industries: the absence of an extensive division of labor for software components. It sets out the reasons for the problem, an outline for the solution, and the benefits that will result from its solution.
Men, my brothers, men, the workers, ever reaping something new, That which they have done but earnest of the things that they shall do.
For I dipped into the future, far as human eye could see, Saw the Vision of the world, and all the wonder that would be. -Tennyson, "Locksley Hall"
BETTER TOOLS INCREASE THE WEALTH OF NATIONS
The research underpinning this book was motivated by the same question that motivated the first great book on economics, An Inquiry into the Nature and Causes of the Wealth of Nations, by the "father of economics," Adam Smith, published in 1776. The question: how do we account for human beings' economic advancement? How is it that our race of talking primates has been able to advance from barbarism to abundance (at least in certain areas of the world)? What is the nature of the process by which we are able, over time, to get more and better of the "necessaries and conveniencies of life," as Smith put it, for the same amount of effort?
Economists agree on the broad answer to that question: we advance in economic well-being in three main ways. The two more apparent of these are:
increasing productivity per person, and
These depend on another, more foundational element:
evolving appropriate social rules of just conduct.
By increasing productivity per person, we generate more goods with a given effort; by extending trade, we share those goods among ourselves in a more satisfying way. Appropriate social rules of just conduct make the first two possible: to the extent that a society has reasonably well-articulated and enforced standards of promise keeping (sanctity of contract), respect for the possessions of others (private property), and equal treatment of all (the rule of law), productivity can increase and trade can expand.
We will focus on the first of these three requirements for improving well-being and ask, how does a society improve its productivity, its ability to produce more of the things it wants with a given amount of human effort? A moment's reflection suggests how important a question this is: Through most of human history, and in much of the world today, most people suffered hard physical labor every day of a short life to produce subsistence amounts of food, clothing, and shelter. We in the modern developed West work fewer hours, with our minds or with machines for the physical work, in comfortable conditions; yet we produce an abundance of luxuries unknown to kings and queens of old-hot and cold running water, music at the touch of a switch, fresh fruit in midwinter. When our nation began, a couple of centuries ago, it took 75 percent of the population to produce enough food for all. Today it takes less than 3 percent of our population to feed all of us and many in other lands. What makes these wonders possible? How does a society become so productive?
It does so by increasing its knowledge of productive relationships and building this knowledge into better tools-better devices which extend people's physical, perceptual, and mental faculties for producing things we want. This book is about the dual process of increasing our knowledge and building it into better tools.
Of course, we may improve productivity by working harder, but the effect of greater exertion is far less than the effect of using better tools. In a task such as reaping grain, for example, even the most heroically increased exertions of a barehanded reaper yield far smaller productivity gains than merely using a steel sickle. Also, we may improve productivity by producing greater numbers of the same kinds of tools, but here again the effects fall far short of the effects of building better tools. Even if we were to equip everyone in the village with a steel sickle, productivity at harvest time would fall far short of what it would be if we were to equip only one worker with a John Deere grain combine. Better tools, then, are the key to greater productivity. For a society to improve its productivity, that society must improve the quality of its tools-its capital goods.
We use capital goods in production, which is a matter of transforming our condition from a less-preferred to more-preferred state. Lacking divine power to create something from nothing, when we produce we are really rearranging physical stuff into a form we prefer. What transformations will answer our purposes, and how to carry them out, are the crucial questions. Any capital good, any "produced means of production," is going to be some kind of embodied knowledge of what to do and how. Capital goods, then, are saved-up learning which helps us produce.
How does a society improve the quality of its capital goods? In what manner do we manage to generate and "save up" new knowledge of useful transformations? What is the nature of the process, and what is involved in the process? These questions will be explored in what follows.
THE EVOLVING CAPITAL STRUCTURE
Because I am a social scientist writing for a software engineering audience, there is a danger that 111 assume my readers understand what I mean by certain terms, when in fact they don't. With that in mind, let us step back a moment and consider an extended illustration of the essential economic concept that provides context for everything else I will discuss in this book. That concept is evolving capital structure.
When economists speak in general of the "capital structure"-sometimes known as "the structure of production"-we mean that complex and far-flung pattern of interacting tools, processes, and raw and intermediate goods that people use in producing things. This pattern or network, very like a vast ecosystem of overlapping food chains, is constantly evolving, as the people within it develop new tools, processes, and the corresponding raw and intermediate goods to feed them. There are two key points to keep in mind, which the following example is intended to illustrate: a) The system as a whole is complex beyond comprehension, b) The system is constantly in flux, constantly evolving.
In order to begin to appreciate the evolving capital structure, and to make sure that I will be understood when I speak of it, let us consider one change in one piece of it, which I happened to observe in the late 1970s.
We begin with milk on the breakfast table. Milk is a "consumption good" because we consume it directly when we drink it or pour it over our cereal. As a consumption good, milk is one of those goods that the capital structure exists to produce. The whole point of the capital structure, after all, is to produce for us the things we want to consume or otherwise enjoy.
The milk on our breakfast table is itself the result of a long, complex production process, in which many tools, processes, raw, and intermediate goods are used. All those tools, processes, raw, and intermediate goods constitute "the milk capital structure," or the structure of production of milk. Let us trace a part of it.
We note in passing the grocery store building and refrigeration where we bought the milk (and all the bricks and mortar, compressors, and refrigerants involved there, as well as all the tools and materials that went into producing them). We keep in mind the delivery trucks, the dairy (and the paper mills that made the milk cartons and the logging tools used in harvesting the trees that became the paper), the pasteurizer, and the milking machines. We acknowledge the cow herself, of course. All of these, and all of the tools and processes that produce or support them, comprise parts of the capital structure for milk. If we were to attempt to trace the capital structure involved in the production of milk, we would have to trace all of these various contributing streams of intermediate goods and the tools that operate on them. Clearly, it is not possible for anyone to comprehend, or even be aware of more than a small portion of this endlessly ramifying structure at any one time.
The cow needs hay to eat through the winter months. The high-producing cows at the premium dairies eat prime alfalfa hay. How is alfalfa produced on a large scale? Of course, there are cutting machines, or swathers; there are balers to bale the hay, machines called harobeds that pick up the bales and stack them, and there are the trucks that carry the bales from the hayfields to the dairies. All these are part of the capital structure that puts milk on our tables. But, before the hay grows, at least on the big ranches in Lovelock, Nevada where I was a hired hand a couple of summers, the fields have to be irrigated.
Their irrigation water comes from the Humboldt River, which flows from the Ruby Mountains down to the Carson Sink, where what is left of it evaporates in the Nevada sun. Along the way, ranchers divert it into irrigation ditches and irrigate by letting the water flow into the high end of a gently sloped field. Irrigation ditches are thus part of the capital structure for milk. If the field is fairly flat, and sloped at the right pitch for the soil type, the water flows out evenly over most of it. But, of course, fields don't come naturally sloped and perfectly flat, so there is always work to do to get irrigation water to soak a whole field evenly.
Until the late 1970s, they channeled the water in the fields with levees, long mounds of dirt a couple of feet wide and about eighteen inches high. These ran the length of the fields, about twenty to thirty yards apart. When water was let into the fields through the sluice gates at the high end, these levees would channel the flow down the length of the field, preventing the water from running sideways too much. There was a special machine we would draw behind a tractor, called a levee builder, that built up and maintained the levees.
Of course, the levees were a nuisance. Alfalfa wouldn't grow on them because they didn't get any water, so their whole surface area was lost to the harvest. And, when harvest time came, the hands driving the swathers had to be careful neither to get so close to the levees as to damage them, nor to stay so far away that they missed hay along the edges (I know: I drove a swather one summer and I hated the levees).
By the next summer, however, the capital structure of alfalfa production (and hence of milk production) had evolved. The fields had been "laser-planed," and all the levees were gone. Here's how it worked: Skilled operators set up a laser on a rotating spindle at one end of the field. They calibrated it exactly so the plane of laser light it emitted sloped at exactly the inclination they wanted the field below it to have. Then they brought in the laser plane itself, a big machine with a large scraping blade at the bottom and a reservoir of good topsoil inside. At the top of this machine was a light sensor that would detect the laser. A system of electronics and hydraulics transmitted a signal from the laser sensor to the machinery in such a way that when the field sloped down slightly, causing the laser to strike a bit higher on the sensor, some topsoil would be pushed out of the reservoir. Conversely, when the field sloped up too high, the scraping blade would engage and shave it down.
With the lasers, electronics, and hydraulics set up properly, an unskilled hand could perfectly flatten and slope a 40-acre field by pulling the laser plane along behind a tractor, back and forth freely over the entire field. After laser planing, and without any levees, irrigation water released at the high end of a field at the right rate would flow out evenly and soak in to just the right depth over the whole field.
The effect on productivity was striking. No levees meant hay grew over every square inch of the field. There were no more minutes lost at harvest time as we slowed the swathers to make sure the levees weren't damaged and no more uncut strips along them where we stayed away to play it safe. There was no time spent repairing levees between growing cycles. Hay could now be produced more cheaply, meaning milk could be produced more cheaply.
Old tools and processes had been replaced by new and better: The capital structure had evolved. Maintaining evenness of irrigation with levees and levee builders had given way to doing so with laser planes. That part of the unimaginably extensive set of tools and processes that contribute to putting milk on our breakfast tables had changed for the better.
I have focused on the changeover from using levees to using laser planes only because I had first-hand experience with it. Undoubtedly, almost every other area of the structure of production of milk was evolving then, too, and has evolved continuously in the twenty years since I worked at the ranch. Swathers and balers are being improved, as are the trucks that ship the hay. The dairy is becoming more efficient, as is the grocery store and the refrigeration it uses. Capital structure evolution is a constant of our lives, though we may be blind to it or take its wonders for granted.
There is one other point to make before we leave this introductory example. That is, capital structure evolution usually involves increasing the complexity of the structure. When Nevada ranchers used levee builders to assure (relatively) even irrigation, they used a steel levee builder that operated on mechanical principles. When they went to laser planing, they used machines that incorporated advanced optics, chemistry, electronics, and hydraulics, as well as steel and mechanics. All the capital structure that went into building, calibrating, and producing lasers now became part of the capital structure of milk. The system became more complex. The pattern is similar in virtually all fields of enterprise: Improvements in productivity result from the capital structure evolving into increasingly complex and potent patterns of interaction.
CAPITAL GOODS AS KNOWLEDGE
To inform our examination of the process of capital development, we look in this section at capital itself. We will do so from the perspective of the Austrian School of economics. Unlike conventional, mainstream economics, Austrian economics stresses the role of knowledge in the economy, the importance of time and uncertainty, and the challenge of maintaining coordination among people with very different knowledge and purposes. (For a discussion of why mainstream theories of economic growth are unsuitable to this investigation, see Appendix A.)
There is a fundamental relationship between knowledge and capital. Indeed, capital is embodied knowledge of productive processes and how they may be carried out. Different varieties of knowledge are involved, as well as different kinds of embodiment.
Carl Menger, the first of the great Austrian economists, stresses the role of knowledge in human economic advancement. Fundamental to his thinking is that knowledge is embodied in capital goods. It is not enough just to understand physical laws and processes; we must apply this knowledge to tools and devices with which we can direct those processes to our purposes. He writes, "The quantities of consumption goods at human disposal are limited only by the extent of human knowledge of the causal connections between things, and by the extent of human control over these things" (1981, p. 74). To provide themselves with an ample supply of warm clothing, for example, early humans had to develop the knowledge that wool could be spun into yarn and the yarn woven into cloth. But further, if they were actually to have woolen clothing they had to apply this knowledge so as to "control" the wool: to spin it and weave it successfully into cloth. This knowledge of spinning and weaving they built into spinning machines and looms-capital goods for wool production.
In virtually all human production (other than gathering wild berries in open fields, and even there we often bring a pail or a box to carry them in), we employ capital goods-tools-for the purpose. Much of our knowledge of how to produce is found not in our heads, but in those capital goods that we employ. Capital is embodied knowledge.
Excerpted from Software as Capital by Howard Baetjer, Jr. Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.
CHAPTER 1: Knowledge Capital and Economic Growth.
BETTER TOOLS INCREASE THE WEALTH OF NATIONS.
CORE CONCEPT: THE EVOLVING CAPITAL STRUCTURE.
CAPITAL GOODS AS KNOWLEDGE.
CAPITAL GOODS AND DIVISION OF KNOWLEDGE ACROSS TIME AND SPACE.
DESIGNING CAPITAL GOODS AS A SOCIAL LEARNING PROCESS.
CHAPTER 2: A Short History of Software Development.
OVERVIEW: FROM RESOURCE CONSTRAINT TO COMPLEXITY CONSTRAINT.
THE KEY CHALLENGE: COORDINATING DISTRIBUTED LEARNING.
THE EVOLUTION OF PROGRAMMERS CAPITAL GOODS.
OBJECT-ORIENTATION AND SOCIAL LEARNING.
CHAPTER 3: Designing New Software Capital.
DISCOVERING WHAT THE SOFTWARE MUST "KNOW": WHY PROTOTYPING.
DESIGNING AS UNDERSTANDING: THE ROLE OF TOOLS FOR THOUGHT.
INTERMEDIATE GOODS FOR DESIGNERS: REUSABLE COMPONENTS AND PATTERNS.
CHAPTER 4: Designing Evolvable Software.
EVOLVABILITY AS A DESIGN GOAL.
EVOLVABILITY THROUGH MODULARITY.
DESIGN PRINCIPLES THAT YIELD MODULARITY.
GENERAL COMMENT ON MODULARITY AND SOCIAL LEARNING.
ACCELERATING EVOLUTION THROUGH SOFTWARE REUSE.
CHAPTER 5: Extending the Software Capital Structure: The Promise of Component Markets.
THE ECONOMIC PARADOX OF SOFTWARE CAPITAL.
NEEDED: MARKETS FOR INSTANCES RATHER THAN FOR CODE.
ASPECTS OF COMPONENT MARKET EVOLUTION.
LEARNING THROUGH MARKETS.
CHAPTER 6: Summary: Foundations and Implications for the Software Development Industry.
A HISTORY OF COPING WITH INCREASING COMPLEXITY.
IMPLICATIONS FOR THE DESIGN PROCESS.
IMPLICATIONS FOR DESIGN CHARACTERISTICS.
IMPLICATIONS FOR THE FUTURE OF THE INDUSTRY.
APPENDIX A: Irrelevance of the Mainstream Theory of Economic Growth.
PROBLEMATIC ASPECTS OF TRADITIONAL GROWTH THEORY.
MISSING STRUCTURAL ELEMENTS: COMPLEMENTARITY AND INDIVISIBILITY.
SHORTFALLS IN THE "NEW GROWTH THEORY" OF PAUL M. ROMER.
APPENDIX B: Applicability to Hard Tools.
PROTOTYPING AND SOCIAL LEARNING.
MODULARITY AND EVOLVABILITY.