<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>Interview: Danese Cooper, Sun Microsystems, Inc.</h2>
<p><a href="../lspintro.html" target="_blank">-Louis Su&aacute;rez-Potts, Editor</a></p>
<p><i>2002-10-14</i></p>


<p>Louis Su&aacute;rez-Potts: <i>Danese Cooper is Sun's Open Source Programs Manager and arguably , as May's <a href="http://interviews.slashdot.org/article.pl?sid=02/05/09/0242219" target="_blank">slashdot Q & A </a> would indicate, one of the more influential voices in Open Source today. That's because in the last two years the nature of Open Source has evolved as more corporations have entered the game, such as IBM, among others. Open Source is increasingly a funded corporate strategy.  And in this game, Sun is, in many ways, the most committed of the players to the logic of Open Source. It currently is supporting not only OpenOffice.org, but also several other important Open Source efforts,such a <a href="http://www.jxta.org" target="_blank">Project Jxta</a>, <a href="http://www.netbeans.org/" target="_blank">Netbeans</a>, <a href="http://www.jini.org/" target="_blank">Jini</a>, and others. These represent very significant investments. Sun, in short, is paying more than lip service to Open Source.</i></p>


<p>Danese Cooper:  Amen!</p>

<p><i>Take Scott McNealy's speech at the recent Linux World Expo. <link here, eg, http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2877182,00.html> In the keynote, OpenOffice.org was cited no fewer than five times by my count as emblemizing the success of Open Source projects. But OpenOffice.org is unique in that, like Mozilla, it offers endusers something they can get their hands on. So the endorsement raises some interesting questions:  In what ways has OpenOffice.org's success among endusers changed the way in which Sun views Open Source projects?</i></p>


<p>OpenOffice.org spent most of its first year as a curious experiment in the eyes of many (but certainly not all) of Sun executives.  It cost a lot of money to create and support and then we were giving it away!  But the success of OpenOffice.org is very convincing.  It wildly exceeded distribution projections, which was a problem at first because of the cost of the bandwidth consumed in serving the binaries, but is now hugely helped by the volunteer mirroring system.  Then Sun was approached by a group of potential users of <a href="http://www.sun.com/staroffice/" target="_blank">StarOffice<sup>TM</sup></a> (our Sun-branded distro of OpenOffice.org) who actually preferred to pay money for it.  So now we charge a small amount for StarOffice and sell Enterprise Support contracts as well.  Finally everyone at Sun can see how growing a broad base of ubiquity can drive sales of branded and supported versions of the same software.</p>

