The old-time Unix culture has largely reinvented itself in the
open-source movement. Doing so saved us from extinction, but it also
means that the problems of open source are now ours as well.
One of these is how to make open-source development economically
sustainable. We have reconnected with our roots in the collaborative,
open process of Unix's early days. We have largely won the technical
argument for abandoning secrecy and proprietary control. We have
thought of ways to cooperate with markets and managers on more equal
terms than we ever could in the 1970s and 1980s, and in many ways our
experiments have succeeded. In 2003 the open-source Unixes, and their
core development groups, have achieved a degree of mainstream
respectability and authority that would have been unimaginable as
recently as the mid-1990s.
We have come a long way. But we have a long way to go yet. We
know what business models might work in theory, and now we can even
point at a sporadic handful of successes that demonstrate that they
work in practice; now we have to show that they can be made to work
reliably over a longer term.
It's not necessarily going to be an easy transition. Open
source turns software into a service industry. Service-provider firms
(think of medical and legal practices) can't be scaled up by injecting
more capital into them; those that try only scale up their fixed
costs, overshoot their revenue base, and starve to death. The choices
come down to singing for your supper (getting paid through tips and
donations), running a corner shop (a small, low-overhead service
business), or finding a wealthy patron (some large firm that needs to
use and modify open-source software for its business purposes).
One important subproblem related to the increasing difficulty
of sustaining really large software businesses is how to organize
end-user testing. Historically, the Unix culture's concentration on
infrastructure has meant that we have not tended to build programs
that depended for their value on providing a comfortable interface for
end-users. Now, especially in the open-source Unixes that aim to
compete directly with
Microsoft and
Apple, that is changing. But end-user interfaces need to be
systematically tested with real end users — and therein lie some
challenges.
Real end-user testing demands facilities, specialists, and a
level of monitoring that are difficult for the distributed volunteer
groups characteristic of open-source development to arrange. It may
be, therefore, that open-source word processors, spreadsheets, and
other ‘productivity’ applications have to be left in the
hands of large corporate-sponsored efforts like OpenOffice.org that
can afford the overhead. Open-source developers consider single
corporations to be single points of failure and worry about such
dependencies, but no better solution has yet evolved.
These are economic problems. We have other problems of a more
political nature, because success makes enemies.