<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>The Build</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>
<h2>Editor's Column</h2>
<p>9 January 2001</p>
<p><b>The 613 build:  problems and opportunities</b></p>
<p>On 13 December 2000, Sun’s engineers released the 613 installation set (the 
  latest build) to the OpenOffice.org community.  As with all of previous builds, 
  Sun’s engineer’s had thoroughly tested the software on the standard assortment 
  of boxes and under the usual circumstances.  The release performed as designed, 
  and there was no reason to suspect that any problem would be worse than the 
  usual for a pre-alpha release.</p>
<p>For these reasons, then, the bugs that were immediately discovered by community 
  members who attempted to install and run the software were all the more surprising. 
  The bugs rendered the software by and large inoperable and unusable. These community 
  members were not, it should be stressed, using strange boxes; their setups were 
  perfectly ordinary. What is more, all previous builds installed as expected 
  and were stable. </p>
<p>The traffic in the &quot;discuss&quot; mailing list was far greater than average, 
  and members were busy offering warnings and advice.  But it seemed that many 
  community members could not successfully install the build, let alone run the 
  software.</p>
<p>Once the extent of the problem became clear, pulling the installation set became 
  a plausible response. From this perspective, the 613 build reflected an inexplicable 
  and slightly embarrassing slip-up in quality assurance that should not be inflicted 
  on the community at large. Indeed, barely twenty-four hours after the release, 
  Sander Vesik initiated a <a href="//servlets/BrowseList?list=discuss&by=thread&from=1693">new 
  thread</a> in the &quot;discuss&quot; list that asked the community members 
  whether the installation sets should be pulled. At the heart of the query lay 
  the concern that community members were both wasting their time with 50-plus 
  megabyte downloads and that the OpenOffice.org project was revealing itself 
  to be an unprofessional effort.</p>
<p>The response to Sander’s poll was immediate and at first seemed to lean toward 
  the idea of pulling the installation set, with one correspondent arguing that 
  removing it would &quot;save face.&quot; But then OpenOffice.org Community Manager 
  Adam &quot;Goolie&quot; Gould persuasively <a href="//www-discuss/current/msg01070.html">argued</a><span class=MsoHyperlink><span style='color:blue'><a
href="//www-discuss/current/msg01070.html"> </a></span></span>that 
  saving face was not the point of an open-source project:  </p>
<p>&quot;If this were a proprietary beta release,&quot; Goolie pointed out, &quot;then 
  yes, we all wouldn't want to 'look bad' in front of our customers, and would 
  be worried about damaging our reputation in the market.&quot;  But the build 
  was not a proprietary beta release, and OpenOffice.org is not a proprietary 
  project. In fact, OpenOffice.org is an important leader in the open-source movement 
  and, rather than illustrating a failure of QA, the problems surrounding the 
  release and the community response indicate the <i>strength</i> of the open 
  source model for finding and addressing development problems.</p>
<p>That’s because, &quot;As far as Sun could tell, they released a perfectly fine 
  build; it worked on all their test cases.  We only discovered problems when 
  you, the larger OpenOffice.org community, discovered some issues on your unique 
  &quot;test cases&quot;.  This is exactly when we need your help.&quot; The great 
  advantage, in short, of an open-source community lies precisely in its ability 
  to spot (and even fix) bugs of this sort.  Pulling the build would thus defeat 
  the purpose of OpenOffice.org, which does not pretend to release bug-free builds 
  and relies on the dialectic relation with the community members to create better 
  software.</p>
<p>The installation set was not pulled. But, prospective downloaders were warned 
  that the build was problematic.  Has the project suffered as a result of the 
  problematic build? There’s no easy way to tell. But, judging from the level 
  of developer engagement, measured by mailing-list posts and downloads, the answer 
  is, no.  In fact, for the week of 17 December to 23 December, there were a very 
  impressive 4,310 downloads. The numbers suggest, in short, a community hardly 
  scared by the problems of the build and instead even more engaged, even more 
  interested in the future of OpenOffice.org.  </p>
<p>My next column addresses a point recently raised in the discuss mailing list 
  and that can be summarized as, Whither OpenOffice.org? or, Where do we go from 
  here? And, as always, if you have any questions, suggestions, or comments, please, 
  don't hesitate to e-mail me at the address below.</p>
<p>--<a href="//lspintro.html">Louis Suarez-Potts</a> 
  (louis at collab.net)<a href="#whystar">*</a></p>
<p><a name="whystar">*</a> By spelling out the mail address, I'm hoping to defeat 
  spam crawlers.</p>
  </body>
  </html>
