<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=PowerPoint.Slide>
<meta name=Generator content="Microsoft PowerPoint 9">
<link rel=File-List href="./Eclipse-OSS_files/filelist.xml">
<link rel=Edit-Time-Data href="./Eclipse-OSS_files/editdata.mso">
<link rel=OLE-Object-Data href="./Eclipse-OSS_files/oledata.mso">
<title>Key Success Factors For Open Source Development (and Developers!)</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:LastAuthor>OTI Employee</o:LastAuthor>
  <o:Revision>3</o:Revision>
  <o:TotalTime>6</o:TotalTime>
  <o:Created>2002-03-06T11:53:12Z</o:Created>
  <o:LastSaved>2002-05-15T14:54:53Z</o:LastSaved>
  <o:Words>307</o:Words>
  <o:PresentationFormat>Custom</o:PresentationFormat>
  <o:Bytes>39449</o:Bytes>
  <o:Paragraphs>95</o:Paragraphs>
  <o:Slides>12</o:Slides>
  <o:Notes>12</o:Notes>
  <o:Version>9.3821</o:Version>
 </o:DocumentProperties>
 <o:OfficeDocumentSettings>
  <o:PixelsPerInch>80</o:PixelsPerInch>
 </o:OfficeDocumentSettings>
</xml><![endif]-->
<link rel=Presentation-XML href="./Eclipse-OSS_files/pres.xml">
<meta name=Description
content="15-May-02: Key Success Factors For Open Source Development (and Developers!)">
<meta http-equiv=expires content=0>
<![if !ppt]><script>
<!--
  var appVer = navigator.appVersion;
  var msie = appVer.indexOf( "MSIE " );
  var msieWin31 = (appVer.indexOf( "Windows 3.1" ) >= 0), isMac = (appVer.indexOf("Macintosh") >= 0);
  var ver = 0;
  if( msie >= 0 )
    ver = parseFloat( appVer.substring( msie+5, appVer.indexOf ( ";", msie ) ) );
  else
    ver = parseInt( appVer );

	path = "./Eclipse-OSS_files/v3_document.htm";

	if( msie>=0 && ( (isMac && ver>=5)||(!isMac && ver>=4) ) )
		window.location.replace( './Eclipse-OSS_files/frame.htm' );
	else if( ver >= 3 )
	{
		if ( !msieWin31 && ( ( msie >= 0 && ver >= 3.02 ) || ( msie < 0 && ver >= 3 ) ) )
			window.location.replace( path );    
		else
			window.location.href = path;
	}  
	else
		window.location.href = "./Eclipse-OSS_files/error.htm";
//-->
</script><![endif]>
</head>

<frameset>
 <noframes>
  <body>
  <p>This page uses frames, but your browser doesn't support them.</p>
  </body>
 </noframes>
</frameset>

</html>
