The crisis in software: You’ve probably never heard of it, never given it a thought, but glimmers of the crisis are evident when your PC crashes with monotonous frequency despite the fact that your hardware is the burliest stuff on the market. When something goes wrong with your system, you just know it’s software-related — and it usually is.
All in all, though, as long as your word processor or spreadsheet or database program is functioning about the way you expect it to, you’re not thinking in terms of a "crisis in software."
The nature of the crisis was summed up neatly by software engineer and guru Brad Cox during a recent colloquium at Sandia. Cox, developer of Objective-C object-oriented programming language and author of several important books on programming and computer science, said the crisis is that software is too expensive, too scarce, of insufficient quality, hard to schedule, and nearly impossible to manage.
Cox was at Sandia to promote his concept of a way out of the crisis and to try to win converts among Sandia computer engineers and programmers for the concept, which is called "superdistribution." The idea of superdistribution was developed by a Japanese software engineer. Cox has become the chief champion of superdistribution in the US.
Sandia computer scientist Phil Campbell (6237), Cox’s colloquium host, notes that the term "superdistribution" self-consciously mimics the term "superconductive." "When a material is superconductive," Phil says, "it loses all resistance to the flow of electricity. When software is superdistributive, it loses all resistance to copying. Unlike copy-protected software, every [superdistributed] copy just means another paying customer. The rights-holder receives a fee when the software is invoked. This idea is also referred to as CopyFree software, pay-per-use software, invocation-based revenue collection, or just plain meterware."
How will superdistribution address the crisis in software? Cox said it will bring about what has been dubbed an "economy of bits," in which electronic property is bought and sold on the world market. It is the foundation of what Cox refers to as the "software industrial revolution."
A move to superdistribution, Cox said, will involve a major shift — from a process-centric way of thinking about software development to a product-centric model — and will enable programmers to "stop coding everything from scratch and begin assembling applications from well-stocked catalogs of reusable software components."
"A chasm separates hardware integrated circuits [ICs] and software ICs," Cox said. "These things have nothing in common except that both are made by people. The difference is best expressed in physical terms. Hardware ICs are made of atoms; that makes it easy to say ‘I own this.’ With software, there’s no point of similarity. Software is bits, not atoms, and bits abide by different laws, not the least of which is the law of the conservation of matter."
Atoms can’t be replicated; that simplifies ownership rights profoundly. Either you have the atoms or you don’t. With replicable bits, ownership is much more problematic.
As long as bits remain in ownership limbo, Cox suggests, the economic incentives that drove the industrial revolution will not occur in the software domain.
"The good news," Cox said, "is, this is a solvable problem. The bad news is that between us and the solution is a paradigm shift" — a shift from a cottage-industry approach to a mass-production, interchangeable-parts approach to software development.
"Today," Cox said, "almost all software is a custom product of a cottage industry. Can it ever be a manufacturable, mass-producible product? The question of ownership is at the root of the industry’s malaise."
Cox dismissed the idea that the software crisis is an inevitable, perhaps insoluble effect of the fact that software is intrinsically complex. He challenges this widely held premise. Software certainly feels complex, he said, but compared to other products, how complex is it, really?
Consider the pencil. And an early version of Microsoft Word.
He said eight programmers produced Word v. 3.0. All of the complexity of the product was managed by eight individuals. Now, take a look at the pencil. What could be simpler? In fact, Cox argued, the pencil is the almost perfect example of "perceived" simplicity. All the pencil’s complexity is hidden from view.
"A vast human network hides complexity successfully," Cox said.
The foresters, the lumberjacks, mill workers, miners, rapeseed-oil farmers, enamel manufacturers, and so on — all of these and scores of others deal with a complexity that far exceeds the comprehension of any one individual. And — this is critical — no one at any point in the pencil-making process need be concerned about the complexity that anyone else in the chain contends with. The mill worker doesn’t worry about where the wood came from — a lumberjack dealt with that aspect of the complexity. And the pencil maker doesn’t worry about how enamel is made; he just knows he needs yellow paint.
"Pencil makers have discovered how to bury complexity and we [programmers] haven’t," Cox said. Superdistribution, he said, offers the promises of similarly burying complexity. And — important — it doesn’t eliminate complexity (see the account about the pencil), it will just make complexity someone else’s problem.
"Superdistribution," Phil says, "will depend on a national (and international) infrastructure that will enable the protection of electronic property and the collection of revenues. Solutions from cryptography and digital payment systems will be important. Like our system of money, this infrastructure is in everyone’s interest to use but in no one’s interest to instigate."
So what part could Sandia play in moving to this new world?
"Government support," says Phil, "was critical in the instigation of industrial revolution principles for armaments, for example; the same support will be needed in this coming revolution. In Cox’s words, ‘Change is not driven by technological push but by consumer pull. The software revolution will not be driven by the software development community, just as the industrial revolution was not driven by the cottage industry gunsmiths. It will be driven by the consumers of software products, just as the consumers of ordnance products, the US government, drove manufacturing to interchangeable parts.’
"I’d like to see Sandia develop the national infrastructure supporting superdistribution," Phil says. "I think this qualifies as ‘exceptional service in the (inter)national interest,’ if I am permitted to play with a phrase. This would be a real feather in our cap."