﻿<html>
<head>
<title>Jacqueline Rahemipour, Lead German Language Project</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="spaced13">
<h2>Jacqueline Rahemipour, Lead, German Language Project</h2>
<p><a href="../lspintro.html">-Louis Suárez-Potts</a></p>
<p >2006-02</p>
<br />




<p> Elected to the role of project lead of the <a href="http://de.openoffice.org/">German Language Project</a> (also called the Germanophone Project)--one of the largest of the <a href="/projects/native-lang.html">Native Language Projects</a>--Jacqueline Rahemipour has helped guide the project in its marketing, outreach, and development efforts.  She recently celebrated her first year as lead, which served to be a fine occasion for this interview, which was conducted via email. </p>




<p><i>Tell us about yourself--what you do outside of OOo and how you got interested in OpenOffice.org...</i> </p>

<p> Is there really a life outside of OOo? :-) No kidding, but outside my work in the Germanophone project I have much to do with OpenOffice.org. Since 2001 I have my own small company, which is concentrated on Linux migrations. My special part is doing training for Linux desktop software, especially OpenOffice.org, user support, and in my spare time in the last two years I have written two books about OOo. My interest in OOo began shortly after my university education. I got in contact to StarOffice 5.0 by the company I was employed by at that time. I started with normal usage of StarOffice and after a time with in-house training for my colleagues, and got fascinated by finding out about the different functionalities. I must confess, that I was never affected by other office-suites, so it was easy for me to lead into the topic. During my work in my own company with users and administrators it became clear to me that the major problems of users do not concern the operating system itself but the office-suite. I started focusing on that part. For Linux based systems StarOffice / OpenOffice.org is the outstanding office-suite (and in my opinion this is not only true for Linux :-) ). I started to examine this suite studiously, not only by reading books and "trial and error" but especially by quarrying the mail lists of the Germanophone project. In 2003 I wrote some articles about OpenOffice.org, one of these with the topic "What's new in OOo 1.1?" I contacted André Schnabel and Rolf Meyer for an interview for this article. That was the first time I really got in contact with the DE project, and thenceforward I started working within the marketing section of it. I was so amazed and encouraged by the enthusiasm of the community members, that I decided to volunteer as much as I could, to give a little bit back of what OOo gives to me. To get to the point and to explain why I love to work in the Ooo community I would like to quote a shining example, Sophie Gautier: "It's the nice "family taste" of our communities". </p>

<p><i>You are the lead of the large and important German Language Project, an early member of the Native Language Confederation. You've held this post now for one year--congratulations!  Can you give us some insight into some of the things you do as DE project lead? </i></p>

<p> It's not easy to explain in a few sentences what my work entails. A project lead surely has some administrative things to do, for example granting the different project roles or the moderation of the various mailinglists. But I think it's most important for a project lead to stick the DE community together, to see where problems are and to be present and available. Not only for the community members, but also for people who want to join the community, but don't know how. And of course to be the contact person for the broad public, especially for media and for companies which are thinking about a migration to OpenOffice.org. So one of my most important claims is, to be easily found for all of them. Therefore I'm present at the most of our fairs and at the local community meetings we arrange in the various regions in Germany, as in Munich, Berlin, Hamburg or Cologne. Furthermore we often use the communication media irc or icq, if communication via mailing lists is not fast enough or even not possible. Beside my work in the marketing section, where I help organising the various events in Germany,  it's one of my most important goals to work within the Germanophone QA team and help improve the quality of OpenOffice.org. So I normally help for the release QA, but also at those special tasks like the review of the online-help we do theses days. Furthermore I take an active part in our German association "<a href="http://www.ooodev.org/">OpenOffice.org Deutschland e.V.</a>" with maintains the Germanophone project, especially in financial questions for fairs, marketing material, etc.. </p>

<p><i>What were some of the top accomplishments of the project this last year?</i></p>

<p>2005 was a great year for OpenOffice.org and not only for the Germanophone project, very exciting as well as astonishing. Caused by the early advertised release of the 2.0 version of Open Office.org the public interest rose significantly, leading into much more traffic on the lists and many more users within the project. This gave the Germanophone project fresh impetus and new ideas. So an enthusiastic team adapted our websites to be prepared for the 2.0 release. It was hard work, not only changing the design, but also including considerations of usability and getting rid of out-dated matters. In this point we had to update many documentation and this work still goes on. Our documentation-team is assisted by some more members, who are working on translations. Furthermore we built up a reliable QA-team with continuous action. I remember some days in 2005, when we were working right after midnight to do everything in our power, checking as much as we could and giving a "go" for the upcoming release. Last but not least we enlarged our marketing team, so that we are now able to attend most of the biggest fairs in Germany. We created some interesting marketing material, not only for the various fairs. We designed some project-T-Shirts in the style of the new splashscreen motif and produced very nice pins and cuff links in a similar design.The DE project had a brilliant year attending conferences.</p>

<p><i>How do you decide which events to attend? And how do you organize conference events and pay for other marketing efforts?  Sun no doubt finds some of the events interesting, like CeBIT.  How does that interest affect things?</i></p>


