<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<title>Editor's Column: 16 January 2001</title>

<h2><font color="#cc6600" face="Courier New, Courier, mono">Editor's Column</font> 
  <font face="Courier New, Courier, mono"><br>
  </font></h2>
<p>-<a href="//lspintro.html">Louis Suarez-Potts</a><br>
</p>
<p> 16 January 2001<br>
</p>
<h4>Quo Vadis OpenOffice.org?</h4>
<p>Where is OpenOffice.org headed? It is, of course, far too early to consider 
  seriously answering that question. As I write this, OpenOffice.org is barely 
  three months old; the community that has formed around the project is still, 
  in fact, coming to terms with the enormity of the task. And although the next 
  version of Sun's StarOffice, StarOffice 6, which will employ a good portion 
  of the technology created by OpenOffice.org, is scheduled to be released <a href="http://www.zdnet.com/eweek/stories/general/0,11011,2672703,00.html">later 
  this year</a>, that release will hardly spell the end of the project. It goes 
  without saying that the nature of an open-source project is precisely that it 
  is never done. There is always something that can be improved.</p>
<p>This incessant perfectionism does not mean that there must be no roadmap for 
  open-source projects, however. It is to say, though, that the great strength--and 
  perhaps also a small weakness--of open-source projects lies precisely in their 
  anarchic creativity, which roadmaps try to contain and channel. But here lies 
  the difficulty, for a roadmap that is too confining risks destroying the very 
  thing that open source models engender. </p>
<p>OpenOffice.org is often compared to Mozilla.org, and the comparisons are just. 
  Both projects are enormous, and both aspire to run across platforms and in a 
  way that allows users greater reliability and flexibility than current programs. 
  For this reason, it is worthwhile glancing at Mozilla.org's recent <a href="http://www.mozilla.org/roadmap.html">roadmap</a>.</p>
<p>To begin with, Mozilla.org's roadmap serves primarily as a list of stages and 
  milestones that should be met. Underlying Mozilla.org's or any open-source's 
  roadmap is the emphasis placed on the community's role in determining the actual 
  product. This is not merely a marketing ploy to entice community members. The 
  community quite clearly controls much of the direction of the project and obviously 
  determines its actual success. But not entirely; the governing body--however 
  it is defined and constituted--sets the goals and limits the activity. </p>
<p>In Mozilla.org's roadmap, for instance, the community's imagination is almost 
  bound to the more tedious chore of making the program perform stably and correctly. 
  But even here, the binding terms are laced with implicit apologies to the plausibly 
  frustrated contributors, and Brendan Eich, the author of the roadmap, goes out 
  of his way to &quot;make clear here that useful and relevant (defined by the 
  community) extensions are always welcome, provided&quot; that is, that they 
  don't interfere with the charted goals. </p>
<p>Much younger than Mozilla.org, OpenOffice.org is still very much in the period 
  of creative growth. Ideas and suggestions are very much welcome, from anyone 
  in the community; <a href="//www-discuss/current/msg01163.html">wishlists 
  can become reality</a>. But all this depends on the nature of the dialectic 
  established by the community (however defined: it may include users, too) and 
  the governing body. </p>
<p>This issue is far larger than any one article can encompass. In the coming 
  weeks, I will be revisiting it. In my column for next week, I will begin an 
  examination of the structure of another enormous open-source project, Apple's 
  Darwin. </p>
<p>&nbsp;</p>
<h4>Previous columns</h4>
<p>3 January 2001 <i><a href="SunsOpenDoor.html">Sun's 
  open door</a></i></p>
<p>9 January 2001 <i><a href="thebuild.html">The 613 
  build:&nbsp; problems and opportunities</a></i></p>
<h4>&nbsp;</h4>
<h4>E-mail: louis at collab.net*</h4>
<p>*By spelling out the mail address, I'm hoping to defeat 
  spam crawlers.</p>
</body>
</html>

