|
And so I inherited popclient. Just as importantly, I inherited
popclient's user base. Users are wonderful things to have, and
not just because they demonstrate that you're serving a need, that
you've done something right. Properly cultivated, they can
become co-developers.
Another strength of the Unix tradition, and again one that Linux
pushes to a happy extreme, is that a lot of users are hackers too --
and because source code is available, they can be effective
hackers. This can be tremendously useful for shortening debugging
time. Given a bit of encouragement, your users will diagnose
problems, suggest fixes, and help improve the code far more quickly
than you could unaided.
6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
The power of this effect is easy to underestimate. In fact, pretty
well all of us in the free-software world drastically underestimated
how well it would scale up with number of users and against system
complexity, until Linus showed us differently.
In fact, I think Linus's cleverest and most consequential hack was not
the construction of the Linux kernel itself, but rather his invention
of the Linux development model. When I expressed this opinion in his
presence once, he smiled and quietly repeated something he has often
said: "I'm basically a very lazy person who likes to get credit for
things other people actually do." Lazy like a fox. Or, as Robert
Heinlein might have said, too lazy to fail.
In retrospect, one precedent for the methods and success of Linux can
be seen in the development of the GNU Emacs Lisp library and Lisp code
archives. In contrast to the cathedral-building style of the Emacs C
core and most other FSF tools, the evolution of the Lisp code pool was
fluid and very user-driven. Ideas and prototype modes were often
rewritten three or four times before reaching a stable final form. And
loosely-coupled collaborations enabled by the Internet, a la Linux,
were frequent.
Indeed, my own most successful single hack previous to fetchmail was
probably Emacs VC mode, a Linux-like collaboration by email with three
other people, only one of whom (Richard Stallman) I have met to this
day. It was a front-end for SCCS, RCS and later CVS from within Emacs
that offered "one-touch" version control operations. It evolved from
a tiny, crude sccs.el mode somebody else had written. And the
development of VC succeeded because, unlike Emacs itself, Emacs Lisp
code could go through release/test/improve generations very quickly.
(One unexpected side-effect of FSF's policy of trying to legally bind
code into the GPL is that it becomes procedurally harder for FSF to
use the bazaar mode, since they believe they must get a copyright
assignment for every individual contribution of more than twenty lines
in order to immunize GPLed code from challenge under copyright law.
Users of the BSD and MIT X Consortium licenses don't have this problem,
since they're not trying to reserve rights that anyone might have an
incentive to challenge.)
|