<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Interview: Sophie Gautier</title>
</head>
<body>

<p class="Header"> Interview: Sophie Gautier </p>

<p> <a href="../lspintro.html">-Louis Suárez-Potts</a> </p>
<p>2004-09-12</p>
<p></p>
<br><br>



<p> Sophie Gautier is the lead of the <a href="http://fr.openoffice.org/">French Native Language Project</a> and a member of the <a href="http://council.openoffice.org/">Community Council</a>, OpenOffice.org's governing board.  She has been involved in developing and leading OpenOffice.org almost since the beginning.  Sophie lives in and works out of Burkina Faso, a habitation which has presented unique opportunities. </p>
<br>

<p> <i>Sophie, I'll start with the basic question:  How did you initially get involved in OpenOffice.org?</i> </p>


<p> I first was involved in the <a href="http://documentation.openoffice.org/">Documentation Project</a>, writing how-tos and working on the FAQ. And I also lurked on the discuss list and and gave my opinion sometimes.  Then the native-lang project was discussed and the Francophone project created, so I worked for it. But I  still belonged to the Documentation Project and, in addition, became a member of <a href="http://marketing.openffice.org/">Marketing Project</a> at its beginning, several years ago. </p>
<br>


<p><i>You have been the lead of the French Native-Language Project (FR), the first Native-Language project, since 2002.  Can you describe the work you do, as lead?  In particular, what are the goals of the project? </i></p>


<p> Describing the work I do would be too long, there are a lot of different things that I do, in fact, which make for the richness and the interest of the work, but I feel the most important ones are : to catalyse energies, organize the different ideas and make them cohere enough to become projects, pursue and encourage works in progress and make  finalized work recognized troughout the whole community.  I try  to make the members of our project happy to be there and proud of what they have accomplished. </p>

<p> The goals of the project are mostly : </p>
<ul>
	<li>To gain more users...</li>
	<li>But also to gain more developers to help to improve the product and  to contribute third-party work (such as documentation, add-ons, etc...). </li>
	<li> And to make those people aware of the community (the French speaking one and the whole OOo project), so as to create a synergy between them, the language barrier being a not-insignificant barrier, sometimes.  That is, I want for the various groups to collaborate and try to find ways of overcoming the language differences.</li>
</ul>
<br>

<p><i>One feature of the Native-Lang Confederation projects (NLC projects) that bears some discussion is, How is development work (specifically core development) articulated? </i></p><br>

<p> Yes this is a difficult part of the task. OpenOffice.org is very large and not easy to figure out, and doing so requires a lot of energy. Being in the project from the beginning is of great help for me, because I know where to find what I'm searching for. To minimize the difficulty for a developer wanting to join the community, and make him feel inside, even if his English is difficult, we have arranged it in FR so that the developer is accompanied in his first steps by some members of the FR project, testing is done in French on the dev@fr.openoffice.org list, and when the development is mature enough, proposed to the relevant core project. In the same way, to try to attract developers, most of the important information sent to the core development lists are mirrored on the French-speaking development list and translated. </p>
<br>


<p><i>This sounds quite effortful!  Who helps with this process?</i></p>


<p>Several members of our project, some of them are doing the tests, others are participating to projects like <a href="http://dba.openoffice.org/">DBA</a>, or <a href="http://api.openoffice.org/">API</a>.</p>
<br>

<p> <i>As well, the FR project has been a leader in helping to organize local (region-based as opposed to language-based) user groups and marketing endeavors.  Can you tell us about these? and, What have been the difficulties encountered in setting them up?  In managing them?</i> </p>

<p> FR project has the benefit of having a good welcome in the French open -source community already in place, and lot of our members have helped us to keep good relations with them. We have gained visibility with their help. </p>

