Mad Dog 21/21: To Hive and Hive Not
July 12, 2004 Hesh Wiener
They naturally organize themselves into orderly, cooperative groups. They produce what it takes to nurture and enlarge their society, and more, too. When the central figure in a group departs, they very quickly nominate one or more candidates for that role. If two or more prospective leaders arise, only one will remain with the group and emerge as a leader. That’s the way honeybees behave and bee hive. That’s the way people in prominent software development teams often act, too.
Groups of bees will periodically swarm, leaving one hive and starting another. This hive may be a brand new one, in a new location, or it might be an abandoned one the bees will occupy and bring back to life. The swarm may be led by a reigning queen bee that got the urge to relocate, or by a new queen looking for a starter home. Sometimes a swarm attracts only half the bees in a hive, leaving the remaining bees to continue their work in a less crowded setting.
Swarming is a normal aspect of honeybee culture, but it can be suppressed. Commercial beekeepers, whose success depends on keeping hives as stable as possible, year after year, have developed methods to keep their insects from taking road trips. Usually these methods work, but sometimes not. In some cases, beekeepers will split a hive and start a fresh one with the portion they move, preemptively creating the same result as a natural swarm.
Swarming depends on queen bees, but while they may instigate a swarm and are central to the function of a hive, they are not in charge. Queen bees don’t control other bees, but instead fulfill their natural obligation to lay eggs. All the other bees pitch in to keep the hive functioning and to help the queen and the rest of the hive fulfill their mission. The behavior of bees is dictated by instinct, chemistry, weather, and other forces that nature has only partially revealed.
In the software world, swarming is not a natural occurrence, but it does happen. The cause might be a change in the environment of an organization that houses a software project, such as a decision to curtail development or abandon a project entirely. It could be an outside opportunity that attracts key talent to a more attractive project or to a more attractive opportunity on a similar project. It could be a combination of push and pull forces.
A programmer swarm may be led by the central person in a software project, the team leader, or by one or more other members of the group. Like honeybee colonies, software projects often have leaders who are not so much bosses as facilitators, people whose role is defined more by a need for hierarchical corporate organization than by the actual sociology of a working software team. The people who lead the swarm may or may not end up in managerial roles after the swarm has settled into a new home.
The evolution of Web browsers has involved what are arguably the most important talent swarms in the software industry. The first widely appreciated graphical browser was Mosaic, developed at University of Illinois in Urbana. In 1994, attracted by the availability of venture capital and the charisma of Jim Clark, a key developer from the Mosaic project, Marc Andreessen, along with some of his colleagues, left academia to form a company that became Netscape Communications. The remaining developers continued to work on Mosaic.
Netscape’s browser had a stunning impact on computer users worldwide, and at its peak it was used by at least three out of four Internet surfers. However, it never became a commercial success.
Netscape Communicator might have been one of the most lucrative products ever, except for one development: in 1995, Microsoft, combining its own browser development efforts with technology licensed from the original Mosaic project, created Internet Explorer and distributed it at no charge. As a result, Netscape Communications had to give away its browser, too, in order to maintain influence among Web developers. That left the company with only one other source of revenue, its family of Web servers; these products never produced enough revenue to make the company a financial success.
The commercial failure of Netscape’s browser didn’t seem to make a dent in the spirit of its developers, who remained as busy as bees improving the code. But by 1998, Netscape faced stark choices. It decided to instigate a talent swarm in the hope that it could preserve its browser technology while heading down a path that would inevitably lead to the end of its futile attempt to build a browser business. It did this in two parts.
Netscape promised to make the source code for its next generation browser and rendering engine (plus some surrounding code), Mozilla, available under an open source license and hand off development to an independent nonprofit group. Later that year, the other shoe dropped: Netscape announced it had sold its internal browser development group to America Online. (Netscape also sold its server technology in a complicated deal involving, notably, Sun Microsystems, which eventually acquired the software from AOL. The Java Enterprise System, which Sun is selling for $100 per user per year, is largely Netscape middleware.)
Netscape’s first open source code licensing scheme was a crude imitation of the approach that brought GNU/Linux its large, grateful society of developers and testers. Netscape Communications, which had played a dramatic role in the dot-com bubble, couldn’t quite bring itself to license Mozilla under the GNU GPL; there were also some legal barriers to Netscape’s adoption of GPL. The first Netscape license gave way to the first Mozilla license. Subsequently the Mozilla license was updated to its current generation, Version 1.1. The Mozilla project would eventually learn to live with the GPL, but that evolution would take years.
When Netscape first broke itself up and sold off its various products, many of the key browser developers went to AOL, but not all of them stayed around once they could turn their Netscape shares and options into cash. For instance, Netscape’s best known developer, Marc Andreesen, left in 2002 to start a new software company.
As the Mozilla project came to life, Netscape wound down its product development and support operations, releasing the last Netscape brand version of the software, Version 7.1, in 2003. By that time, Netscape was getting fresh code from Mozilla, not the other way around, and Mozilla was gaining support and recognition in the free and open software developer circles that have increasingly shaped the opinions of computer specialists the world over.
Like software projects, honeybee colonies sometimes gain new vigor after a swarm. The entire swarming process is, in fact, almost always connected to a change of queens. The way it works, a change of queens alters the entire chemistry of a beehive, in part because each queen has a unique perfume of pheromones, just as she has unique DNA that carries with it unique messages that shape the character of the bees that will hatch from her eggs.
Queen bees come from eggs that are the same as those that produce infertile female worker bees. But bees are what they eat, and while all bee larvae get fed a little bit of royal jelly, queen bees eat nothing else. Actually, there is a little more to the queen producing process, because the cells in which the eggs that will become queen bees develop are a different, larger shape than ordinary cells from which workers and drones (fertile male bees that can mate with a queen) arise. The unique cell geometry is a signal to the nurse bees that they must feed the larvae in the larger cradles a special diet; other bees are weaned off royal jelly and onto a diet of pollen and honey about three days into their larval stage.
Most queens get the urge to swarm and set up a new hive during their second year, but they can be dissuaded by various means. Some beekeepers remove potentially competitive queens from the hive before they mature, some thin the hive population by splitting the colony and providing the spin-off with a new queen, some force the colony to a new hive before it swarms out and goes where it pleases, some beekeepers try to dissuade swarming with smoke, and some beekeepers kill a queen that seems bent on hitting the road and then replace it with another. The last option is tricky. To keep the swarm from killing the new queen because it is an outsider, beekeepers usually put the bee in a little cage capped with sugar candy. It will take the bees a while to open the package, which they invariably do, and by that time they will be used to the new queen’s perfume. If they accept the new pheromone mix, which they most often do, all the bees will return to the nest as usual and they won’t swarm.
Programmer swarms seem to settle down, too, and when they do, like bees, they resume the main business at hand, often with renewed vitality.
Today, the Mozilla Foundation’s software is a leader in Internet client technology, but not market share. It’s not that hard to find ways in which the latest Mozilla browser, Firefox, is technically superior to the far more popular Internet Explorer. But it’s hard to separate the pro-Mozilla point of view from the anti-Microsoft sentiment that is so abundant in the free and open software communities, so it’s best to take the laudatory reviews of Firefox with a grain of salt. Still, there is no question that Firefox does not suffer from the recurring security problems that plague Microsoft’s browser. It seems faster at rendering than Internet Explorer, and it presents Web pages that are coded according to W3C standards very nicely.
Mozilla client products are particularly important to business users for at least three reasons. First, they will remain available at no cost, preventing Microsoft from explicitly charging for Internet Explorer. Second, they keep Microsoft under continual pressure to improve the speed, the functionality, and, particularly, the security of its browser. And, third, they keep alive the hope among GNU/Linux aficionados that their favorite operating system can provide a viable alternative to Windows on the desktop, much the way it has provided the most credible alternative to Windows for servers. Basically, Mozilla has the potential to provide a consistent GUI for browsing and generally managing a PC.
To make the most of its promises, Mozilla should not only be technically compatible with Windows, GNU/Linux, and other environments, it should also be legally compatible with the GNU GPL under which GNU/Linux is licensed, to allow its code base to be mixed with the GNU/Linux code. This is not quite the case now, even though the latest iteration of the Mozilla Public License, Version 1.1, does close to a great extent what was formerly a very significant gap between the Mozilla concept of open software and the GNU concept of free software. In fact, some software developers believe MPL is better for developers and users than GPL, while others favor the GPL. The issue may never be settled, but Mozilla’s effort to allow multiple licensing is clearly a step in the direction of harmony.
For software users who have no interest in modifying source code or combining modules from code that is under the GPL with other code, the tensions in the development community are for the most part irrelevant. But this is in part the case because free and open source software is most often used on servers, and end users are mainly in the Windows world, at least so far. Computer professionals who run servers and try to shield end users from their world of woe have reason to keep an eye on the licensing issues that can impinge on systems programmers’ freedom to customize and configure server environments.
If this situation changes, it will do so because the big PC vendors, like Dell, Hewlett-Packard, and IBM come around to thinking that their piece of the PC pie would be considerably larger if they could use software without licensing costs instead of Windows and Office, thereby keeping much more of the revenue they get from PCs instead of sending off a big slice of their take to Microsoft.
Some users and many programmers would love to see the licensing disagreements in the free software and open source communities settled. The users would most likely benefit from having more freedom to choose the software they use. The programmers could more fully concentrate on software development without suffering from the distractions of legal issues.
A licensing truce would be to software development what the Reverend L. L. Langstroth’s hive was to beekeeping. But the situation still more closely resembles a classical myth, where each effort by some heroic programmer or development team involves conflict with powerful forces from within their own or rival groups or the commercial titans of the software industry. To move ahead, it seems, developers have to face one challenge after another, much the way Aristaeus had to investigate mysteries and ultimately capture the wily and forceful Proteus just to save the lives of his honeybees.
By the way, if you follow the link into this Bulfinch site to find out more about Aristaeus, you might want to scroll down the page to read about Linus. According to Bulfinch, Linus was the instructor of Hercules in music, but having one day reproved his pupil rather harshly, he roused the anger of Hercules, who struck him with his lyre and killed him.