<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0051)http://www.eclipse.org/org/howtojoin/strategic.html -->
<HTML><HEAD><TITLE>Eclipse Foundation</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><link rel="stylesheet" href="../../default_style.css">


<META content="MSHTML 6.00.2900.2627" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=5 cellPadding=2 width="100%" border=0>
  <TBODY>
  <TR>
    <TD align=left width="72%">
      <P><FONT class=indextop>how to join</FONT> 
      <P><STRONG>Strategic Members</STRONG></P></TD>
    <TD width="28%"><img src="../../images/Idea.jpg" height=86 width=120></TD>
  </TR></TBODY></TABLE>
<TABLE cellSpacing=5 cellPadding=2 width="100%" border=0>
  <TBODY>
  <TR>
    <TD vAlign=top align=left bgColor=#0080c0 colSpan=2><B><FONT 
      face=Arial,Helvetica color=#ffffff>Becoming a member of the Eclipse 
      Foundation</FONT></B></TD></TR>
  <TR>
    <TD vAlign=top align=right><img src="../../images/Adarrow.gif" border=0 height=16 width=16></TD>
    <TD><STRONG>Qualifications</STRONG> 
      <BR>
      There are two types of strategic members: Strategic Developers and 
      Strategic Consumers. Strategic Developers are major contributors of 
      technology to Eclipse. Each strategic developer must have at least 8 
      developers assigned full time to developing Eclipse technology and 
      contribute annual dues of 0.12% of revenue (maximum $250K). Strategic 
      consumers are major users of Eclipse technology. They contribute annual 
      dues of 0.2% of revenues (minimum $50K, maximum $500K) but can reduce the 
      dues by contributing 1-2 developers, reducing their dues by $125K for each 
      developer, to the minimum of $50K. </TD>
  </TR>
  <TR>
    <TD vAlign=top align=right><img src="../../images/Adarrow.gif" border=0 height=16 width=16></TD>
    <TD><STRONG>Benefits</STRONG> 
      <BR>Each strategic member has a representative on the Eclipse Foundation 
      Board of Directors allowing them direct control over the strategic 
      direction of Eclipse. Strategic members also have a seat on the Eclipse 
      Requirements Council providing input and influence over the themes and 
      priorities over the Eclipse technology.<P>In addition, Strategic Developer companies lead one or more of the 
      Eclipse open source projects and have representation on the Eclipse 
      Planning and Architecture Council. This allows Strategic Developers to 
      have direct input into the development and architecture of Eclipse. 
  </P>
	<P>See 
	<a href="How2Join%20Eclipse%20Rights%20by%20Membership%20Category.pdf">Eclipse 
	Rights by Membership Category</a> for further details. 
  </P></TD>
  </TR>
  <TR>
    <TD vAlign=top align=right><img src="../../images/Adarrow.gif" border=0 height=16 width=16></TD>
    <TD>
      <P><STRONG>Steps to Join</STRONG><br>
      If your company is interested in making the commitment to become a 
      strategic member please send an e-mail to <A 
      href="mailto:membership@eclipse.org">membership@eclipse.org</A>.<br></P>
      </TD></TR>
  <TR>
    <TD vAlign=top align=right><img src="../../images/Adarrow.gif" border=0 height=16 width=16></TD>
    <TD>
      <P>The current list of strategic members can be found <a href="../strategic.html">here</a>. <br>
      </P>
      </TD>
  </TR>
  </TBODY></TABLE>
<TABLE cellSpacing=5 cellPadding=2 width="100%" border=0>
  <TBODY>
  <TR>
   
  </TR></TBODY></TABLE>
</BODY></HTML>