<p> The difficulty was to find a real identity and not be another LUG.  We wanted to be an OpenOffice.org group (something like marketing an fr.openoffice.org label. This compels us to be sometime strict on the way the community is represented, but in the same time it gives  credibility and consistency to the project. This is also possible because a large part of the french community is strong, and engaged in OOo evangelization. </p>
<br>

<p><i>How many such local groups are there? Would you know?</i></p>

<p> I don't know really, but some associations like ADULLACT (Association for the development and use of free software in the administration) or AFUL (association for the use of free software) for example, have been of great help. </p><br>

<p><i>The FR project has recently claimed numerous significant accomplishments in getting French government offices to use OpenOffice.org. These can be said to include the <a href="http://news.zdnet.co.uk/software/linuxunix/0,39020390,39162787,00.htm">Inland Revenue Service's</a> move to open source as well as the <a href="http://news.zdnet.co.uk/software/linuxunix/0,39020390,39146152,00.htm">City of Paris' consideration of it</a>.  A key point being that OpenOffice.org in French is crucial to any serious consideration of the open-source desktop, especially the Linux desktop.  Can you elaborate on these accomplishments?  In particular, what were the deciding factors? What were the arguments used? And the counter issues? </i></p>

<p> The first deciding factors was the cost, I must confess. Then several combined factors. First the willingness of some agent who was really motivated to make the migration happen in their administration. It  was essential and that individual is responsible, by his work, for these accomplishments. Then we must consider the quality of the documentation (<a href="http://fr.openoffice.org/Marketing/matexpo/Documents/memoire_cnam.pdf">Fred Labbe's thesis</a> for example), the quality of the support provided on our lists, and the relationships and the good communication established among several persons with influence in their organizations. And of course, a lot of follow up and physical presence anytime it was needed, all these things helped to make the migration feasible. I should also mention the work of the ADAE which has been of great help in making people aware of what is our product.  [ADAE is the Agency for Electronic Administration Development 
<a href="http://www.adae.gouv.fr/">http://www.adae.gouv.fr/</a>.]</p>
<p> And as to counter-issues.... The counter issues are always the same, "you'll have to change the way you work" and "why should I learn a new software ?" etc. The weaknesses of Calc in 1.1.x,  too,  makes the replacement of Excel difficult or impossible for some departments. [Ed., 2.0 resolves most of those weaknesses.]</p><br>


<p><i> In addition to being lead of FR, you are of course, a member of the <a href="http://council.openoffice.org/">Community Council</a>, OpenOffice.org's governing body.  What sort of issues are discussed there?  How does your role there affect your standing in FR?</i> </p>

<p> Governing supposes management, so management issues like binary definition [what defines the OpenOffice.org application installation set?] licensing, funding ... are discussed and worked there [, in CC meetings]. I learned a lot through the discussions happening here. My role is affected by the fact that, speaking of OOo project, I say "we" instead of "they".  Seriously, it gives me a more accurate vision of what developing a product is like, and the reflection needed to engage the community in this process. </p><br>


<p> <i>Your leadership of OpenOffice.org for the last two years has given you valuable insight into the project's workings and its future. So: prognosticate for us.  Where do you see OpenOffice.org succeeding? Where failing? How will the upcoming 2.0 affect things, in your estimation? </i></p>

<p> OpenOffice.org is a great community. It benefits from having a good image outside due to the work of several persons like project leads or our community manager. Since two years, what was really lacking through the project, I named "communication", is mostly addressed by the effort of all. We should stay vigilant with it as we become larger, speak with a unified voice and remain the welcoming project we have been until now. This is to say that OOo is really succeeding as a community. </p>

<p> I think that we should push for the future, with more and more efforts in gaining core developers.  It is is really vital for our project to reach a point of balance between users and contributors. </p>

<p> For me, 2.0 is an interesting challenge, it promises to be a more mature product, with lot of new functionalities to answer the user needs. But it has also lot of differences with the previous releases, so in one hand we will have a better fitting with the user asks, but in another hand, the differences will get them a bit lost. This is up to us to make it a success, and I'm sure the community will make it so. </p><br>

<p><i>You are presenting on 2.0 at the upcoming conference. What are the biggest changes? Or must we wait until the conference to find out?</i></p>

<p> The biggest changes are the <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office">OASIS</a> file formats adoption, the <a href="http://dba.openoffice.org/">Data Base Access</a>, the large work that have been done on import/export filters improving MS interoperability. During the conference, you'll discover lot of nice functionalities that have been improved upon or developed to ease the use of the suite. </p>


<p></p><br>
<p><a href="index.html">Back to Editorial Index</a></p><br>

</body> 
</html>
