Why do you do it?

Giorgos Keramidas keramida at ceid.upatras.gr
Mon Nov 1 15:21:01 PST 2004

On 2004-10-30 06:30, Joe Warner <rootman22 at comcast.net> wrote:
> As far as the FreeBSD user community goes it's a no-brainer for me, FreeBSD
> touts a long list of reasons why someone interested in UNIX, computing,
> programming and/or networking would want to use it.  However, I've always
> wondered what motivates the FreeBSD Developers.  The general explanation I've
> heard is "Because we get to work on projects we're interested in as opposed
> to profit-based projects imposed by our employers which we may or may not be
> interested in."  Is it that simple or does it go deeper?  Why do you do it?
> What motivates you?

I hope this isn't too long.  The quoted material is copied verbatim from
Poul-Henning's article.  The comments below the quoted stuff are mine.

: I guess the closest we get to anything of the sort is the "FreeBSD: tools
: not policies" catchphrase which I coined some years ago (heavily inspired by
: the Software Tools concept, which you can read more about in Peter's book).

To understand why someone would contribute to FreeBSD, it's first important to
understand why someone would *use* FreeBSD.  The greatest majority of FreeBSD
contributors are also users of the system itself.

Here's a list of reasons for using FreeBSD that I have been able to write down
during the last few days:

- Appreciation of quality.  This works in multiple levels:

  . As a user, for having a quality system to work with.  This includes a wide
    range of FreeBSD characteristics, but the most visible are: the excellent
    documentation (manpages, sgml docs, other documents), the featureful base
    system, are all important reasons why a user would prefer FreeBSD.

  . As an administrator, for having a stable system that Just Works(TM).
    The flexibility of the installation procedure, the documented detailed
    instructions for updating or upgrading an installed system, are details
    that make administering FreeBSD a lot more fun than other UNIX systems.

  . As a developer for having a system that is organized in a logical manner.
    The clear separation of the base-system vs. third-part applications,
    machine dependent vs. machine independent features, the well-known BSD
    platform, and the availability of the system source are all details that
    make developing on or for FreeBSD a very pleasing experience.

  . All the above together.  When combined, all the details listed above, the
    tiny little fragments of every day life with FreeBSD, make it the system
    of choise for many people.  I know they do for me.

- Tools.  FreeBSD has been useful to me.

  . As a workstation: I'm too addicted to the UNIX way of doing things -- to
    the point of being frustrated when I have to sit in front of the pretty
    point-and-click randomness that some people like calling a 'desktop'.
    FreeBSD lets me work the way *I* want, any time.  When I feel like using a
    GUI, a GUI is there for me.  When I don't, it's gone.  Simple and nice.

  . As a network server, firewall, NAT gateway, etc.  Some will argue that all
    these can be done with other UNIX systems too.  The advantages of FreeBSD
    in this area are many though, speed and stability being almost invariably
    the two most important ones, followed by the great number of network
    related features the system has (netgraph, ipfw, dummynet/natd, bridging,
    ipfilter/ipnat, pf, altq) or the excellent support of networking
    standards, etc.

- Education.  Learning by reading the work of others.  Just having the source
  of some-random-kernel version 1.2.0 doesn't count.  The history and the
  rationale of the changes made, set forever in stone in a CVS tree, browsable
  and searchable with standard tools is very important too.

- FreeBSD is UNIX.  I have used UNIX systems almost exclusively for doing my
  every day work since about 1994.

  At times, I had to work in other environments too.  The comfort level of
  UNIX beats all of those I've tried so far, any day, easily.

  I hate it when I have to work with non-UNIX platforms, because I feel like
  being constantly delayed and put back by the limitations of the system: you
  can't use more than 13 characters for names of files, directories cannot nest
  more than a couple of levels, the filesystem is dog-slow unless you run a
  defragmenter, there is no way to create a disk image without specialized and
  very expensive software, you can't put more than a few hundred files in the
  same directory before the whole thing crawls to its knees, ... and the list
  goes on forever.

  No, thanks!  I'll take my UNIX any day.

