Objects as Property

January 1997 Managers Column
IEEE Software Magazine

by Brad Cox (bcox@virtualschool.edu)
http://www.virtualschool.edu/mon
© Copyright 1996 by Brad Cox All Rights Reserved

Adapted from No Silver Bullet Revisted
American Programmer, Vol 8 No.11
Edited by Ed Yourdon
Cutter Information Corp (http://www.cutter.com)
Arlington, MA.
Copyright was retained by the author.

Cover Art


Superdistribution; Objects as Property on the Electronic Frontier by Brad Cox; Addison Wesley 1996; ISBN 0201502089; at Amazon.com and IBM InfoMarkets.

For many years I've struggled to understand a basic question in our business: why is the engineering and distribution of software fundamentally different from the engineering and distribution of other engineered objects? Brad Cox presents a unique answer to this question--an answer that could lead to a fundamental change in the way that software professionals view their creations and software marketers sell them.

--Roger Pressman


...as we look to the horizon of a decade hence, we see no silver bullet. There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.

--Fred Brooks

BROOKS' FAMOUS CONCLUSION seems obvious and inescapable to anyone immersed in the technocentric perspective of software's established paradigm. However, established paradigms can and do change, creating possibilities that were previously unimaginable.

I believe that superdistribution can serve as a new paradigm for the ownership of digital property. By creating a technological basis for buying, selling, and owning goods made of bits, we can move software engineering onto the same growth curve that hardware engineering has occupied since the industrial revolution. By providing a two-tier infrastructure for enforcing ownership of digital property, we can let software engineers assemble their products the same way hardware engineers assemble theirs, building upon other people's efforts instead of fabricating everything from first principles.

WOODEN VS. ELECTRONIC PENCILS. The new paradigm involves looking at software development from a humancentric instead of a technocentric perspective. For example, Leonard Read (I, Pencil, The Foreman Foundation for Economics Education, Irvington On Hudson, New York, 1956) shows that even mundane objects can be overwhelmingly complex inside. The apparent simplicity of a wooden pencil helps reveal the social system that makes its production seem easy. Pencils seem simple not because they are, but because a vast human network hides complexity successfully. Office supply clerks, truckers, distributors, foresters, lumberjacks, mill workers, miners, rapeseed-oil farmers, and enamel manufacturers--as well as those who provide the tools, supplies, housing, and food to support them--deal with a complexity that far exceeds the comprehension of any individual. Yet they do it so thoroughly that the rest of us have the luxury of believing that pencils are simple.

Contrast this with the pencil's digital counterpart, the word processor. According to Microsoft Word's project manager, the full complexity of early versions of that product were borne by a team of only eight programmers.

Let us consider the inherent properties of this irreducible essence of modern software systems: complexity, conformity, changeability, and invisibility. --Fred Brooks

The pencil example shows that complexity is not fundamental nor even essential. Rather it is a symptom of a much deeper, truly essential difference. Stated simply, software is made of bits whereas tangible goods are made of atoms. Atoms abide by physical laws, such as conservation of mass, that enforce the meanings of terms like buying, selling, and owning. But since these laws of conservation do not apply to bits, we must rely on man-made laws to supply what those of nature give our manufacturing colleagues for free.

SOMEBODY ELSE'S PROBLEM. The pencil example helps insert a crucial but slippery distinction into the software complexity debate. Although it may be academically amusing to contrast the absolute complexity of wooden and digital pencils, this doesn't really move the ball ahead. What does is realizing that encapsulated complexity is no longer complexity at all. It's gone, buried forever within somebody else's problem.

Pencil makers hide complexity so thoroughly because they have a robust way of giving sub-suppliers a financial incentive to do it for them: commercial-exchange transactions. This is what gives the office supply store its incentive to keep office workers from having to build their own pencils, the mill its incentive to hide milling's complexity from the office supply store, the lumberjacks the incentive to handle logging for the mill, and the miners, drillers, and farmers their incentive to handle their specialty so that everyone else in the pencil production pipeline needn't.

This complexity-hiding system is a human system, not a technical one. Yet it does its job so well that everyone else has the luxury of believing that manufactured goods are simple. If this human system didn't qualify as a silver bullet for the complexity of manufactured goods, I'd have to agree with Brooks that there is no hope for software engineering.

ATOMS VERSUS BITS. Manufacturing's complexity-hiding system is based on exchange transactions, which are in turn based on and protected by the fundamental physical laws that govern all things made of atoms. In particular, conservation of mass is an endogenous property of atoms themselves, not something that can be pasted on or taken away at will. Thus it applies not only to commercially significant top-level goods such as pencils, but to each and every one of the subcomponents from which pencils are composed.

The difficulty of replicating atoms makes it possible to build human systems that are recursive in a particularly powerful way. In effect, it ensures that each pencil stays connected to the global tree of human relationships that produced it. Conservation of mass guarantees that the faintest trace of graphite on paper draws the right amount of new production from lower levels of the production structure. Price signaling tells the graphite miner how much graphite to mine, the lumberjack how many trees to fell, the mill operator how many pencils to produce, and the store owner how many pencils to stock.

This production tree is an ecological system, just like a peach tree, that draws the right amount of raw materials from nature and transforms them into the right numbers, kinds, and amounts of amino acids, proteins, and sugars the tree needs to produce a commercially significant fruit. Such systems are recursive. Property rights aren't just enforced for the peaches, but with equal force through the leaves, twigs, branches, trunk, and roots. However, since goods made of bits do not adhere to physical conservation laws, the vessels inside our production structure trees get vapor lock. So the tree dies, or more precisely, never evolves in the first place.

Demand for computer software is extremely high right now. High prices encourage us to provide large-granularity computer software like word processors. But the smaller-granularity objects we might use to build them can be replicated without compensating their owner each time an application that relies on them is sold. So there is no incentive to persuade people to populate the lower levels of the tree. We all naturally gravitate to the highest granularity levels at which we can get paid. We all struggle to build large applications unaided, so production structure trees never evolve. Since supporting levels don't evolve, the entire task falls to the team at the very top of what would otherwise be a cooperative human pyramid. And we all gather at software engineering conferences to complain of the crushing complexity of our task.

ENDOGENOUS VERSUS EXOGENOUS. The problem isn't that we lack the money to buy reusable components. And it's not the infamous not invented here syndrome. The problem is that we have never invented a way of incentivizing others to hide complexity for goods that don't abide by physical conservation laws. Handling multigranular property as it flows through an elaborate structure of production chains becomes impossibly expensive when we must rely entirely on human laws (and the lawyers who implement them) to give meaning to core cooperative understandings such as property rights--specifically, what it means to buy, sell, or own property.

Since bits aren't subject to the endogenous physical-conservation laws of atoms, we have gotten into the habit of using exogenous protection instead. For example, when we encapsulate bits in cardboard and plastic to sell in a store, the cardboard and plastic is exogenous to the property itself. The same is true of newer cryptography-based approaches, such as the Software Publisher's Association's policies for distributing commercial software over the Internet. Since the property protection is exogenous to the goods being protected, the protection can be stripped off and discarded when the bits are unpacked for use. Which means the property is no longer protected at all.

MULTIGRANULAR VERSUS UNIGRANULAR. The pencil example shows that complexity is a symptom of a much deeper disease--so deep that Brooks neglected even to mention it in his proposed list of software's essences. Complexity is a symptom of the fact that the software industry has never figured out how to overcome the fundamental difference between software objects, which are made of bits and physical objects, which are made from atoms. Thus, we continue to perform poorly in relation to those who have. Although we do give an occasional nod to the advantages of software reuse, we haven't even started surmounting the messy problems of compensating those who provide software components to reuse.

It isn't that we've ignored property rights. A tremendous amount of attention has been paid to shrink-wrap license agreements, cryptography, and even hardware keys. But we've focused on ownership of unigranular property--the commercially significant fruit at the top of the production structure tree. This has encouraged us to believe that exogenous mechanisms are all we need, while overlooking that mechanisms that can be stripped off and discarded cannot support the multigranular markets that typify manufacturing in every domain but ours.

We cannot solve our problem as long as we address it only at the level of large-granularity computer applications. Unigranular protection technologies such as hardware keys, shareware unlocking technologies, license servers, and encryption don't enforce ownership of the smaller-granularity components from which large-granularity objects might be composed. Yet, paradoxically, large applications are the very level that least needs greater protection. Unlike small-granularity reusable components, applications can be protected by simply wrapping them in paper and cellophane for sale in ordinary industrial-age software stores.

OUT OF THE CRISIS. To escape the software crisis, we must follow the same path manufacturing does. We must build an endogenous ownership mechanism for software. Surprisingly, this is straightforward. Leaving tamper-proofing aside for now, endogenous protection can be as simple as this:

if (query(ProductID)) { /* query: is the user a paid up customer? */ 
	DeliverService(); 
	commit(ProductID); /* commit: record delivery */ 
} else { 
	DenyService(); 
}

The query() and commit() instructions rely on an underlying infrastructure to communicate usage information to a financial institution for billing. A suitably quick, cheap, and tamper-resistant infrastructure hasn't been built yet. However, this is hardly a major hurdle for an industry that makes the manufacture of 200 MHz personal computers and Web browsers look easy. The hard parts are tamper-proofing and fault tolerance, not functionality. These could be addressed in the short run by confining initial deployment to trusted markets and in the long run by implementing the infrastructure in silicon.

The exciting thing about this approach is that these two instructions outline a way to build an endogenous basis for ownership that is capable of the recursive, multigranular relationships that conservation of mass provides for tangible goods.

MEATSPACE VERSUS CYBERSPACE. However, building a technological basis for ownership is only the first step. We must also invent rules of just conduct for using whatever basis we do provide. This involves issues ranging from legal to commercial; from defining and enforcing legal rules of just conduct to discovering the precise commercial terms and conditions buyers will accept.

This human level of the problem becomes most apparent when considering rules of just conduct in the tangible world of everyday experience. Contrast the rules of just conduct between commercial buyers and sellers, between street gangs and victims, and between predators and prey in a rain forest. These vastly different social systems share the same underlying basis for ownership: conservation of mass. For example, in a predator-prey social order, prey doesn't even enjoy property rights to their own flesh. Yet conservation of mass nonetheless prevents the leopard from replicating its kill-- the way we can replicate software.

Clearly, the challenge of this new paradigm will be the evolution of a robust social infrastructure on top of whatever technical infrastructures we build This infrastructure would also make it possible to buy and sell information with a keystroke. What rules of just behavior should apply to such transactions? Can a buyer repudiate a transaction by claiming the click was accidental? Is it just for sellers to advertise one price and charge a higher one? Can sellers repudiate unjust sales by claiming their malfeasance was a bug? What distinctions will we make between an honest mistake, a misdemeanor, and outright fraud?

The infrastructure I'm proposing makes it feasible to buy and sell digital goods with any terms and conditions imaginable: pay-per-year, pay-per-minute, pay-per-save, pay-per-keystroke, and so on. Even today's pay-to-own terms and conditions would remain feasible, with ownership technologically enforced via invocation metering. But precisely which prices, terms, and conditions should vendors offer, and which set of conditions would be most desirable to the buyers they hope to attract?

Such questions are complicated, but answerable. Each is merely the electronic counterpart to questions we routinely confront in the tangible world of everyday experience. But cyberspace emerged less than a generation ago, which is not nearly enough time to even define--let alone build and deploy--a robust basis for ownership of digital property. And these technical issues are only the easy part compared to the social issues of building a true information age economy.

Isn't it time we got started?

References

[Brooks]
No Silver Bullet; Essence and Accidents of Software Engineering by Fred Brooks; Information Processing 1986, ISBN No. 0444-7077-3, H. J. Kugler, Ed., Elsevia Science Publishers B.V. (North-holland) IFIP 1986

[Cox]
Superdistribution: Objects as Property on the Electronic Frontier; by Brad Cox; Addison Wesley Publishing Company; ISBN 3D0201502089 (http://www.virtualschool.edu/mon)

[Gibbs]
Software's Chronic Crisis; Trends In Computing, by W. Wayt Gibbs; Scientific American; September 1994; Page 86

[Kuhn]
Thomas Kuhn, The Structure of Scientific Revolutions, University of Chicago Press.

[Read]
I, Pencil; My family tree as told to Leonard E. Read by Leonard E Read; The Foreman, 1956, Foundation for Economics Education Irvington On Hudson; NY 10533 (http://www.virtualschool.edu/mon/Economics/ReadIPencil.html)

[SPA]
SPA Releases Electronic Software Distribution Guidelines (http://www.spa.org/webdaily/atlanta/esd.htm)

About the Author

Dr. Cox is a faculty member of the George Mason University Program on Social and Organizational Learning (PSOL). He specializes in applying internet, television, and groupware technology to expedite collaborative learning experiences in the academy, home and office.

Dr. Cox is the author of "Superdistribution: Objects as Property on the Electronic Frontier", which proposes a technosocial solution to the problematics of buying, selling and owning property made of bits as distinct from the atoms. He also wrote "Object-oriented Programming, An Evolutionary Approach" which is often credited with launching today's industry-wide enthusiasm for object technology.

Dr. Cox received his Ph.D. from the University of Chicago for theoretical and experimental work in neurophysiology in an area that has since become known as neural networks. His post-graduate experimental studies were at the National Institutes of Health and at the Woods Hole Marine Biological Laboratories.

Virtual School Middle of Nowhere Brad Cox