<boardmember id="kersten" type="committer">
      <name>Mik Kersten</name>
      <title>CEO, Tasktop Technologies</title>
      <image>kersten.jpg</image>
      <email>mik.kersten@tasktop.com</email>
            <eclipse_affiliation> <![CDATA[
Mylyn Project Lead<br>
AJDT Project Committer<br>
Architecture Council Member
      ]]> </eclipse_affiliation>
      <vision>  <![CDATA[

<p>The role of the board is to both direct and to protect the Eclipse ecosystem that we know and love.  Eclipse evolves based on input from a few large strategic member companies, numerous smaller members, and individual committers.  To continue the success that is Eclipse, the board must balance these diverse interests.</p>

<p>The key thing that makes me a good choice to re-elect as an Eclipse Board member is my track record of representing the needs of committers.  Because Eclipse involves a diverse set of individuals acting independently, it is subject to the "Tragedy of the commons".  This situation happens when the self-interest of individuals does more to extract value from a resource than to collectively contribute back, eventually leading to the demise of that resource, be it a patch of land or a software ecosystem.  The Eclipse Foundation has done a great job of preventing this by providing committers with a thorough and reliable infrastructure for open source development.  However, with limited resources, the Foundation cannot go it alone.</p>

<p>With Foundation staffing alone, the coordinated release train could not run the way it does.  The coordination itself is a common-good effort.  Without the efforts and late nights of committers such as David Williams, Markus Knauer, Nick Boldt, Steffen Pingel and Martin Oberhuber, Ganymede would not have been the success that it was.  These individuals went well beyond the scope of their project to help us all deliver a great Eclipse release.  My main initiative on the Eclipse Board this past year was to push for additional resources and support of the release train.  I'm happy to say that this effort is now underway.  If I'm elected, I will continue pushing coordinated release integration and testing infrastructure so that we have an even better Galileo release, and in the process help projects meet the very high quality bar set by the Eclipse Platform.</p>

<p>One of the most important attributes of a committer representative is to add balance to the discussion about how Eclipse should evolve.  The board has good representation of the interests of large strategic members.  Individual committers, who are a very significant portion of the commit horsepower behind Eclipse, are generally under-represented.  A strong voice on the board is needed to represent this community.</p>

<p>Three factors provide me the balance required to do a good job representing the needs of committers.  First, I 
spent many years as an individual committer on Eclipse, have collaborated with hundreds of contributors, and have been responsible for helping numerous individual committers earning their commit rights.  Being an active committer since the first days of Eclipse has given me a good perspective on the evolving needs of all committers.  Second, my company and I are committed to the success of Eclipse.  We want to see Eclipse flourish so that we can layer our focusing technology across all Eclipse-based tools.  The main evidence of this is that Mylyn, which we continue to lead and put a very large portion of our development resources towards. Mylyn is likely the biggest common good effort in Eclipse that is not supported by the Foundation.  Finally, my public role provides a good perspective on the direction of Eclipse.  I have been working on open source technology innovation for over a decade, since the early AOP days at Xerox PARC.  I now get to show off Eclipse-based technologies to very large audiences during prominent talks, learn from newcomers to the ecosystem, and share my deep belief that Eclipse will continue to be the platform of choice for software innovation.</p>
 ]]> </vision>      
      
	<bio> <![CDATA[ <p>
Mik Kersten is the CEO of <a href="http://tasktop.com">Tasktop Technologies</a>, lead of Mylyn and member of the Eclipse Architecture Council and Board of Directors. While on the AspectJ team at Xerox PARC, Mik implemented the first aspect-oriented programming tool support. He then created Mylyn and the Task-Focused Interface during his PhD at the University of British Columbia. Mik likes building tools that offload our brains and make it easier to get creative work done.  Read more about Mik on <a href="http://en.wikipedia.org/wiki/Mik_Kersten">Wikipedia</a> or check out his <a href="http://tasktop.com/blog/">blog</a>.
</p>	]]> </bio>

<affiliation> <![CDATA[
Tasktop Technologies
]]>
</affiliation>
</boardmember>