- Licensing reasons.  GPL may be good if you plan to `conquer the world'.
  Doing real work, in a real business environment, is easier if you don't have
  to worry about the possibility of being forced to open source everything
  your company has ever done.

- Community.  I meant to write a post in my weblog entitled "Why Attitude
  Matters", describing why I think the attitute of the FreeBSD users and
  developers played an important role in my initial choise of FreeBSD as my
  favorite OS.  I never quite finished it, but I'm still collecting notes,
  searching for interesting messages in my mail archives and so on.

  It will be a while before I have something resembling a complete article,
  but in the mean-time let me say just this:

        Apart from very rare cases, everyone I've corresponded in the years
        I've used FreeBSD (both members of the team and not) has been very
        gentle, understanding and *helpful*.  I can't stress the last word too
        much.  _Very_ helpful.  Despite the fact that they don't have to.

  Giving back to a community like this feels absolutely great.  It's the best
  way to become a part of this group of talented, smart, gentle community that
  treats newcomers with respect.

: Why am I sitting here at ten in the night, writing a column for an e-zine
: that I don't know when will come out next?  Why did I even volunteer to
: co-write this column in the first place ?

Optimistic expectations.  Making a contribution to an open source project is
always based a bit on the expectation of "making a positive difference".

This is something that cannot be done so easily with commercial UNIX OSes.
When you buy a UNIX system from a vendor like Sun, HP or whoever, you get a
`product'.  The roadmap of improvements, the design of future directions, the
changes that are made and the features that will eventually get implemented
are usually chosen by the `big customers'.

In FreeBSD, every user, even the newbie who has installed the system yesterday
and tries to read through the Handbook but gets confused, has a chance to make
a positive difference to the system: by submitting a question, by posting a
bug report, by suggesting features, etc.

Having the impression that the evolution of FreeBSD *can* be influenced by
every user, if they put the time and effort to do something, is what works as
a trigger to make the users really *do* something.

: I have been close to quitting the project a couple of times over the years.
: But each time, emails from friends and strangers and the soft seducing song
: of code needing improvement have lured me back.

The first part of the closing sentence above rings a familiar bell to many of
us, the contributors to open source projects.  Some times, the reasons why one
contributes are linked with social life.

There is a great deal of truth in the last part of the above sentence too,
which I'm sure Poul-Henning put there intentionally, but might go unnoticed if
one hasn't worked with FreeBSD people for a while.  It can be put into words
as a simple phrase that characterizes a great percentage -- the overwhelming
majority -- of the developers that are members of the FreeBSD team:

        The obsession with quality.

If there is something that is broken (or, at least, that they consider broken)
the FreeBSD developers have a huge, irresistible urge to fix it.  Here is then
the second sort of motive for contributing to an open source project: all the
technical reasons.

: I guess that gives me personally an answer: I bother because I can make a
: positive difference in FreeBSD and have some fun with friends and likeminded
: individuals while doing so.

That's the meat of it.  Technical and social reasons.

: In the light of the increasing commercial momentum of Linux, not, by
: definition, an entirely good thing for them, and with "Linux Standards Base
: 2" looking like a strong contender for the long promised definitive UNIX
: standard, we could find ourselves relegated to being "a better linux than
: linux" if we are caught unprepared.
: Why do we bother?

I bother because I like what I do as part of the FreeBSD project.  Both the
technical and social part of it all.

The technical part refers to working with a system that I can twist and bend
to my will, that serves me as a workstation, server, or research machine, that
includes all the UNIX features I have grown accustomed to during the 11 years
I work with computers, a system whose source has educated me and increased my
knowledge of the way computers work and a system that is hackable without
having to pay hefty amounts of money for 'buying' the right to read the source.

The social part refers to all those wonderful afternoons or nights that I hang
out with my friends, doing things that I like, sharing our common interest in
computers and the way they work and using FreeBSD as our vehicle to learn how
to think, how to design and build things, as a tool to assist us in our (very
interesting, to all of us) programming hobbies ;-)

- Giorgos

More information about the freebsd-chat mailing list