﻿<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>The New Project Leads: Frank Meies</title>
</head>
<body>
<div class="spaced13">
  <h2>The New Project Leads: Frank Meies</h2>
  <p>2007-01-06</p>
  <p>-<a href="htp://homepage.mac.org/luispo">Louis Su√°rez-Potts</a></p>
  <br />
<p>Late last year, the leadership of several important core <a href="/projects/accepted.html" target="_blank">projects</a> changed hands. Some of the new leads have been leads in other projects and take on new responsibilities; others are new to the job. What does a project lead do? That depends on the project, but it's usually considered role that combines administrative, managerial, and leadership duties, and represents a very high level of trust.  The project leads for the accepted technical projects are in particular important to OpenOffice.org, for they are largely responsible for what makes up the source to the application, as well as for reaching out to developers. </p>
The following set of short interviews, of which this is the first (others will follow over the next week), is meant to introduce them to the community.  As with all of OpenOffice.org's leads, they are open to the community and welcome developer interest and contact. A co-lead's role may be equally vital to the project.</p>

<p>I asked Frank Meies, the new co-lead of the <a href="http://sw.openoffice.org/" target="_blank">Writer Project</a>, more or less the same questions I asked the others....</p>


<p>Other mini-interview in this series:</p>
<ul type="circle">
	<li><a href="new_leads_mb.html" target="_blank">Mathias Bauer, New Lead</a> of <a href="http://sw.openoffice.org/" target="_blank">Writer</a>, Co-Lead of <a href="http://framework.openoffice.org/" target="_blank">Framework</a></li>
	<li><a href="new_leads_cd.html" target="_blank">Carsten Driesner, New Lead</a> of the <a href="http://framework.openoffice.org/" target="_blank">Framework Project</a></li>
	<li><a href="new_leads_mn.html" target="_blank">NAKATA, Maho, New Lead</a> of <a href="http://qa.openoffice.org/" target="_blank">QA Project</a></li>
	<li><a href="new_leads_cds.html" target="_blank">Caio Tiago Oliveira de Sousa</a>, New Co-Lead of <a href="http://qa.openoffice.org/" target="_blank">QA Project</a></li>
</ul>


<p> <i>Tell us about yourself: who you are and what you do....</i> </p>

<p> I'm a 35 year old mathematician, living in Hamburg, married, father of a little daughter, I have been working as a software engineer for Sun since 2001. My main field of expertise is the text formatting and layout engine, but after almost 6 years of experience, I'm quite familiar with almost any code in Writer. Currently I'm working on some interoperability issues, more precisely, we're implementing a new table model. </p>


<p> <i>What does the Writer project do? and how does it relate to the overall OpenOffice.org Project? </i> </p>

<p>I consider the word processor to be the heart and soul of OpenOffice.org. But other developers might think this of their projects as well ;-) </p>

<p> <i>What would you like next to do with the project?</i> </p>

<p> I'd definitely like to spend more time on refactoring the Writer code, to improve its maintainability. </p>

<p> <i>How can others help?</i> </p>

<p> We're currently identifying a couple of bugs that we consider quite easy to fix. These issues can be a good starting point for people who like to join OpenOffice.org development. So anyone wanting to start hacking on OpenOffice.org can search for the "easy2dev" flag in Issue Tracker. </p>

<hr />
<p>To learn more about the Writer project, visit the <a href="http://sw.openoffice.org/" target="_blank">site</a>, look over the mail list <a href="http://sw.openoffice.org/servlets/SummarizeList?listName=dev" target="_blank">archives</a>, subscribe to the <a href="mailto:dev-subscribe@sw.openoffice.org" target="_blank">dev@sw.openoffice.org</a> list, and dive in!

<p>Developers--and just about anyone else interested--can start learning more about OpenOffice.org by visiting our <a href="http://wiki.services.openoffice.org/wiki/Main_Page" target="_blank">wiki</a>.</p>

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