hidden in the premises of open source is the belief that probably it’s acceptable to waste programmer time. moreover, there are no time limits to open-source projects. with lots of people looking at the resource code, it’s easy to see how the quality of the resulting code could be a little higher. and with hackers always desperate to prove themselves wizards, it’s easy to see how "customer support" could be a little better.
because the open source proposition asked the crucial first question, i include it in what i am calling "mob software," but mob software goes way beyond what open source is up to today. what i’m talking about is the kind of swarming activity we see exhibited by social insects, a kind of semi-chaotic self-organizing behavior in which numerous small acts of repair with a common goal in mind can lead to quickly built, complex, and massive creations. mob software is differentit explores the space of possibilities. it includes users during design. it is highly incremental, focusing on repair rather than master planning. mob software takes coding out of the closet and makes code literature. it is based on gifts. mob artifacts include massive software, built by the multitudes. it never goes down, it is never totally stable but is stable while in the aggregate. it is flexible inside the extreme. anyone can add to it. mob-software artifacts adapt, evolve almost. it is living while all the software we have nowalmost all of itis dead-dead-dead. mob software is the technical software community finally coming to grips with the duende.
open supply is only some of these things, but it provides our first view into mob software, so let’s talk about open source for a moment.
by now we know about quite a few mostly successful open-sourceor baby mob softwareprojects: linuxwhich has won a number of awards for customer support and artistrymozilla, jikes, emacs, gcc, apache, perl, python,
Buy Office Standard 2010, sendmail, and bsd.
the early history of open resource
sadly? happily? oddly? well, open supply and the mob approach is just not a new idea. a great deal of software development before the 1980s took place in conditions similar to those propounded by the open resource folks. if your organization owned a computer, you had a copy of the resource code for many of its systems. back within the 1960s and ’70s, phd dissertations in computer scienceand especially in artificial intelligencecontained the source code for the program described inside the dissertation. in 1962, the lisp 1.5 programmer’s manual contained the mysterious, almost gnostic, lisp code that implemented lisp. though mostly obvious to mathematicians, this lisp in lisp took several decades for computer practitioners to get their heads around.
throughout the 1960s and ’70s, and even into the 1980s, it was relatively common to exchange resource code. the nascent internetcalled at the time,
Buy Office 2010 Key, the arpanetwas created in order to make computing facilities available to researchers around the world, and to exchange files including supply code. one of the first net-based "open source" projects was maclispa pdp-10based simple lisp that became one of the dominant lisp dialects while in the 1970s. originally developed at mit under its, it was ported to several other popular pdp-10 operating systems by a group of about 10 volunteers who donated their time and worked on the code partly at their own locations and partly over the arpanet. developers who earned the respect of the principal maintainers of maclisp at mit were given the authority to edit the sources on mit’s computers and to build maclisp there.
similar activities took place: languages, environments, planning systems, natural-language understanding systems, game-playing programs, games, text editors, compilers, graphics programs, window systems, typesetting systemsjust about anything you can think of was written this way, though on a smaller scale because there were hundreds of computers on the arpanet, not the nearly 100 million we have on the internet today.
in the 1980s, it became apparent there was money to be made by writing and selling software, and that a premium might be had for being clever about it. although software patents were first tried about 10 years earlier, they became increasingly popular during the 1980s until the 1990s, when the intellectual property grab came to resemble the oklahoma land rush.
at that point, except for academic projects and the activities of the free software foundation under the eclectic oversight of richard stallman, software resource code essentially disappeared.
the dictionary
mob developmentthe creation of software by a loosely coupled group of volunteersseems a thoroughly contemporary phenomenon, based on the free outlook of the 1960s, a kind of fallout of free love and hippiedomi mean, just look at the proponents of this approach: anti-establishment marxists who believe in free software, who call themselves "hackers"; people with scruffy hair, who don’t exactly work for a living, people who attend star trek conventions and think science fiction is both high literature and true science.
however, the idea is a bit older. on guy fawkes day, 1857, richard chenevix trench, addressing the philological society,
Office Home And Business 2010, proposed to produce a new, complete english dictionary based on finding the earliest occurrences of each of the english words ever in printed use. that is, the dictionary would be constructed by reading every book ever written and noting down exactly where in each book a significant use of every word occurred; these citations would be used to write definitions and short histories of the words’ uses. in order to do this, trench proposed enlisting the volunteer assistance of individuals throughout english-speaking countries by advertising for their assistance.
over a period of 70 years, many hundreds of people sent in over 6 million slips with words and their interesting occurrences in thousands of books. this resulted within the oxford english dictionary, the ultimate authority on english, with 300,000 words,
Buy Microsoft Office 2010, about 2.5 million citations, 8.3 citations per entry, and in 20 volumes.
compare this with the best effort by an individualsamuel johnsonwho, over a 9-year period, using the same methodology and a handful of assistants called amanuenses, produced a 2-volume dictionary with about 40,000 words and in most cases 1 citation per entry. as we look at these two works, johnson’s dictionary is a monument to individual effort and a work of art, revealing as much about johnson as about the language he perceived around him, while the oed could be the standard benchmark for dictionaries, the final arbiter of meaning and etymology.
why mob software works
mob software works by involving a multitude of developers who are passionate about the software being constructed because it is important for them. mob software projects do not generally have deadlines, but efficiency is gained by more eyes, hands, and minds being applied to the workin general, fewer major releases are required to get to the same level of functionality and quality. to get an idea, whereas a large software project by conventional standards might have 250500 developers, a mob software project can have thousands or tens of thousands of developers who are not only actively working on the software but using it every day under a variety of conditions. moreover, these developers span a range of talents almost no employer could afford to hire. further, these developers typically include some individuals who have remarkable abilities along with astounding disabilitiesthey might not even be employable.
among the main volunteers to the oed project was dr. william c. minor, a brilliant etymological worker who, during his entire 30 or so year involvement with the oed, happened to be locked up in an asylum for the criminally insane, where he suffered hallucinations that kept him awake all night most nights and where he eventually mutilated himself while in the most horrific manner. once incarcerated, he was never entirely outside immediate and confining care. yet he was acknowledged as one of the most important contributors to the project.
monolithic development
some might think that my claim that we don’t know how to do massive software is exaggerated, that we do know and it’s called sei level 5, the highest maturity rating. and the story that explains how things should work is not the one about the oed but the one about space shuttle software.
lockheed martin corporation employs a level 5 software group that puts together the shuttle software. this software seems large, and it is written by a deliberate process. let’s look at this.
the software is not very bigonly 420,000 lines of code. this is not massive softwareit’s off by a factor of 10 or 100. the software is monolithic, an unrealistic model for future systems. the software was developed over a 20-year period by a group of 260 people. these numbers imply that each line of code has had 25 person-hours of attention, and that each person has been responsible for a little over 1600 lines of code25 pages. $700,000,000 was spent to develop this code, or about $1700 per line.
further, the software had been completely specified in pseudo-code agreed to beforehand. the task of a programmer in this regime is to translate pseudocode to actual code. but, all this work does buy nasa only 1 error in each of the last three releases of the code. because we cannot afford to have deaths while in the space program,
Windows 7 Home Premium Sale, the cost and effort are worth it. the cost amounts to making each subroutine a career-long research project. twenty years, 8 hours a day, studying and eliminating errors from 1600 lines of code.
the mob-software theory is that this project needed 26,000 programmers, not 260. the job could have taken less than a year, probably with better quality, and a lot cheaper. better quality because the range of talent that could have been brought to bear would have been tremendously greater, and cheaper because most of the work would have been a gift. (motivating volunteers who cannot be users takes a culture of gift-giving we don’t have yet.)
we cannot afford to inch our way up the learning curve, 1600 lines at a time. we need to get things done fast while doing some learning along the way.
gift and commodity economies
to understand what the open source and mob software movements are trying to do, it helps to make a distinction between a commodity economy, to which we are accustomed in a capitalist society, and a gift economy. in a gift economy, gifts are exchanged, forming a bond based on mutual obligation: in the simplest form of gift exchange, when one person gives a gift to another, the receiver becomes obligated to the giver, but not in a purely mercenary wayrather, the recipient becomes very much like a member of the giver’s family where mutual obligations are many, varied, and long lasting. more sophisticated forms involve more than two partiesin fact the cosmos may become involved. a person may give a gift with the realistic expectation that someday a gift of equal or greater use value will be received, or that the recipient will pass on a further gift. sacrifices and many religious ceremonies are gift-economy based. in an open-source project, the gift of supply code is reciprocated by suggestions, bug reports, debugging, hard work, praise, and more supply code.
gift economies are embedded within non-economic institutions like kinship, marriage, hospitality, artistic patronage, and ritual friendship. the bond is so like flesh and blood that the greek gift economy persisted alongside a vigorously growing commodity economy for several centuries.
a gift has both economic and spiritual content. it is personal. in giving a gift the goal is to become as empty as possible. in "gift and commodity in archaic greece," ian morris wrote the following: