The open source movement is filled with people who analyze software, look for bugs, and search for fixes. These quiet workhorses are the foundation of the movement's success. One member of this army is David Baron, an undergraduate student who started out at Harvard in the fall of 1998 and found, like most students, that he had a bit of spare time. Some students turn to theater, some to the newspaper, some to carousing, some to athletic teams, some to drinking, and most choose one or more of the above. A few students search out some charitable work for their spare time and volunteer at a homeless shelter or hospital. Law students love to work at the free legal clinic for the poor. Baron, however, is a bit of a nerd in all of the good senses of the word. He's been working on cleaning up Netscape's open source browser project known as Mozilla, and he thinks it's a great act of charity.
Baron spends his spare time poking around the Mozilla layout engine responsible for arranging the graphics, text, form slots, buttons, and whatnot in a consistent way. Graphic designers want all web browsers on the Net to behave in a consistent way and they've been agitating to try and get the browser companies (Netscape, Microsoft, iCab, WebTV, and Opera) to adhere to a set of standards developed by the W3C, the World Wide Web Consortium based at MIT. These standards spell out exactly how the browsers are supposed to handle complicated layout instructions like cascading style sheets.
Baron looked at these standards and thought they were a good idea. If all web browsers handled content in the same way, then little buttons saying “Best Viewed with Microsoft IE” or “Best Viewed by Netscape” would disappear. The browser companies would be able to compete on features, not on their ability to display weirder web pages. It would cut the web designers out of the battle between Microsoft and Netscape.
The standards also help users, especially users with different needs. He told me, “Standards (particularly CSS) encourage accessibility for users with all sorts of disabilities because they allow authors to use HTML as it was originally intended--as a structural markup language that can be interpreted by browsers that display things in nonvisual media or in very large fonts for users with poor vision. Changing the HTML on the web back to structural markup will also allow these browsers to produce sensible output.”
Handling standards like this is always a bit of a political problem for companies. Every developer tries to stick their fingers in the wind and see which standards will be important and which ones will fall by the wayside. Microsoft, Netscape, iCab, WebTV, and Opera have all been wondering about the cascading style sheets because they're sort of a pain in the neck. Ideally, the graphics designers will be able to come up with graphics rules for a set of web pages and they'll be applied using the rules set out by the reader.
CSS is not about “total control by the author of the page,” says Baron. “The basic idea of the cascade is that user preferences (through the browser's UI or possibly through a user CSS style sheet) and author suggestions (contained in CSS style sheets) combine to produce the formatting of the page.”
A modern catalog conglomerate, for instance, may have two branches. One would be aimed at middle-aged men who dote on their cars by giving them endless wax jobs and cleaning them forever. Another might be aimed at young mothers who dote on their children, in part by keeping the home as clean as could be. Normally, the catalog company would use different designers to create very different-looking catalogs. One would come with retro, hard-edged graphics covered with racing stripes, and the other with floral prints. What happens when these catalogs head to the web? Normally two designers would give two different websites two different looks.
What if there is one cleaning product, say a car wheel cleaner, that appears in both catalogs? In the old days before cascading style sheets, both designers would have to do up each page separately. A well-designed system of cascading style sheets would let one web page for the product display correctly on both sites. It would pick up either the floral prints or the racing stripes automatically when either site called it up.
These standards are notoriously difficult to enforce. Armies around the world dream of turning out perfect privates that can be inserted into any conflict in any platoon without any retraining. Newspapers dream of having interchangeable reporters who can cover the White House or a cricket match in India. It's no wonder that the web industry wants the same thing.
Baron told me, “I got interested in Mozilla because I'm interested in web standards.” He noticed that a group known as the Web Standards Project was running a political campaign to pressure the browser companies to lay out pages the same way (www.webstandards.org).
“A group of developers got together and said, 'The browsers aren't supporting the standards' and this makes it impossible to create pages,” Baron explained. “If every browser supports the standards in a different way, then you have to design a different version of the site for each browser. Or, more realistically, web designers resort to hacks that make the page legible in all the 'major' browsers but not accessible to people with disabilities or people with older computers.”
Of course, it's one thing for a web designer or a web master to take up this call. Baron, however, was just a college freshman who framed this as volunteer work. When he happened upon the Web Standards Project, he heard their message and saw an itch that he wanted to scratch.
“I want to see the standards supported correctly. Someone's got to do it,” he told me. “I might as well be doing this instead of playing around and looking at websites all day. A lot of people do volunteer work, but not a lot of people get to do volunteer work at this level. It uses what I know pretty well. A lot of students who are very smart end up doing volunteer work which doesn't use their skills. When you can do volunteer work that uses what you know, it's even better.”
So Baron would download the latest versions of the Mozilla layout engine known as Gecko and play with web pages. He would create weird web pages with strange style sheets, load them up, and watch where they broke. When things went wrong, he would write up detailed bug reports and mail them off to the folks doing the coding. He was part of a quality control team that included some Netscape employees and a wide variety of other users on the Net.
This community involvement was what Netscape wanted when it created Mozilla. They hoped that more people would take it upon themselves to test out the code and at least make complaints when things were going wrong. One hacker named James Clark, who isn't related to the founder of Netscape with the same name, actually kicked in a complete XML parser, a tool for taking apart the latest superset of HTML that is capturing the attention of software and web designers.
Baron is one of the few folks I met while writing this book who frames his work on an open source project as charity. Most devotees get into the projects because they offer them the freedom to mess with the source code. Most also cite the practical strengths of open source, like the relatively quick bug fixes and the stability of well-run projects. Most people like to distance themselves from the more political firebrands of the free software movement like Richard Stallman by pointing out that they're not really in it to bring about the second coming of the Communist Revolution. Few suggest that their work is sort of a gift of their time that might make the world a better place. Few compare their work to the folks cleaning up homeless shelters or hospitals. Most don't disagree when it is pointed out to them, but most free software hackers don't roll out the charitable rhetoric to explain what they're up to.
This may just be a class difference. Baron is a sophomore, as this is written, at Harvard and Harvard is, by definition, a finishing school for the upper crust. Even the vast sea of kids from middle-class families and public schools end up talking and acting as if they came out of Choate or Exeter by the end of their time at Harvard. They pick up the Kennedyesque noblesse oblige that somehow commands the rich and fortunate to be out helping the poor with very public acts of assistance. It just sort of seeps into all of those Harvard kids.
Most of the free software members, on the other hand, are kind of outcasts. The hackers come from all parts of the globe and from all corners of the social hierarchy, but few of them are from the beautiful people who glide through life on golden rails. The programmers usually have their heads in strange, obtuse mathematical clouds instead of the overstuffed clouds of Olympus. They're concerned with building neat software and spinning up wonderful abstract structures that interlock in endlessly repeating, elegant patterns. If they were interested in power or social prestige, they wouldn't be spending their nights in front of a terminal waiting for some code to compile.
But if the free software movement doesn't use the charitable card very often, it doesn't mean that the work is too different from that of the homeless shelters. In fact, so little money changes hands that there are not many reasons for people to take their donations off on their taxes. Donations of time don't count. Maybe a few companies could write it off their books, but that's about it.
In fact, Baron is right that work like his can make a difference for people. Software is a growing part of the cost of a computer today. In low-end PCs, the Microsoft OS may cost more than the processor or the memory. A free OS with a free web browser that works correctly can help the thousands of schools, homeless shelters, hospitals, and recreation centers get on the web at a cheaper cost.
The free software charity is often a bit cleaner. Bill Gates and many of the other Microsoft millionaires aren't shy about giving away real money to schools and other needy organizations. Melinda Gates, Bill's wife, runs a charitable foundation that is very generous. In 1999, for instance, the foundation made a very real gift of tuition money for minority students. The foundation has also given millions of dollars to help fund medical research throughout the globe.
Still, at other times, there has been a sly edge to the Gates benevolence. In some cases, the company gives away millions of dollars in Microsoft software. This helps get kids used to Microsoft products and acts like subtle advertising. Of course, there's nothing new about this kind of charity. Most corporations insist that they receive some publicity for their giving. It's how they justify the benevolence to their shareholders.
The value of giving copies of software away is a difficult act to measure. One million copies of Windows 95 might retail for about $100 million, but the cost to Microsoft is significantly lower. CD-ROMs cost less than one dollar to duplicate, and many schools probably received one CD-ROM for all of their machines. Giving the users support is an important cost, but it can be controlled and limited by restricting the number of employees dedicated to particular phone lines. Determining the value of all of the benevolence must be a tough job for the tax accountants. How Microsoft chose to account for its donations is a private matter between Gates, the Internal Revenue Service, and his God.
Consider the example of an imaginary proprietary software company called SoftSoft that gives away one million copies of its $50 WidgetWare product to schools and charities across the United States. This is, in many ways, generous because SoftSoft only sells 500,000 copies a year, giving them gross revenues of $25 million.
If SoftSoft values the gift at the full market value, they have a deduction of $50 million, which clearly puts them well in the red and beyond the reach of taxes for the year. They can probably carry the loss forward and wipe out next year's earnings, too.
The accountants may not choose to be so adventurous. The IRS might insist that they deduct the cost of the goods given, not their potentially inflated market price. Imagine that the company's cost for developing WidgetWare came to $21 million. If there were no gift, they would have a nice profit of $4 million. SoftSoft could split the development costs of $21 million between all of the 1.5 million units that are shipped. Instead of deducting the market value of the software, it would only deduct the costs allocated to it. Still, that means they get a $14 million deduction, which is still far from shabby.
More conservative companies may come up with smaller deductions based upon the cost of duplicating the additional copies and the cost of supporting the schools and charities. Strict accounting measures would be the most honest, but it's hard to know what companies do and what they should do.
Free software, of course, avoids all that paperwork and accounting. The software costs nothing, so giving it away generates no deduction. There's no need for complicated cost accounting or great press releases. It just sits on the web server and people download it.
Of course, it's possible to start counting up downloads and doing some multiplication to come up with outrageous numbers. Windows NT can sell for between $200 and $1,000. There are about 3.7 million web servers running Apache, according to the latest Netcraft poll. If 1 percent qualify as charitable sites, then 37,000 are served by Apache. Of course, not all sites sit on separate machines. To correct for this, assume that each server hosts 10 machines and there are only 3,700 machines using Apache. That's still about $3.7 million in donations.
But numbers like this can't really capture the depth of the gift. Linus Torvalds always likes to say that he started writing Linux because he couldn't afford a decent OS for his machine so he could do some experiments. Who knows how many kids, grown-ups, and even retired people are hacking Linux now and doing some sophisticated computer science experiments because they can? How do we count this beneficence?
Free software essentially removes the red tape and the institutional character of charity. There are no boards. There is no counting of gifts. There's no fawning or flattering. There are no new J. Henry P. Plutocrat Wings for the Franklin P. Moneysucker Museum of Philanthropy. It's just a pure gift with no overhead.
There is also a smooth efficiency to the world of free software charity. My economics professor used to joke that gifts were just very inefficient. Grandmas always bought unhip sweaters for their grandkids. Left on their own, children would give candy and stuffed animals to their parents on their birthdays and Christmas. All of these bad choices must be returned or thrown away, ruining the efficiency of the economy. The professor concluded by saying, “So, guys, when you go out on the date, don't bother with the flowers. Forget about the jewelry. Just give her cash.”
Free source software, of course, doesn't fit into many of the standard models of economic theory. Giving the stuff away doesn't cost much money, and accepting it often requires a bit of work. The old rules of gift giving and charity don't really apply.
Imagine that some grandmother wrote some complicated software for computing the patterns for knitting sweaters. Some probably have. If they give the source code away, it ends up in the vast pool of free source code and other knitters may find it. It might not help any grandchildren, at least not for 20 or 30 years, but it will be moving to the place where it can do the most good with as little friction as possible. The software hacked by the kids, on the other hand, would flow from child to child without reaching the parents. The software tools for generating dumb jokes and sorting bubble gum cards would make a generation of kids happy, and they would be able to exchange it without their parents or grandparents getting in the way.
The inefficiencies of gift-giving can often affect charities, which have less freedom to be picky than grandchildren. Charities can't look a gift horse in the mouth. If a company wants to give a women's shelter 1,000 new men's raincoats, the shelter will probably take them. Refusing them can offend potential contributors who might give them something of value in the next quarter.
Free source code has none of these inefficiencies. Websites like Slashdot, Freshmeat, Linux Weekly News, LinuxWorld, KernelTraffic, and hundreds of other Linux or project-specific portals do a great job moving the software to the people who can use its value. People write the code and then other folks discover the value in it. Bad or unneeded code isn't foisted on anyone.
Free software also avoids being painted as a cynical tax scheme. It is not uncommon for drug manufacturers to donate some surplus pills to disaster relief operations. In some cases, the manufacturers clear their shelves of pills that are about to expire and thus about to be destroyed. They take a liability and turn it into a tax-deductible asset. This may be a good idea when the drugs are needed, but they are often superfluous. In many cases, the drugs just end up in a landfill. The relief organizations accept millions of dollars in drugs to get a few thousand dollars' worth of ones they really need.
Of course, there are some open source charities. Richard Stallman's Free Software Foundation is a tax-exempt 501(c)(3) charity that raises money and solicits tax-deductible donations. This money is used to pay for computers, overhead, and the salaries of young programmers who have great ideas for free software. The Debian Project also has a charitable arm known as Software in the Public Interest that raises money and computer equipment to support the creation of more free software.
These organizations are certainly part of the world of tax deductions, fund-raisers, and the charity-industrial complex. The Free Software Foundation, for instance, notes that you can arrange for all or part of your gift to the United Way to go to the Foundation.
But there are differences, too. Stallman, for instance, is proud of the fact that he accepts no salary or travel reimbursement from the Free Software Foundation. He works 2 months a year to support himself and then donates the other 10 months a year to raising money to support other programmers to work on Foundation projects.
Their budgets are pretty manageable as well. Perens notes that Debian's budget is about $10,000 a year, and this is spent largely on distributing the software. Servers that support plenty of traffic cost a fair amount of money, but the group does get donations of hardware and bandwidth. The group also presses a large number of CD-ROMs with the software.
The groups also make a point of insisting that good code is more valuable than money. The Free Software Foundation, for instance, lists projects that need work next to its call for money. Volunteers are needed to write documentation, test software, organize the office, and also write more code.
Jordan Hubbard, the director of the FreeBSD project, says that money is not always the best gift. “I'll take people over six-digit sums of donations almost any day,” he says, and explains that FreeBSD is encouraging companies to donate some of the spare time of its employees. He suggests that companies assign a worker to the FreeBSD project for a month or two if there is time to spare.
“Employees also give us a window into what that company's needs are. All of those co-opted employees bring back the needs of their jobsite. Those are really valuable working relationships,” he continues.
Hubbard has also found that money is often not the best motivator. Hardware, it turns out, often works well at extracting work out of programmers. He likes to ship a programmer one of the newest peripherals like a DVD drive or a joystick and ask him to write a driver for the technology in exchange. “It's so much more cost-effective to buy someone a $500 piece of hardware, which in turn motivates him to donate thousands of dollars worth of work, something we probably couldn't pay for anyway,” he says.
Money is still important, however, to take care of all the jobs that can't be accomplished by piquing someone's curiosity. “The area we need the most contributions for are infrastructure. Secretarial things are no fun to do and you don't want to make volunteers do it,” he says.
All of these charitable organizations are bound to grow in the next several years as the free software movement becomes more sophisticated. In some cases it will be because the hackers who loved playing with computers will discover that the tax system is just another pile of code filled with bugs looking to be hacked. In most cases, though, I think it will be because large companies with their sophisticated tax attorneys will become interested. I would not be surprised if a future version of this book includes a very cynical treatment of the tax habits of some open source organizations. Once an idea reaches a critical mass, it is impossible to shield it from the forces of minor and major corruption.
Marcel Mauss was an anthropologist who studied the tribes of the northwestern corner of North America. His book Gift: The Form and Reason for Exchange in Archaic Societies explained how the tribes like the Chinook, the Tlinget, and the Kwakiutl would spend the months of the fall giving and going to huge feasts. Each year, the members in the tribe would take the bounty of the harvest and throw a feast for their friends. The folks who attended might have a good time, but they were then obligated to give a feast of equal or greater value next year.
Many anthropologists of the free software world like to draw parallels between these feasts, known as potlatches in one tribe, and the free-for-all world of free source software. The hackers are giving away source code in much the same way that the tribe members gave away salmon or deer meat.
The comparison does offer some insight into life in the free software community. Some conventions like LinuxExpo and the hundreds of install-fests are sort of like parties. One company at a LinuxExpo was serving beer in its booth to attract attention. Of course, Netscape celebrated its decision to launch the Mozilla project with a big party. They then threw another one at the project's first birthday.
But the giving goes beyond the parties and the conferences. Giving great software packages creates social standing in much the same way that giving a lavish feast will establish you as a major member of the tribe. There is a sort of pecking order, and the coders of great systems like Perl or Linux are near the top. The folks at the top of the pyramid often have better luck calling on other programmers for help, making it possible for them to get their jobs done a little better. Many managers justify letting their employees contribute to the free software community because they build up a social network that they can tap to finish their official jobs.
But there's a difference between tribal potlatch and free software. The potlatch feasts built very strong individual bonds between people in the same tribe who knew each other and worked together. The gifts flowed between people who were part of each other's small community.
The free source world, on the other hand, is a big free-for-all in both senses of the phrase. The code circulates for everyone to grab, and only those who need it dig in. There's no great connection between programmer and user. People grab software and take it without really knowing to whom they owe any debt. I only know a few of the big names who wrote the code running the Linux box on my desk, and I know that there are thousands of people who also contributed. It would be impossible for me to pay back any of these people because it's hard to keep them straight.
This vast mass of contributors often negates the value and prestige that comes from writing neat code. Since no one can keep track of it all, people tend to treat all requests from unknown people equally. The free source world tends to have many equals, just because there's no hierarchy to make it easy for us to suss out each other's place. Corporations have titles like executive vice president and super executive vice president. The military labels people as private, sergeant, or major. There are no guideposts in the free software world.
Still, good contributions pay off in good reputations. A bug fix here and a bug fix there might not build a name, but after a year or two they pay off. A good reputation opens doors, wins jobs, creates friendships, and makes it possible to interest people in new projects.
The free source world is also a strange mirror image of the hierarchies that emerge after a season of tribal potlatch ceremonies. In the tribes, those who receive great gifts are required to return the favor with even greater ones. So the skillful hunters and gatherers give good gifts and receive something better in return. The rich get richer by giving away their bounty. The less skillful end up at the bottom of the list. The free source world, on the other hand, spreads its riches out to everyone. There are many modest programmers who enjoy the source code of the great programmers, and there may be billions of non-programmers who also tag along. Many major websites run on free OSs alone. Who knows which cheap Internet tools will come along in the future? The poor get lifted along at no great cost to the economy. The charity is broadcast to everyone, not narrowcast to a few.
The efficiency goes deeper. There's a whole class of products for the home that are much fancier and sophisticated than what people need. One company near me sells perfectly usable nonstick pans for $2.95. A fancy department store sells hefty, industrial-grade pans that do the same thing for more than $100. Why? They make great gifts for people getting married. This wedding-industrial complex adds needless accoutrements, doodads, and schmaltz just to give products enough caché to make them great gifts.
The free source world, on the other hand, has no real incentive to generate phony, chrome-plated glitz to make its gifts acceptable or worthy enough of giving. People give away what they write for themselves, and they tend to write what they need. The result is a very efficient, usable collection of software that helps real people solve real problems. The inefficiency of the wedding-industrial complex, the Father's Day-industrial complex, the Christmas-industrial complex, and their need to create acceptable gifts are gone.
Of course, there's also a certain element of selfishness to the charity. The social prestige that comes from writing good free software is worth a fair amount in the job market. People like to list accomplishments like “wrote driver” or “contributed code to Linux Kernel 2.2” on their résumé. Giving to the right project is a badge of honor because serious folks doing serious work embraced the gift. That's often more valuable and more telling than a plaque or an award from a traditional boss.
Rob Newberry is a programmer at Group Logic, a small software house in northern Virginia where I once did some consulting. His official title is “Director of Fajita Technology,” and he is sometimes known as “The Dude,” a reference to a character in the movie The Big Lebowski. Technically, his job is building and supporting their products, which are used to automate the prepress industry. One of their products, known as Mass Transit, will move files over the Internet and execute a number of automated programs to them before moving them on. Printers use them to take in new jobs, massage the data to their needs by performing tasks like color separation, and then send the jobs to the presses. This work requires great understanding of the various network protocols like FTP of NFS.
Newberry is also a Linux fan. He reads the Kernel list but rarely contributes much to it. He runs various versions of Linux around the house, and none of them were working as well as he wanted with his Macintosh. So he poked around in the software, fixed it, and sent his code off to Alan Cox, who watches over the part of the kernel where his fixes belonged.
“I contributed some changes to the Appletalk stack that's in the Linux Kernel that make it easier for a Linux machine to offer dial-in services for Macintosh users,” he said in an article published in Salon. “As it stands, Mac users have always been able to dial into a Linux box and use IP protocols, but if they wanted to use Appletalk over PPP, the support wasn't really there.”
Newberry, of course, is doing all of this on his own time because he enjoys it. But his boss, Derick Naef, still thinks it's pretty cool that he's spending some of his programming energy on a project that won't add anything immediately to the bottom line.
“He's plugged into that community and mailing lists a lot more,” explains Naef. “There are other people here who are, too, but there are all these tools out there in the open source world. There's code out there that can be incorporated into our computer projects. It can cut your development costs if you can find stuff you can use.”
Of course, all of this justification and rationalization aren't the main reason why Newberry spends so much of his time hacking on Linux. Sure, it may help his company's bottom line. Sure, it might beef up his résumé by letting him brag that he got some code in the Linux kernel. But he also sees this as a bit of charity.
“I get a certain amount of satisfaction from the work . . . but I get a certain amount of satisfaction out of helping people. Improving Linux and especially its integration with Macs has been a pet project of mine for some time,” he says. Still, he sums up his real motivation by saying, “I write software because I just love doing it.” Perhaps we're just lucky that so many people love writing open source software and giving it away.