March 10, 2003

Software should be shared as freely as the time of day

- By Robert M. Lefkowitz -

I'm reading Time Lord, a book
about the creation of standard time towards the end of the 19th century. I find that
it makes me re-examine a lot of the things I take for granted. Like how you answer the
question: What time is it?
Upon entering larger stations where a transfer between lines might be necessary, American
passengers would study clocks set along a wall behind the ticket counter, each announcing the
time standards of competing "roads". The clocks would not read "New York", "Chicago",
"New Orleans", and "Cincinnati", but rather "Erie & Lackawanna", "New York Central", and
"Baltimore & Ohio".

Prior to the creation of standard time, time was a proprietary concept of the railway companies.
The "Erie & Lackawanna" time, say, could be twenty minutes earlier or later than the "Baltimore & Ohio" time.
Which certainly complicated making connections -- because if your train
arrived at 10:00 am, and your connection left at 10:30 am, you might only have ten minutes
to get from one to the other. Or more. Or less. Hard to tell.

The reasons for this bizzarre (to us) situation were perfectly plausible and understandable
to people living at that time. And this book chronicles the difficulty of changing the
system to make time a concept that could be shared between different companies and countries.
And what does that have to do with information technology?

Well, in the IT community, we've been talking about reuse for years.
Reuse (like time) is asymmetric. If I reuse software, what's in it for the person (or company)
whose software I plan to reuse? Or should I plan to only reuse my own?
In the latter case, it means I'm going to write everything myself. Is that really reuse?
In the former case, I suppose I'd have to pay for the privilege.
But what if there was nothing that exactly met my needs? How would I go about modifying it?
Or convincing the owners to modify it? And what if they didn't want to?
I'd probably wind up either living with something which wasn't what I wanted,
or giving up and starting over.

Maybe "reuse" is the wrong word to describe the concept we're talking about.
Perhaps a better word is "sharing". The way to develop and use
software more effectively is to "share" it with others. Sharing (like space) is symmetric.
If I share your software, you're sharing my software.
And that seems to be twice as powerful as one-way "reusing".
If it's not exactly what I want, you might let me modify it, because maybe you want to share some of the
features I plan to put in. And maybe you'll help me modify it, because you want to share some of my
software. Because software (like time, but unlike space) can be infinitely shared.
If I want to spend five minutes singing, I don't lose any time if you
also want to spend the same five minutes singing. In fact, no matter how many other people want to spend
those same five minutes singing, mine last just as long.

On the other hand, they can't all sing in
my shower. Space may be infinite, but we can't all share it.
But no matter how many copies
you make of my software,
it doesn't diminish my capacity for extracting what value I can from it one whit.
So software is more like time than space.
( Which is a good thing, because they say that time is money, and space is empty. But I digress).

If we start calling it "sharing", instead of "reusing", it changes the tone of the exposition.
For starters, "sharing" is a much more high-minded, noble, and ethical thing than "reusing" which
sounds more hackneyed and shopworn. And it sounds better precisely because it signifies that
there is a reciprocal understanding -- in order to share, you have an obligation to contribute
as well as consume. And your contribution becomes available for others to build upon -- increasing
value for all. Think, too, of the difference in morale. Do you want your talent to be reused? Or do you
want to share your expertise?

Before I start being accused of impractical idealism, I'm going to point out that this is a very
capitalist idea. A few months ago, I heard the Peruvian economist Hernando de Soto speak
about how capitalism is an economic system that emerged when
institutions were developed that enabled people to share risk and capital.

Investment banks and venture capitalists raise capital from lots of individuals or institutions
and let them share ownership of companies (that's why we buy and sell "shares").

Insurance companies let people share risk. Everybody contributes a premium, and most people
expect (and hope) that they won't get a payout.

In a society where people are unwilling or unable to share (capital, ownership, risk),
you can't build a modern industrial society. In order to combat communist insurgents in Peru,
they had to create the social and legal institutions which would permit people to build
up a free market economy, and have a stake in the system.

The legal protections surrounding fair sharing are what make a free market possible.

So if it is impossible to build large multinational corporations without institutions
for promoting fair sharing, it doesn't seem terribly far-fetched (or idealistic - even) to suppose
that it might not be possible to build truly large, robust, secure, technology infrastructure without
the same kind of sharing. Just as the amount of capital required to build something
like, say, the Chunnel might exceed the resources of any single institution -- and require
sharing, the amount of intellectual capital required to build systems that are
ten or a hundred or a thousand times more complex than today's systems might exceed what
any single company will be able to bring to bear. Especially if we want these systems to be more
secure and fault-tolerant than the systems we use today.

And the enabling social force, the software equivalent of the concept of corporate governance
or GAAP, which allows that kind of sharing to take place fairly, is the GPL
-- the software license that basically says, "if you share mine, I get to share yours".
Which is what we do with time. We would find (parts of) the following sentiment absurd:

Every self-respecting town on the continent had a right to its own newspaper, its own baseball or
cricket team, and its own individual time.

I'd like to think that 150 years from now, when people are looking
back at the history of information technology, they'll be confused about how
different companies could have thought that it made sense
not to share software.

How much value can you generate by sharing software?
Well, in the case of Free/Open Source software,
estimates for the value generated by people sharing the source code of Linux run over
a billion US dollars, and growing.

At Merrill Lynch, we have established an Open Source Review Board whose purpose
is to assist people in evaluating the software they develop and use in order to determine if
there are effective alternatives that would enable them to share -- not only benefiting
Merrill Lynch, but the community we live and work in, as well.

Robert (a/k/a r0ml) Lefkowitz is Director of Open Source Strategy for Merrill Lynch.


  • Open Source
Click Here!