<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>Community  Articles: Opinions, Interviews, Analyses</h2>
<p>Editor: <a href="../lspintro.html" target="_blank">Louis Su&aacute;rez-Potts</a>
<br>
<p>2001 September 11</p>
<br>
<h4>About Marketing in an Open Source Community </h4>
<p><a href="#gian">-Gianluca Turconi</a></p>
<br>
<p>The idea of an OpenOffice.org Marketing project is born from the assumption 
  that an Open Source community should know what the needs of its members are, 
  so that it can resolve problems in a fast and fair way. The reaction of our 
  community to the proposal was contradictory, even if encouraging. In fact, many 
  people believe that marketing is applicable only to the free enterprise system 
  and to the world of the corporations. </p>

<p>Is the OpenOffice.org suite a product? Do the developers receive a suitable 
  support from the community? Is the OpenOffice.org suite only for Linux? These 
  questions and many others very similar were asked in OpenOffice.org lists in 
  the last couple of weeks. The answers were very different, and they were sometimes 
  incompatible. This example shows how an Open Source community can have several 
  voices inside: the developer, the user, the researcher, the amateur, the professional. 
  And everybody will have his or her own answer, because everybody has his or 
  her own needs.</p>


<p>Doing "marketing" in an Open Source community has an additional difficulty 
  in comparison to the traditional market analysis. Normally, a corporation knows 
  what its productive capabilities are, what it can afford and what it cannot. 
  On the other hand, we need to know what we can do and only then, we will be 
  able to define a strategy to achieve our goals. Several uncertainties can affect 
  the success or the failure of an Open Source project. The most important among 
  them is surely the consistency and quality of its members. But, how can we increase 
  the number of our members without knowing the needs of those people who are 
  currently part of our community and of the others who may join the community, 
  if only. . . ?</p>
<p>An OpenOffice.org Marketing project could be the solution. The working structure 
  would be simple: Analysis, Interpretation, and Communication. </p>
<p>On the internal side, this concept first means to understand the motivations 
  of the members, how they express them in their work for the community, and how 
  they would react to specific community behaviors. The &quot;Linux vs. MS Windows&quot; 
  diatribe can be used as example. Many members are Linux users and a high percentage 
  among them considers OpenOffice.org as a Linux project. They demand or propose 
  improvements for Linux only, forgetting that one of the most important features 
  of the OpenOffice.org suite is to be multi-platform. This is the Analysis phase. 
  Now, we know that Linux users can have a monothematic vision of the OpenOffice.org 
  Project. In the Interpretation phase, we should understand the reasons behind 
  this behavior, by asking: Do they understand the full nature of the OpenOffice.org 
  Project? Are they ignorant of the Project? Or, is this a problem related to 
  their philosophical interpretation of Open Source? After we have a sure answer, 
  we'll be able to communicate in the right way that OpenOffice.org is a 
  multi-platform project. Nobody will be unsatisfied (which would risk member's 
  defection) and the correct information will be received.</p>
<p>On the external side, an OpenOffice.org marketing project would have to face 
  a double challenge: How to gain new members and how to handle the growing success 
  of our suite! Fortunately, whoever is a potential member of the community is 
  also an potential OpenOffice.org end-user. So, the classical marketing techniques 
  can be applied to both categories. The contradictory reactions, of which I was 
  speaking above, were just about these topics. Must the OpenOffice.org community 
  provide marketing, support, and other related services for the end-users? Some 
  community members object that we are not ready to offer such kind of services. 
  They say we lack the developers, the members; in a nutshell, the forces to meet 
  the challenge. </p>
<p>The secret of an Open Source community is that nobody knows its potential. 
  Neither the founders nor the members. It can only be perceived by intuition 
  or with a marketing survey. . . . The weekly increasing number of binaries downloads 
  mean something: Out there, in the world, there are several thousand of latent 
  OpenOffice.org members; and they are end-users. </p>
<p>Another objection to an external marketing effort is that a lot of end-users 
  are non-technical people (in a strict sense) and they could ruinously flood 
  the OpenOffice.org web site and mailing lists. Put aside the fact that many 
  non-technical people are already contributing to the Project, we have to understand 
  that when an Open Source community achieves the success level OpenOffice.org 
  has achieved, it has new needs that the developers cannot satisfy. Of course, 
  using a technical terminology, the &quot;kernel&quot; of the Project will be 
  the developing of the source code as essential priority, but the superstructure 
  will be composed (and partially is already now) by non-technical members: lawyers, 
  marketing experts, writers, and journalists. So, the source is the base, but 
  law must protect it, it must be valorized in the software market and the world 
  must know of its existence! </p>
<p>Finally, the hardest objection made is that whatever expectation the end-users 
  could have, no member can guarantee that the community will satisfy it. This 
  problem can seem equal to the first one discussed in this article: the lack 
  of available forces. Instead, it is quite different. Here, the focus is not 
  pointing to the number of developers, but to their will. A programmer's motivation 
  can vary considerably: study, amateur or professional interest, ambition (yes, 
  even that!). What would happen if a group of core developers, who are working 
  on a code Project, didn't want to change their program to follow a suggestion 
  of the marketing project based on an end-users request? Well, it can be said 
  that marketing management individualizes the problems, suggests the solutions, 
  but doesn't solve them directly. The community is based on the collaboration; 
  we'll find a workaround.</p>
<p>In conclusion, an OpenOffice.org Marketing project has its pros and its cons, 
  but seeing the enthusiasm raised from this proposal, there's no doubt that the 
  benefits will be more than the costs. </p>
<p>&nbsp;</p>
<h4>About the author<a name="gian"></a></h4>
<p>Gianluca Turconi is a writer living in Italy whose passions are law, literature, 
  and competitive cycling. And, of course, OpenOffice.org, where he is a member 
  of the <a href="http://whiteboard.openoffice.org/doc/">Documentation</a> project, 
  the leader of the Marketing project, and a frequent contributor to the general 
  discuss list. You can read his bio in our <a href="spotlight14.html" target="_blank">Spotlight</a>.<br>
  <br>
</p>
<p><a href="index.html" target="_blank">Previous articles</a></p>
</body>
</html>

