GeekArticles
XML
Core XMLThe Power of Free
Author: oreillynet.com |
Published: 14th Jul 2006 |
Visited: 369 times |
Add CommentFiled in: Core XMLM. David Peterson and I host a regular podcast, eXplorations, and most recently spent
sometime discussing the open source movement and the underlying “business case” for open
source. Mark (the M. side of his name) usually tends to argue the proprietary source
side of things, while I tend to argue the open source side, and while things can get
fairly intense in our discussions - as for any two people on different sides of a
contentious issue, the rhetoric can get heated - we do this largely to discuss some of
the deeper aspects of the programming world that we (and our audience, hopefully)
occupies.
Mark most recently brought up one of the core questions that anyone asks of open source,
and one of those that is perhaps most relevant to any of us with mortgages and kids to
feed: “Where is the value proposition in open source for the programmer? Where’s the
business model for actually making this work pay?”
Preparing a Laptop
It’s a good question, and one that no doubt many people who work on open source projects
are inclined to ask when they’ve just spent the last week working on their cool OSS app
and are now both desperately behind in the paying side and the rent check is due. How do
you make a living doing what you think is right?
I’m going to flip that around a little bit. I picked up a new laptop recently, a Toshiba
(my personal favorite). Installed on it was a pre-installed version of Windows XP Home
Edition, a recovery disk in case I hosed the OS (not the actual copy of Windows, mind
you, just a recover disk). I’m planning shortly to put a Linux distro on it, either SUSE
or quite possibly Ubuntu, shortly, but I need to have a basic Windows test environment
to play with for my own commercial endeavors.
Significantly, there wasn’t a huge amount of pre-installed software on the laptop -
Microsoft One Note, which has become the de facto replacement for MS Works, a DVD
player, some DVD burning software, that was pretty much it. The assumption was that I
likely had a whole shelf full of DVDs (or CDs) full of really useful software. As it
turns out, I do have a pretty full shelf of such software, some in big fancy sturdy
boxes that you could use as shielding for nuclear reactors, but as to how much of its
useful … quite honestly, there isn’t a lot. In many cases, the companies that produced
the software no longer exist. In the case of those that are still around, the current
version of software is easily three or four major revisions from what exists there.
Yet for all of that, I was up and running on my laptop within a day of buying it, writing
both software for a couple of companies and working on chapters for a couple of
technical books. Even on Windows, I find that those products that are most useful to me
are the ones that I’ve never paid a dime for, while those that are still being paid off
on my credit cards have long since been consigned to the CD graveyard (consisting of
vaguely phallic looking spikes on circular stands that end up becoming the repository
for any number of fairly useless products).
These are not all Open Source, mind you. One of my primary tools is Oxygen, which does
cost a couple of hundred dollars retail, but favors that I’ve done over the years keeps
me in current copies. Open Office 2.0 is free, and works fine for me, which is saying
something since I am a professional writer. I use a developer version of Visual Studio,
write most of my Java code using Eclipse, use an SVN repository for version control and
do most of my graphical development in Gimp (though I do have an older Photoshop version
I did acquire several years back that I fall back on). My vector graphics are rendered
in Inkscape, and I’ve been using both OOo and Scribus to do my newsletter layouts.
Now, I’m a programmer, though I have to readily admit that I’m a writer as well. I live
and die by my tools. If I need a piece of software to accomplish something very
specialized that I couldn’t find suitable elsewhere, I’d buy it. But I find it
intriguing that I’ve managed to get by for quite some time without having to buy
anything, money that I’ve saved that can in turn go into upgrading my hardware or even
occasionally take my family on vacation. So even as a developer, I can readily claim
that I benefit disproportionately from free software that others have written.
Now, as both a writer and a programmer, I also produce software. Some of it (much of it
in my case) comes in the form of code samples for articles and books, solutions to
problems that other programmers can use to both learn and adapt. In some cases, I get
paid for these articles, in some cases they emerge as a natural part of my blogging
efforts, but in either case I willingly produce this same open source code. I also work
fairly heavily in promoting open source and open standards technologies, in making sure
that work by other developers that I feel is worthwhile does get noticed. Thus, in my
own quiet ways, I do pay for the code that I use with code that I produce.
The Case for Pro-Bono
Now, this is where things get a little more intriguing. I suspect that I am probably not
unique among programmers in making these efforts for “free” software. You take a look at
any mailing list or forum, and while you see a great deal of “how do I do this?” you
also get a fair number of answers to that same question.
Now, in a typical market, this idea of going out and giving away these snippets for free
might seem ludicrous - it’d be like a lawyer going out and telling others advice that he
would ordinarily charge hundreds of dollars an hour for.Yet, even lawyers have this
concept enshrined in the operating ethics of the profession - pro bono publicam,
for the good of the public, a term that’s usually reduced to pro bono work. Such
work is done because it recognizes that in a healthy society, wealth by itself should
not be the only factor insuring access to the legal system. Note that while its unlikely
that such pro-bono work makes up the whole of any lawyer’s activity (not if he wishes to
continue in the profession) it can make up a fairly significant minority of such
activity, when spread over time.
It also pays off, albeit not necessarily in immediate currency. A lawyer with a
significant amount of pro-bono work in his resume is far more likely to be picked up for
a judgeship, it can be of significant value if one enters into politics, and it is not
unknown for people who needed that pro-bono work at one point in their life to come back
years later with paying work, or providing referrals to others, or provide other favors
in return when they get the opportunity.
A lawyer (or a programmer) tends to have advantages others don’t — high intelligence,
drive, opportunities, etc. (analytical ability, creativity, the ability to work at an
abstract level in the case of programmers) that mean that the value of what they can do
in general tends to exceed what others without those advantages can do, though that also
tends to be the case for specialists in most fields. Yet the curious thing is that if
you look at most such skilled professions, you find that there is something like the pro
bono concept, a tacit recognition that “with great powers come great responsibility” (to
quote Spiderman).
There’s also an aspect of barter here - I’ll help my mechanic with a website one day and
he’ll knock off a few hundred dollars of labor the next time my failing car decides to
cough up a part of itself on the highway. It’s hardly a strict accounting, nor should it
be. Value is a fluid concept at best, and returning a favor for a favor usually places
upon both the tacit recognition that so long as the value is roughly equivalent, it is
best not to quibble about the details. There are consequences to this as well - if I do
someone a favor and they don’t eventually reciprocate in kind, I will stop doing them
favors. It’s also why you should always be respectful about such indebtedness, because
these favors occur within the immediate network in which you live and work, and as such,
stinginess on your part can in general reduce the value that you receive in return from
the network.
Note that last word: network. Programmers in this day and age understand networks
in a way that only perhaps systems engineers or mathematicians understood them a few
decades ago. Open source software, pro-bono work, whatever you want to call it, is
really only effective if you have a network within which to cast it. Most of the paid
consulting work that I do comes anymore from the “free” work that I did and published,
and usually comes from directions that I couldn’t even begin to anticipate. In that
respect, producing open source software is much like a savings fund - you put money into
it then forget about it, but it accrues interest that you are not necessarily aware of
(albeit not much in this day and age of still fairly low interest rates), and if you
need it, the extra money is there.
Open source as a value proposition only makes sense within the backdrop of an Internet,
because this ultimate network insures that, while a disproportionate number of people
may benefit from your work, you’ll also get back requests for elaboration or
customization from customers (note the similarity of those two words) that would never
have occurred if you kept the code locked up. Open Source solutions are typically
solutions to problems that the programmer him or herself encountered, and the customer
(who in general probably can’t produce this code on their own) will typically wish to
adapt this code to fill his or her need, usually in exchange for money.
Diminishing Rewards vs. Increased Expectations
Ooops! There’s that money word again. A few quick thoughts about the state of the
software economy are in order. Fifteen years ago, the software market was saturated. A
few companies had pretty effectively cornered the market in most areas then reachable
given the power of PCs, and more than a few pundits of the time bemoaned how difficult
it was to make a living in software. Then the Internet came charging out of nowhere,
bringing in its wake a powerful (and evolving) distribution system that dramatically
expanded the boundaries of the networks people dealt with, something that is still
having repercussions. Certainly a few people saw it coming, but most didn’t.
The problem, though, with this phenomenon was that it changed the expectations of people
who came of age in this era. They came to see an event that was in its way more powerful
than television or radio or telephony or telegraphy (because it could incorporate all of
them among other reasons) as being “business as usual”. Yet short of either telepathy or
teleportation, there isn’t really much more on the horizon that will have the same
impact as the Internet. Web 2, or whatever its called this week, involves making a jump
in abstractions, which may have some reverberating effects, but even there what changes
isn’t qualitative, only qualitative.
So, back to those entrepeneurs in 1991 … four years later the gold-rush was on, as new
niches opened up, as people began putting together core pieces. The great
business-to-business revolution was supposed to have happened in 2000, yet halfway
through 2006 we’re still trying to get all of the protocols working together.
Shrink-wrapped boxes first lost the stores where they were sold from to be sold instead
from Internet sites and Fedex, then lost the boxes to be sent via links from web
portals, and are now losing the portals and are instead whirling around cyberspace in
torrents. There are something on the order of fifty thousand projects on Source Forge,
and similar numbers in other repositories. If even one in ten of these projects were
viable (a not unrealistic estimate) that means that there is software to do everything
from creating grocery lists to scheduling rocket burn times for space flights.
Much of it exists because this same favor for a favor mentality has met the other aspect
of the Internet - it becomes remarkably difficult to lose anything, even if it was done
five years ago half a continent away. Things persist, and because they persist moribund
projects can suddenly come to life again (hello, Firefox!) as new people bring new
energy to projects. These projects go through fits and starts, but they do improve over
time. If they improve enough, others pile in to help it, to push it forward even more.
Pay very close attention to Scribus, for instance - I think this one’s going to go
somewhere big.
However, this also works against the “modern” concept of planned obsolescense which
underlies much of (especially American) contemporary culture. We’re used to the idea
that something only has value if its been recently produced, and there is something
vaguely declasse in having something that’s reconditioned or rebuilt. In situations
where the new product is demonstrably better than the old, this makes sense, and I
suspect that it was generally true throughout much of the 1990s as the technology core
on which most of these products were built evolved. Today, however, the market has
shifted away from the notion that the customer has real needs that cannot be met with
existing software to the notion that the companies must produce software in order to
keep in business, even if the market is no longer strong enough to support that software
in the face of so many competitors.
There is a sense of entitlement here that borders on the delusional. Companies can only
exist if they can service the needs of their customers, and if alternatives exist out
there that are cheaper, better, faster, then customers will use those alternatives.
Combine that with a huge body of legacy code that’s continually being mined and improved
by open source developers who want or need new features, and you see in this the recipe
for serious economic problems. The market in general has become extremely oversaturated
in most sectors, and while there may be some new “breakout” technology that will
introduce a phase shift yet again, its unlikely that it will have the paradigm wrenching
power that the Internet’s emergence had.
The notion of software as a service, while a fairly novel delivery approach, is actually
likely to only worsen this problem. What ends up happening here is a question of mass
customization - being able to create software that in fact is able to be customized
readily by the customer directly, minimizing even the customization revenue streams.
Such software is not hard to write - in fact increasingly it is becoming the
preferred way of writing software, and because of this there will be many more
losers out there in the marketplace who will choose to open source their software
instead in order to gain residual network effects.
In other words, the market as it stands is far more likely to increase the amount of open
source software than to retrench away from it, to the extent that the manufacture of
such software increasingly gets to be seen as an offensive or defensive go move
for market awareness and perception rather than as a product to be produced in its own
right.
Is Open Office a Success?
This in turn gets back to the corporate motives for going into Open Source. Open Office
is a prime example of this type of effort, and one that Mark and I debated in the
podcast. Open Office was, for Sun, a strategic gamble, not a product purchase. They
wished to significantly weaken the degree of entrenchment that Microsoft had in the
Office space, which was essentially Microsoft’s cash cow. For Sun the investment was
comparatively cheap - they took a fairly marginal office suite and revamped it, making
it available for a fairly small fee. More significantly, they also open sourced the
effort from the get-go, with the understanding that this OSS version would essentially
serve as the beta R & D version.
Overall, the effort has been extraordinarily successful - they’ve made back the purchase
price of Star Office and quite a bit beyond from licensing deals, they’ve effectively
outsourced their own R & D to the developer community, who of course, have their
own reasons for wanting a transparent office suite, and perhaps more significantly they
have seriously disconcerted Microsoft in the space that the Redmond company previously
was convinced they’d secured, providing inroads for other companies (and projects) to
continue to weaken Microsoft at their strongest point.
Has it made Sun the billions that Microsoft has made from Office? No. Not even remotely.
On the other hand, it has seriously compromised the ability of Microsoft to make
billions more off of a product that, even by more traditional software standards, is
extraordinarily long in the tooth. It has given Sun the ability to get into markets that
would otherwise have been closed to it, and it has opened up to Sun a fairly significant
developer community that are at least now marginally familiar with Sun’s offerings.
A few years ago, there was a lot of writing about the Reputation Economy, stating that
reputation would in fact end up being the currency of choice on the web. I think that
this notion is a little off. What you see emerging instead is the Obligation Economy,
one which can at first glance be confused with the former, but which is both
fundamentally different and a little bit darker. The reputation economy is based upon
the idea that the more well known you are, the more power that you have. The problem
here is that the net is not a political contest. People like Linus Torvald are fairly
powerful because they have created immense reserves of obligation - they have done the
world a favor, and more than a few people feel indepted by that favor and are working
very hard to pay it on, in effect creating secondary networks of obligation (indeed, if
you look closely at the GPL, what you see is in effect the codification into legal
contract the whole notion of obligation).
The obligation economy was well known to the Romans - as indicated by orations by Cicero
and others - and is still the currency of choice in most political circles. Power does
not come from money, but from the obligations that comes about by the intelligent use of
that money. This is part of the reason why some people can turn a couple thousand
dollars in seed money into a multi-billion dollar business, while other people can win
the lottery and still be broke within a year - the first group use the money to build
webs of obligation which can in turn be used to build other webs, the second group tends
to squander the money on material possessions that do not significantly change their own
web of obligations, save perhaps to drive away the valuable ones while simultaneously
attracting people only concerned with money.
Thus the value proposition for either an individual developer or a corporation in
producing open source software, while seemingly nonsensical in the short term, becomes
much more evident in the long term - using that software both as a means to change the
web of obligations on and from the person or company in question and to use that to gain
other competitive edges in the marketplace. It’s nice to think that OSS is based
fundamentally on altruism, but its also naive, just as pro bono work is not (purely) an
altruistic motive for a lawyer. I do not doubt that altruism plays a part, but there’s a
cold, hard, economic reality at work here as well, just one that can’t necessarily be
immediately measured in dollars.
Thus, I think it reasonable to say that Open Source software is emerging not because of
altruism but because of logical pragmatism in a market that is oversaturated with legacy
applications that nonetheless still find users to sustain and continue them. It means
hard slogging for many pure software companies … I think the prospects for Microsoft
moving forward are actually quite dim, largely because their whole company orientation
is still built around the sale of software as a privileged entity at a time when even
mass customization has at best only a few more years as a viable solution. Add into this
the large pool of pirated software and cracking rings that only have become more
entrenched and difficult to stop as the distribution systems have themselves become more
distributed, and the “Software Industry” as a whole is likely to be struggling for many
years yet, sustained only by the occasional “disruptive technology”.
Towards Mass Customization
Now, having said all that, and just to take out a little bit of the sting from the pain,
this is not specifically an indication that the average programmer is going to find
himself serving fries with that Happy Meal any time soon, something that I think
demonstrably is not the case. My take on “mass customization” is that it is, and will
remain for some time, an oxymoron. Computers by their very nature automate those tasks
that are intrinsically repeatable within constraints. When you deal with higher orders
of abstraction, the constraints themselves become more complex, to the point where they
in turn require more sophisticated developers to be able to apply them.
This is where I see the industry heading overall - the base software becomes freely
available, but the need for people with the skills to customize that software also
rises. Now this runs counter to the way that most corporations, especially those that
are “software vendors”, operate. Customizations generally don’t scale. This means that
your programmer’s work to solve a given problem for one customer cannot be turned into a
solution for another customer without paying that programmer for the second
customization.
Microsoft was able to leverage software scaling to an incredible degree in the 1990s,
such that the same piece of work produced by a few hundred software developers could
effectively be sold millions of times over. Just as a ballpark figure, let’s define the
code utilization factor (S) as the number of copies sold divided by the number of
software developers involved. I’d put Windows 98 at somewhere in the area of S =
500,000, which is a very sweet multiplier, indeed. I suspect that Vista will likely have
an S in the neighborhood of 10,000 or so — many more developers, coupled with
considerably slower sales of new PCs, which account for the bulk of all new Windows
licenses sold, as well as a general perception that XP is actually good enough for most
people.
Admittedly, most companies, even large companies, would kill for an S of 10,000, but the
decline is significant, and indicative of the industry overall. Blockbuster games might
occasionally get high S values in the neighborhood of a million or so, but games also
fall more into the entertainment model than the software industry model, a model where
the creative talent is far more important than the engineering talent. Most other
commercial software products out there have an S in the neighborhood of 100 to 1000 or
so (again, just as a guess, knowing what I do of the industry - I’m trying to put
together more empirical numbers now). SOAS will, likely briefly, push a few players up
into the fairly rarified area of 5000 or so, largely because SOAS (typically) require
fewer people to develop, and consequently benefit from an effect of scale, but that also
implies rapid replicability (others getting into a successfully opened market) and
frequently is also extraordinarily sensitive to faddishness (don’t buy MySpace.com stock
anytime soon, unless you’re looking for a massive tax write-off).
However, the long term effect of the current trends is to point to far more companies
having S values in the neighborhood of 1 to 100, largely on the strength of
componentization. That is to say, programmers will develop customizations that they can
utilize across clients (if they are intelligent) so that they can service a number of
clients in a comparatively small period of time. Note that this isn’t necessarily an
indicator of profitability. An S of 1 means that a programmer has one and only one
client, but that client could pay hundreds of thousands, or even millions, to that
programmer, and if a company has an S less than one, it only means that there are
multiple programmers assigned to a given client, on average. However, in order to be
profitable in that particular scenario, the pay rate per programmer has to be
considerably higher than average as well - forcing software costs to go up.
Thus, even in the open source environment, there are considerable pressures that will
likely keep software companies successful as long as they can adapt to a low S regime.
Things that can be automated largely will be, over time, which implies that software
services (customization, not software AS a service) are far more likely to be the norm
in the coming years. I think that periodically you will have lottery events - someone’s
backroom software project will take off and become an incredible success - but these
should be treated in much the same way that one treats the lottery - someone will
occasionally win, but playing the lottery tends to be a bad investment strategy for
retirement.
Summary
I hadn’t really intended to write this essay, and apologize to those of you who had to
slog through it, but overall I think it does manage to articulate a lot of what I see
happening right now in the software industry, both proprietary and open. There is a
tendency that most people have of looking at the momet that they are in as being somehow
unique and privileged, but I am inclined to say that we are rather more accurately about
midway through a process that’s been underway for nearly twenty years and that will
likely stretch for another twenty, that is shaping the interactions between society and
the computer/Internet combination. I believe that the “software industry” as we know it
is a transient phenomenon, and that the relationship between those who create software
and those that use software is a still evolving one - a relationship that likely will
end up being far stranger than any can predict. As more things become digital (and this
includes life itself, given the increasing power of genomics) resolving this
relationship may very well prove to be one of the most significant social issues that
we’ll have to face in the years ahead.
Kurt Cagle is an author, technologist and software architect
living in Victoria, British Columbia.
Read Article Sponsored Links
Related Articles
• OpenSocial: The Power of Social Networks in Your Applications What is OpenSocial and how can you use it to build web applications that leverage the power of social networks? Find out while going from a basic example application in a local sandbox to a full-featured application deployed in a live contai ...
• Toatl free space and largest extents Hi Tom,
I am new to this blog. I have one doubt regarding fragmentation.
select TABLESPACE_NAME,
sum(BYTES),
max(BYTES)
from dba_free_space
group by TABLESPACE_NAME;
If we give this query we will get sum(BYTES)- ...
• The Joys and Dangers of Impedence-Free Societies A couple of weeks ago, when I was in New York for the AJAXWorld conference, the city welcomed me with a major downpour most of the time I was there. The metaphor about storm clouds building over Wall Street wa ...
• Download the Free Web Application Security eKit: Discover how IBM Rational AppScan Standard Edition can help you detect vulnerabilities in your Web applications in the Web Application Security eKit. IBM Rational AppScan is a leading suite of automated Web application security solutions that scan and test for common Web application vulnerabilities. ...
• Review: Money for Content and Your Clicks For Free In this article, Steve reviews JD Frazer's (User Friendly Cartoonist) book on turning web sites, blogs, and podcasts into cash. The book includes a lot of useful knowledge for any developer/bloggers seeking to earn some income from their online writ ...