<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>Community  Articles: Opinions, Interviews, Analyses</h2>
<p><a href="../lspintro.html" target="_blank">-Louis Su&aacute;rez-Potts</a> </p>
<p>2001 November 9</p>
<br>
<h4>Participating in OpenOffice.org</h4>
<br>

<h4>Introduction</h4>
	
<p> OpenOffice.org needs your participation. Yes, we are big and getting bigger. 
  And yes, the code now works. But this last year, for all our successes, has 
  only been a start. What we need now is to establish clear resources that will 
  allow users of whatever background to build the project efficiently and take 
  it to the world. If we imagine project as a house, in the first year we laid 
  the foundation; we now must actually build the house on that solid work. </p>


<p>
You can help. The OpenOffice.org architecture allows community members of all levels of skill to participate in building the code. But it is not always clear where a community member should go or how he or she should help out. There are not signs, no instructions, no charts telling wannabe developers "Help Here!"
</p>

<p> Well, this short guide is a step in helping out interested contributors. There 
  will be subsequent installments on this topic, and in the coming week, I will 
  also be consolidating previous work on how to contribute to OpenOffice.org. 
  For now, however, this entry will focus on using the mail lists. The next article 
  will be on <a href="../project_issues.html">IssueZilla</a>, with a subsequent 
  article on proposing projects. </p>


<br>
<h4>What to do</h4>

<p> First, if you are not a software developer, abandon the misconception that 
  you can't help build the code. OpenOffice.org supports the work of nondevelopers 
  both by encouraging every registered user to track and file issues (bugs) and 
  fixes, as well as other user issues, and by enabling community members of whatever 
  coding skill both to join in existing, approved projects and to participate 
  in proposing new projects in the Whiteboard category . </p>

<p>
What this means is that OpenOfice.org is a project both for developers who can code <i>and</i> for endusers who don't know how to code. After all, we are not just building a new office suite for the people of the world, but a new way of building a complex community and project collaboratively and boldly. Quite seriously, we are doing things here that no one has done before, at least not on this scale. And we are serious about seeking to include everyone who is interested in our project.
</p>


<p> So, let's say that you've decided to help out. Where do you start? Well, as 
  Linus Torvalds has said about Linux, one of the chief advantages of Open Source 
  methodology is that it allows regular users to improve the product, just by 
  <i>using</i> the product, documenting the bugs and issues encountered, and submitting 
  these findings to the relevant project within OpenOffice.org. </p>

<p> Let's phrase that more strongly: the OpenOffice.org project leads want you 
  to contribute your discoveries and suggestions to the project, which, if you 
  contribute, is also <i>your</i> project. Yes, the discussions in the project 
  mailing lists can sometimes be very technical and even off-putting; but that 
  does not mean that your submissions are going to be disregarded because they 
  are coming from someone new to the project. On the contrary; new suggestions 
  are desired because they cast new light on old problems. </p>


<p> But this still raises the question of, "How do I submit my discoveries, suggestions, 
  ideas? And to whom?" To address these points, I'll first go over what could 
  be called the zones of community participation: Mailing Lists, IssueZilla, project 
  website. </p>

<p> In a previous <a href="ec13July.html">article</a> ("The OpenOffice.org Infrastructure 
  Upgrade, Part II"), I discussed the advantages of not only joining OpenOffice.org, 
  but also specific projects. The separate question, How do I propose a new project? 
  will, as I mentioned above, be answered in a subsequent article.</p>
<br>
<h4>Zones of Participation</h4>


<p> <b>Mailing Lists</b> Community members are doubtless aware of the heavily-trafficked 
  "discuss" and "users" list; these are used for general discussions relating 
  to OpenOffice.org and Open Source or, in the case of the "users" list, to the 
  actual use of the OpenOffice.org product. So, if you have some points to make, 
  consider the "discuss" list, and if you have some questions about using the 
  product, the "users" list. (A plug for the "users" list: It is increasingly 
  popular, for it is here that regular users stand an excellent chance of quickly 
  finding answers to common problems encountered in using the office suite.) </p>


<p>
Virtually every OpenOffice.org project also has its own discussion list, usually a "dev" mailing lists, and it is here where a lot of a project's work is done. A community member, then, who wants to make specific contributions may therefore wisely decide to post those contributions to a project's dev mailing list. In fact, I should phrase that more strongly: if you are going to submit your discoveries via mail list, please use the specific project mail lists and not the discuss list. This is why: there is a lot of chaotic traffic on the discuss list, and suggestions tend easily to get lost in the welter. What is more, it's not certain that the developer who is familiar with your issue will actually be on the list when you post your message.  Of course, if you do post it, don't worry: the community managers (who are the webmasters) moderate the list and are able to direct the mail to its proper place. 
</p>

<p>
<b>Webmasters</b>  This list is not a discussion list. It has two main functions. First, it gives people a channel to the supposed masters of this website. This is important for any question about certain features of SourceCast (the platform on which OpenOffice.org operates), comments on the site, discoveries of broken links, and so on. Second, it allows users unfamiliar with the way Open Source works to send mail to an address that they are familiar with. Sometimes these messages are not really suited for webmasters, in which case we generally will redirect them to the appropriate list and inform the sender of our actions and how to view responses. 
</p>

<p>
Who are the webmasters?  Louis Suarez-Potts, Zaheda Bhorat, and Max Lanfranconi; we are all community managers and each of us trades off on reading and moderating the discuss list; Max is the sole moderator for the "users" list.  You can find out more by going to the "<a href="//about.html">About Us</a>" page.
</p>

<p>
<b>Note:</b> You do not have to be a registered user to use our mailing lists, subscribe to them, or check the archives (with a few exceptions).  The mailing lists are out there for anyone to use and benefit from.
</p>

<p>
However, we prefer it if you subscribe to the list you are posting to, as that makes it easier on the moderator, who must moderate every unsubscribed message; besides, by subscribing you can follow responses to your post (as opposed to just checking the mail list archives). But it is not required that you always subscribe, and many people prefer to remain unsubscribed, precisely because they do not want to be sent all the mailing list messages (and on active days, that can be quite a lot). You should also recall that most lists have a "digest" version: a synopsized version of the mail that is sent out each day. The day's messages are listed there, but you can this way avoid having to deal with a stuffed mailbox of messages that may only partially interest you.
</p>

<p>
To learn more about the more popular mail lists, go to our <a href="../mail_list.html">Mail List page</a>.  It's constantly being updated--we just added search links to the page--and it lists not only the mail list links and subscription information, but also details the basic etiquette we expect all OpenOffice.org community members to follow.
</p>

<p>
And, if you have any questions about these lists, or any other feature of the project's site, please send mail to <a href="mailto:dev@openoffice.apache.org">dev@openoffice.apache.org</a>.  
</p>



<p>&nbsp;</p>
<p><b>IssueZilla</b> Next week, I will examine and explain how to use (and why) 
  our issue and bug tracker, IssueZilla. </p>
<p>&nbsp;</p>
<p><a href="index.html">Previous articles</a></p>

</body>
</html>

