Fun for All

When building a community, don't forget to inject a healthy dose of fun.

By Jon "maddog" Hall

When Linus Torvalds started the Linux Kernel project, one of his first email messages said the project was "just for fun," and in continuing his work, he often states that he is "still having fun." I admire that, and I agree with this philosophy. In the 40-plus years I have been in the computer industry, the work has stayed fresh and invigorating through all the positions I've held. I began as a programmer, was a department chair at a small, two-year technical college (which honed my presentation skills), moved on to systems administration of Unix systems at Bell Laboratories, programmed again on Unix at Digital Equipment Corporation, became a product manager, then went into technical marketing. After that, I became an author of books, magazine articles, and blogs while spreading the word about Free Software and Linux.

Therefore, I firmly believe one way to ensure success in building and sustaining a community or a workforce is to make sure people are having fun. Of course, not everyone will have fun every waking moment of the day. Sometimes we have duties we do not really enjoy. Having to tell students they are not going to pass a course and employees they are going to be unemployed were some of the worst moments of my life, but for the most part, I have not only made a living but also had fun. If you're not having fun, perhaps you are doing something wrong or are in the wrong line of work.

Recently, I gave a talk called "Are We Having Fun Yet?" in which I talked about having fun with Free Software. In that talk, I described some of the things that FOSS people have done over the years for fun. Certainly, the events I participated in have been fun. Early on, I often slept in the homes and apartments of the organizers to help them conserve money. At many backyard picnics for invited speakers, I met the people who wrote the code and saw that events could be produced for little money with the use of volunteers and donated space. Some of these events outgrew their donated spaces and have become rather large, but they still manage to maintain the "home town" feel of community. Other events got so large their planning bodies "burned out," and the organizing groups lost the sense of fun; these events disappeared.

Other enjoyable activities included the selection of Tux the penguin as the Linux mascot and everything that grew out of that. The "plush tux" dolls that people use as mascots and the website that shows you how to make your own "plush tux" from a pattern [1] were all part of the fun. I was reminded of the fun I had designing and making my own T-shirts in my Unix days (1983 or so), using no more exotic tools than troff and an iron-on transfer.

I enjoy reading about the events that people contrive, such as the "Linux Bier Wanderung," in which people hike somewhere, take out their notebooks, and "start hacking." Over the years, the event morphed more into "camping and hacking" with day hikes, but it maintained the thrust of "really good food, really good beer, and really good code."

My friends in Brazil have an event every year called "Open Beach," in which a few groups of FOSS people come together to share time with each other and their families. Although we do not typically make presentations, we do get to meet each other face to face.

All of these events (and more) are fun, and I encourage readers to send me more ideas for events and FOSS activities. When I showed this presentation to a good friend of mine, Felipe van de Wiel of the Debian project, he told me that he was disappointed I had not mentioned the things about FOSS that he thought were the most fun: solving interesting problems, writing good code, sharing ideas with others, learning new ways of programming, getting recognition for what he had done, and working on translations so others could enjoy FOSS, too.

I had to agree with Felipe, and I changed the talk to reflect this - with other kinds of fun being "icing on the cake."

[1] Sew your own Tux penguin: