I just read Eric S. Raymond's "The
Cathedral and the Bazaar" paper, which describes the Linux
development
model (the Bazaar) as he sees it and why it is superior to current
development
models (the Cathedral). It is an interesting read from one of the most
public
proponents of the Open Source movement.
Linux started in 1991, Eric got on board in 1993 when he
decided to
expand a
mail program which is now fetchmail. He used the fetchmail mailing list
to
encourage people to talk about and contribute to fetchmail, to bring to
it
features that people wanted. From this experience and from his
observations
of the Linux community, he has come up with some conclusions as to why
the Open
Source programming model works. There are a lot of observations, and
I'm
probably going to miss some, but here are some of the things I got out
of
the paper.
Basically, for any project the model is that a
coordinator (or group)
makes
sure that everyone remains informed. Developers are encouraged to make
their
own contributions, with the reward being greater recognition and the
thanks
of your peers (which can be quite heady gratification). People are also
encouraged to use the software, report any problems and make
suggestions.
It's important to have good communication. It's also
important to have
running
versions of the code. So that's what the coordinators are for. They
also apply
any changes and (depending on their judgement) fork the code as needed
to keep
different ideas going. I'm extrapolating too much. The important things
are to
have running code so that people can use it and work on it, and for the
coordinator to listen to the developers for good suggestions and for
any code
contributions.
Why does the Open Source model work? One reason is its
free-form style.
People
contribute because they want to contribute. They see something that
interests
them, want to fix it or improve it, and do it. They do it for the ego
boost,
whether it is knowing that they've contributed to a popular program or
the
thanks of users or seeing their name attributed to a project. This
motivates
people to not only put in a lot of time to make a fix/change, but also
to make
sure it's right, if only to avoid being embarrassed in front of his
peers.
|
I think that's the main reason that Open Source works.
You can't pay someone
to be enthusiastic, and enthusiastic people do the best work.
Knowledge, skill,
and ability also count, but in general people lacking in those things
know
enough not to make fools of themselves by getting in over their heads
(more
than a couple of times, at least).
Do I think this is the wave of the future? Let me make a
bit of a
comparison.
The Open Source movement, where people are motivated to contribute
because it
makes them happy (to help others, to get praise, to have a better tool
that
they can use) reminds me much of the world of Star Trek: The Next
Generation.
Captain Picard once said that without money and with unlimited energy,
people
were finally free to pursue what they truly wanted to do. People don't
stop
working, they instead find work that challenges them and makes them
happy,
helping make the Federation a relative utopia by today's standards.
So let's go back to the question, is this the wave of
the future? I
don't think
so, not in the near term. Not without solving world hunger and basic
wants.
Right now Open Source doesn't solve the problem that people still need
to make
money to survive in this world. Sure, people will contribute their
talents for
free, but most of those people already have regular jobs. Precious few
make
their money from writing Open Source software.
Maybe that's a bit harsh. The Open Source movement will
do great
things, and
the software is likely to be the most reliable software out there. But
I don't
think the computer industry will be able to switch wholesale to Open
Source
methodologies. Not without changing the way companies make revenue. If
you
can't make money from software sales, then tech support and consulting
become
your revenue streams. But you still need to pay the programmers, and
companies
that pay programmers have to compete with companies that don't,
providing the
same services for less because they don't have the programmer overhead.
|