<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<H2>Year Two</H2>
<P><A HREF="../lspintro.html" TARGET="_blank">-Louis Su&aacute;rez-Potts,
Editor</A></P>
<P><I>2002-10-14</I></P>
<H4>An Extraordinary Year</H4>
<P>This year has been extraordinary for OpenOffice.org, and any report
of what has happened could not do justice to all who have made it happen nor to
all that has happened. So, first off, allow me to state that the most
remarkable thing about the last year has been&#151;and will continue to
be&#151;the growth and maturation of the OpenOffice.org community. </P>
<P> I include the developers and endusers and everyone who has either coded or
submitted patches, suggestions, advice, bugfixes, constructive complaints (lots
of those!), praise (lots of that, too), time, effort, money, sleep. </P>
<P> Congratulations, all! This project has far exceeded its promise.
OpenOffice.org is used now by millions of people throughout the world,
as well as in corporations and governments, both large and small, thanks to
you. </P>
<P> Why do they use it? Because it answers the question of not, "Where do you
want to go today?" but, "What do you want to do today?" The first is silly and
assumes you have lots of cash, the second real and makes no assumptions. It in
fact gives you the capital to do what you need to do. </P>
<P>People use OpenOffice.org because it, and the project, work for them.
They may be using Linux, Solaris, Windows, FreeBSD, LinuxPPC, IRIX, Linux
S/390, TRU64, Mac OS X (via X11): virtually any flavor of Windows or Unix.
OpenOffice.org will write, draw, calculate, present in at least 23
languages, and do it using internationally standardized technology that is more
robust than, well, you-know-what, whose documents it reads&#151;and will even
fix. </P>
<H4>The Difference Community Makes</H4>
<P>"OpenOffice.org demonstrates that a partnership between a large
corporation and the open source developer community is not only possible, but
highly productive"&#151;<EM>Tim O'Reilly, CEO of
<A HREF="http://www.oreilly.com">O'Reilly &amp; Associates</A>.</EM></P>
<P> A year ago, when I wrote <A HREF="ec13Oct.html">the first birthday
report</A>, I was discussing the 638c build. We were not thinking of endusers.
But that was before the proposal to adopt the community-sponsored and
maintained OpenOffice.org
<A HREF="../about_us/numbering_proposal.html">was agreed to</A> by the
community earlier this year.</P>
<P> The effect of this decision has been monumental and it is still growing. In
a nutshell, the decision shifted more control to the volunteer community over
the content and scope of the stable release offered by the Project,
OpenOffice.org, thus affirming the implicit covenant between
volunteers and Sun, which founded and substantially funds the project. In the
last nine months, it has been increasingly the volunteer community, not just
Sun, which has shaped the product and the project. And this shaping has only
begun. </P>
<P> OpenOffice.org has shifted its focus to include the contributions of
endusers as well as coders; and for both groups, we are making it easier to
contribute. The recently released SDK is meant to offer developers the tools;
documentation and Web areas are coming soon. The
<A HREF="http://native-lang.openoffice.org/">Native-Lang</A>,
<A HREF="http://marketing.openoffice.org/">Marketing</A>,
<A HREF="http://incubator.openoffice.org/">Incubator category</A>,<A
HREF="http://qa.openoffice.org/">QA</A>, and
<A HREF="http://website.openoffice.org/">Website</A> projects all accommodate
the enthusiasm of people who want to give back to the project what it has given
them. This generosity characterizes Open Source. But no other Open Source
project of our size, our scope, and our importance has been able to so
successfully engaging this enduser enthusiasm to further the Project's goals.
Leading this effort is the recently formed <A
HREF="http://qa.openoffice.org/">QA Project</A>, which has taken on the task of
coordinating work on producing community-sponsored products that have been
tested by endusers. </P>
<P> We are in fact changing not just what is meant by Open Source but the
expectations corporations have in going Open Source. The ramifications are
profound. Two key projects are the <A
HREF="http://native-lang.openoffice.org/">Native-Lang category</A> (an ensemble
of projects) and the <A HREF="http://marketing.openoffice.org/">Marketing
Project</A>, which have altered the way an Open Source project's technology is
communicated. Because of Native-Lang, we can coordinate the way users and
developers learn of OpenOffice.org and offer to new users and developers
the model of a participatory community. OpenOffice.org is not just a
product but a process and a relation to a product; the Native-Lang projects
help to further that idea. </P>
<P> Native-Lang works in complement with the Marketing Project, which
recognizes the importance of communicating our message the form that is
understood by corporations and governments. As a result of Marketing's push,
OpenOffice.org is widely recognized and has been repeatedly featured by
the news media, both U.S. and throughout the world. </P>
<P> The marketing has been effective, too, both in promulgating OpenOffice.org 
  1.0 and in bringing in new developers and contributors. Since the launch of 
  OpenOffice.org, on May 1, 2002, more than five million people have downloaded 
  the product, more than 60 thousand have joined the project. And that's not all. 
</P>
<P> <A HREF="http://news.com.com/2100-1001-949913.html" TARGET="_blank">Verizon
now uses OpenOffice.org 1.0</A>, and it has saved the company millions of
dollars. It's the largest corporate user of OpenOffice.org that we
are aware of but, as our <A HREF="../about_us/testimonials.html">Testimonial page</A>
indicates, it is not the only one by any means. As well, national and local
governments throughout the world are turning to OpenOffice.org. Partly,
this surely has to with
<A
HREF="http://www.wininformant.com/Articles/Index.cfm?ArticleID=26096">Microsoft's
new licensing program (6.0)</A>, which assumes that the paying corporation is
rich and, importantly, has no other choices (in fact, "no choice" sums up
Microsoft's strategy). But the move to OpenOffice.org also has to do
with the recognition that the very relationship Microsoft has furthered and off
of which it has gotten so rich is not in the people's best interest. It's not
even in a corporation's. </P>
<P> In the next six months I fully expect that everything we have so far seen 
  and marveled over&#151;OpenOffice.org's popularity, the growth of the project&#151;will 
  prove to be hints to something vaster. OpenOffice.org is a product that is being 
  recognized as immediately usable but also as something to which one can <I>add</I> 
  things; and OpenOffice.org as a community is only beginning to shape the way 
  people think about their product.</P>
<P><A HREF="index.html">Previous Interviews and Articles</A></P></body>
</html>