<p>We try to be present at the most important events, not only Linux related fairs, but also common IT-events. Of course it depends on the number of volunteers. These days OOo has become quite popular, so we are invited to many many presentations and surely get our booths for free. On every event we have one or two representatives responsible for organisation and negotiations with the operators. The planning of manpower, lectures and marketing material is made via our mailing lists. Our association "OOo Deutschland e.V." is responsible for financial needs and legal concerns. It helps to pre-finance marketing material and can grant requests on traffic expenses, so that more community members have the chance to be present at a fair. Last October we conducted an experiment on one fair in Germany, the SYSTEMS, which is located in Munich. We had a big booth, where not only the community was present, but also several companies providing their services concerning OpenOffice.org. It was advantageous for both: the companies, because we are always a crowd puller at fairs and the community, for other companies and organisations can see what open source can be, how to migrate to OpenOffice.org. They can also see that there is professional support available. We plan the events we attend on our own, usually not asking SUN, where to go or how we want to proceed. Nevertheless we work hand in hand where it is reasonable for both, so it occurs, that SUN staff (anyway the most of them are active community members, too) helps out at our booth or gives a lecture about OpenOffice.org. On the other hand we redirect greater prospective clients, who are interested in OOo or StarOffice to them. </p>

<p><i>You, Helga Fischer (co-lead of DE), Sophie Gautier (<a href="http://fr.openoffice.org/">FR</a>), Jacqueline McNally (<a href="http://marketing.openoffice.org/">Marketing</a>), and numerous others, represent what I hope is a growing trend: more women in positions of power at OpenOffice.org.  As far as I know, there is no communication among you outside the regular channels. Do you think there ought to be?  And, would you be agreeable to something like a women's caucus on OOo whose mandate would be to bring in more women developers and contributors? </i></p>

<p> Interesting idea! Surely OpenOffice.org is slightly different from other open source-projects because it isn't as developer-focused as other projects might be. There are many chances to get in touch with the project and work on it aside the normal developers work, e.g. marketing, user support or the documentation. I did not experience any special problems for women to participate in the project. We do not have much female community members in the DE project, as a glance at our basic mailinglist shows. I would estimate something between 5 and 10 %,  but they distinguish thereselves by a great continuity in their work. But sure, that could be a sign that it is a little more difficult to find the entrance for women. When they are contributing, they do it well considered and they stay, not leaving the project fast. I for myself do not need any "special handling", as I am working in a male dominated domain and therefore used to struggle with prejudices. And I do not think there is much scepticism within the Germanophone-project about women and their work. Nevertheless it has been a great surprise to most of us, when in may 2005 Helga Fischer was elected as Co-Lead and the suddenly a female duo marked the top of the Germanophone project. It might be a good idea to have a special women section, where female restraints might be negotiated and give impetus to join the DE project. The <a href="http://women.alioth.debian.org/">Debian-women project</a> shows, that those needs exist. But I think, the best way is, to exemplify it through our own lives, that there is a place for everyone within the project regardlessly age, sex or previous knowledge. </p>

<p><i>Along these lines, what programs does the DE project have for engaging new contributors (regardless of chromosomes) and for promoting OpenOffice.org?</i> </p>

<p>Of course we are spreading OpenOffice.org as well as recruiting members at the common business fairs, like CeBIT, LinuxWorld, LinuxTag and SYSTEMS but also on smaller local events. But in 2006 we plan some more specific events: For example an "OpenOffice.org open house day", where several community members have been invited for information lectures, which are have been announced in Germany, Austria and Switzerland. These lectures will be given at universities, schools or the local chambers of commerce and industry. While each event shall be small with a more familiar touch, we hope to get a report into the papers an rise public interest due to the nationwide and synchronous occurrence. Another event will be an "OOoCamp", where we want to introduce young people, explaining what our community is and show the first steps how to join the project. We plan several technical and non-technical workshops for it and try to turn our attention in integrating socially disadvantaged persons. Last but not least the "PrOOo-Box", a CD-compilation with OpenOffice.org and many useful additions like clipart, drafts, extensions and other stuff. We distribute them on fairs at cost and a small donation, but its also possible to order it from the association and other places. </p>

<p><i>I'm curious about planning for the future, and have been asking other leads a version of this question:  What do you see for 2006?</i></p>

A short view in my crystal ball shows me, that we have to expect another great year for OpenOffice.org and all the contributors. :-) I was very pleased in 2005 to see many new participants joining the project, and this year we want to focus on keeping them at it and stabilise the different sections in the DE project, especially the <a href="http://www.prooo-box.org/">PrOOo-Box</a> and our documentation section. The same applies to our software OOo itself, especially our Germanophone localisation. we have so many new features came up with 2.0, that we would like to focus on improving the existing ones. At the moment we do a structured review of the Germanophone online-help and are planning some more internal meetings focusing on our qa work. Finally I hope to see that the upcoming OOoCon leaves the european continent and shows the whole world our magnificent OpenOffice.org and what we all are working on. </p>


</div>
<br />

<hr />

<a href="index.html">Return to Articles</a>
</body>
</html>