<p><i>As a follow-up, how has the growth and size and enduser character of OpenOffice.org affected its original goals?  (I'm thinking here that two years ago, when we first launched the code, we never imagined that OpenOffice.org would be the way it is today....)</i></p>

<p>Well, we never foresaw that the community would effectively take over the marketing of OpenOffice.org, but essentially that is what has happened.  Community members prepare very professional (IMHO) marketing collateral and then translate it into local languages to reach a much larger market than StarOffice could ever reach with only Sun doing the marketing on a cost/benefit basis.  Prior to OpenOffice.org, Open Source projects were only considered successful if scores of Open Source developers showed up to enhance the codebase, but OpenOffice.org redefined Open Source success in a way.  It makes me think that perhaps the true benefit of Open Source is not "free engineering" as ESR (<a href="http://www.tuxedo.org/~esr/" target="_blank">Eric S. Raymond)</a> has asserted in his <a href="http://www.tuxedo.org/~esr/writings/" target="_blank">writings</a>, but rather the tight feedback loop that allows users to give nearly instant responses as new features are implemented.</p>


<p><i>I'd like to focus on licensing issues: OpenOffice.org <a href="//about_us/pdl_jca_announce.html">recently changed its licensing structure</a>. Does this structure now obtain for other projects? And, perhaps more importantly, what are the implications for Sun (and for the community) of the new joint copyright assignment form?  That is, how will it change a developer's approach to working on OpenOffice.org (or any other Sun OS project)?</i></p>

<p>Community member's concerns over the required assignment of copyright on community contributions to Sun convinced us to research and eventually author the <a href="//FAQs/faq-licensing.html#usinglicenses" target="_blank">Joint Copyright Assignment</a>, which is a big improvement over the old agreement because it allows contributors to retain original rights to their work and only asks them to confer a copy of those rights to Sun.</p>

<p>Copyright Assignment is a hot topic just now in the world of Open Source!  Most of the traditions of Open Source have at their root a profound hacker desire to "be done with corporate tyranny" in the form of lawyers and marketeers who get in the way of "just coding."  For this reason, the early large projects with corporate sponsorship (like Mozilla) made a practice of NOT collecting copyrights with contributions.  Mozilla ran into trouble when it later decided to change licensing terms from a dual license to a tri-license to attract Free Software advocates (and include the GPL family). Since they didn't have all the copyrights, they were faced with a dilemma.  How could they get permission from ALL the many contributors to the codebase? Under US copyright law, every contributor must give permission, and of course even finding them all was a challenge (they now have around 90% permissions)!  The result is that some of the Mozilla codebase is tri-licensed and some of it is not.</p>

<p>Sun chose to collect copyright assignments for OpenOffice.org on the advice of Richard Stallman.  He advocated the dual-licensing scheme for OpenOffice.org and pointed out that the only way to manage it was to collect copyrights. Every Sun-sponsored Open Source project since OpenOffice.org has had a copyright assignment component as well.  We are now working to convert those communities to use the Joint Copyright Assignment because it is fairer to those community (and also makes more sense in the context of the European Union laws on copyright).</p>

<p>I think the JCA should clear up developer concerns over giving contributions to Sun-sponsored projects. I'm hoping that the JCA, together with the establishment of a Community Council (which is moving forward) and the Release Council will help those contributors who want to be more involved in the evolution of the project find entry points to deepen their involvement.</p>

<p><i>Government: I'd like to turn to an area that has lately garnered a tremendous amount of interest, OpenOffice.org and Open Source in government. In the US there are a few (<a href="http://www.oreillynet.com/pub/wlg/1840" target="_blank">controversial</a>) movements to require <a href="http://news.com.com/2100-1001-949241.html" target="_blank">local governments to use Open Source Software (OSS)</a>, and throughout the world, there is <a href="http://www.opensource.org/docs/peru_and_ms.php" target="_blank">Peru</a>; and many other state governments are debating the switch to OSS and away from proprietary software. You will be attending  the <a href="http://www.egovos.org/" target="_blank">Open Source for E-Government Conference</a> in Washington, DC, this October. If it is not too early to ask, what are the issues you will be addressing?</i></p>

<p>They've asked me to present on OpenOffice.org and also to participate on a panel with other members of large software industry corporations on Open Source.  I speak all over the world on these two subjects, so I imagine the questions will be similar to those I've heard before (included here with short answers):</p>

<p class="sub1em"><strong>Why is Sun so involved in Open Source?</strong></p>

<p class="subp2em">Because it matches our motto "Cooperate on Standards; Win on Implementation".  Bill Joy has long maintained that "Innovation Happens Elsewhere" and since our interest is to help technology move forward (not to lock-in our customers) it makes sense that Sun would be deeply committed to work in ways that foster innovation and ubiquity of great technology while allowing customer choice.</p>

<p class="sub1em"><strong>Can you describe the methodology used on Sun-sponsored Open Source projects?</p></strong>

<p class="subp2em">Publish the code in publicly accessible CVS trees under one or more Open Source licenses.  Conduct development transparently.  Do your best to answer questions from the community and to accept community input.  Make all bugs and their status public.  Encourage reuse of the code in expected and unexpected ways.  Publish roadmaps and wish lists so the community knows where to offer assistance.  Periodically brand-wrap a version of the code to which you apply deep QA, contributing all fixes back to the CVS trees.  Offer support contracts and other value adds on the brand-wrapped version.</p>

<p class="sub1em"><strong>Can you explain the differences between Open Source licenses?</strong></p>

<p class="subp2em">Yes, but it isn't a short answer ;-)...I'd like to think we've explained the licenses cogent to OpenOffice.org pretty well in the FAQs.  The larger question of why there are so many licenses is a tough one.  Its a real problem in Open Source that the license wars continue to segregate codebases from each other.  Dual-licensing or Tri-licensing is one way to get around the problem, but the administration of multi-licenses is not easy either. Many of us who advocate for Free and Open Source have wanted to work on a solution to this basic problem (for instance Organizations like OSI are trying to create "template" licenses which can be reused to clear up some of the confusion), but even in this we are currently divided.  In a real sense this may be the biggest problem.</p>

<p class="sub1em"><strong>How are modifications to Open Source software documented?</strong></p>

<p class="subp2em">The history is all maintained within the project.  You can see the checkins by subscribing to a mail list, or you can research them post-facto in the CVS histories.  Likewise the mail lists and bug databases are visible and archived.  This is basic to Open Source methodology, as it saves having to train new community members (be they Sun employees or not).  Newbies can reasonably be pointed at the archives to do their learning.</p>

<p class="sub1em"><strong>How can we document the quality of Open Source software (this is 
important in regulated industries)?</strong></p>

<p class="subp2em">This is a relatively new consideration for me, and I think its worth mentioning here.  It is common in regulated industries to demand that producers of products which affect public health or safety (for instance nuclear power plants) must document all systems associated with the creation or delivery of the product.  It is NOT part of the Open Source ethic to benchmark and document quality in the same way that proprietary hardware (and software) is typically documented.  That it is NOT documented is part of the reason it is low cost.  There is currently tremendous economic pressure on all industries to streamline production costs, and of course they are looking at Open Source software.  But in regulated industries they can't use software that hasn't been validated as having sufficient quality (not just how crash-proof it is, but how reliably does it perform tasks without altering critical content?).  I <i>think</i> this is probably a business opportunity to validate quality on standard Open Source distros and sell that as a value-add, but of course there would be an incremental cost which would have to also cover the liability incurred by warranty.  Interesting thing to think about in any case.</p>

<p class="sub1em"><strong>What kind of warranties are available on Open Source software?</strong></p>

<p class="subp2em">Virtually all Open Source projects (including OpenOffice.org) disclaim any liability resulting from use.  Companies like Sun would say that is this one of the major value-adds of brand-wrapped versions like StarOffice: Sun stands behind it.</p>

<p class="subp2em">And the perennial favorite:</p>

<p class="sub1em"><strong>What effect do you think Open Source will have on the software industry over the long term?</strong></p>

<p class="subp2em">I think it is clear now that we are looking at nothing less than a future where high-quality infrastructure software is pervasively available at no cost to consumers and with licensing terms which allow consumers to make their own modifications.  This future holds some unknowns, but from my point of view it looks like consumers and even whole countries entering the technology age will benefit.  Some large companies who have made money by providing this type of software in such a way as to maximize their profit will be faced with the choice of changing their business models or ceasing to exist.  Sun is working honestly in this new space, and we've been doing so for years now.  I think its clear that there are things the old proprietary models allowed (R&D that seeded unexpected consequences for instance, and also value adds such as quality validation and resultant warranties appropriate to regulated industry) which Sun is committed to continuing.</p>

<p><a href="index.html">Previous Interviews and Articles</a></p>


 </body>
</html>

