The fortress and the bazaar: open-source and DOD software

Defense AR Journal, Dec, 2005 by David Lechner, Harold Kaiser

This article discusses the application of the open-source software project model for the Department of Defense, a software systems development that uses the tenets first laid out in an original paper entitled "Cathedral and the Bazaar," written by Eric S. Raymond in 1998 explores the implications as applied to defense weapons systems software, in addition to examining the attributes, problems, and benefits of open-source software.

**********

This work is based on a paper written by Eric S. Raymond entitled "Cathedral and the Bazaar," which is widely considered the principal manifesto of the open-source software movement. We provide a brief overview of the Raymond paper, then attempt to explain the ideas of that document in the terms and methods of the defense-industrial establishment in America. The goal of promoting open-source in defense projects and procurement should be emphasis on lower costs, new functionality, and improved software reliability for the products used by our military.

SUMMARY OF RAYMOND'S "CATHEDRAL AND THE BAZAAR" PAPER

In his paper, Raymond discusses the historical model for software development and compares it to building cathedrals, a slow and laborious effort with exacting methods carefully applied. Each brick and beam was carefully planned and the structure was erected with painstaking craftsmanship to meet the planned design and symmetry. The bazaar, by contrast, was often created ad-hoc and in an evolutionary fashion. The bazaar started with a few street vendors and was later built up by additional vendors and merchants, each staking out a piece of the market place as their own and maintaining and adding to their stall until a full-blown Agora was in place. Clearly each approach served its purpose well, but the cathedral method is rigid and static. It needs the contribution of each part exactly as designed in order to stand, and has difficulty adapting to any other shape or location. The open-source movement is all about flexibility and evolutionary development.

Raymond went on to review nineteen axioms of open-source development by discussing his experience developing "Fetchmail," a Linux application used to forward e-mail. These axioms are the basic tenets of the open-source community, and Raymond discussed them with detailed analysis and examples in the original paper. In brief form, these tenets are:

1. Every good work of software starts by scratching a developer's personal itch.

2. Good programmers know what to write. Great ones know what to rewrite (and reuse).

3. "Plan to throw one away; you will anyhow" (Brooks, 1975).

4. If you have the right attitude, interesting problems will find you.

5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.

6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.

7. Release early. Release often. And listen to your customers.

8. Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.

9. Smart data structures and dumb code works a lot better than the other way around.

10. If you treat your beta-testers as if they are your most valuable resource, they will respond by becoming your most valuable resource.

11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.

12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.

13. Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.

14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.

15. When writing gateway software of any kind, take pains to disturb the data stream as little as possible--and never throw away information unless the recipient forces you to.

16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend.

17. A security system is only as secure as its secret. Beware of pseudo-secrets.

18. To solve an interesting problem, start by finding a problem that is interesting to you.

19. Provided the development coordinator has a medium at least as good as the Internet and knows how to lead without coercion, many heads are inevitably better than one.

Raymond discusses these issues in detail, but it is his last item (#19) that is the essence of an open-source approach. It describes the advantages of multiple groups working on code to provide more innovation and faster debugging cycles, discussed primarily in terms of the Linux operating system. Linux is one of the best known and most successful examples of open-source software, but a review of Sourceforge. net showed that there are now over 20,000 open-source software projects involving over 70,000 developers worldwide targeting many different operating systems. After discussing some problems with open-source for defense use, this article will develop new axioms, discuss advantages for Department of Defense (DOD) use, and develop some practical methods for the DoD to promote open-source solutions.

 

BNET TalkbackShare your ideas and expertise on this topic

Please add your comment:

  1. You are currently: a Guest |
  2.  

Basic HTML tags that work in comments are: bold (<b></b>), italic (<i></i>), underline (<u></u>), and hyperlink (<a href></a)