<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

<html>
<head>

  <link rel="stylesheet" href="../../default_style.css" type="text/css">
  <title>Eclipse 2.0 Retrospective Actions</title>
  <meta name="Author" content="Eclipse Project PMC">

  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 <body>

<h1>Eclipse 2.0 Retrospective Actions</h1>
<p>August 29, 2002</p>
<p>In August 2002 retrospective sessions were held with the various component 
  teams to discuss what worked (and didn't work) with the 2.0 release. Based on 
  the feedback collected during these sessions, we agreed on the following actions 
  for the 2.1 effort.</p>
<h2>Actions</h2>
<ol>
  <li> <b>We will actively and visibly track issues.</b> 
    <ul>
      <li>We will publish a top ten issues list and track it on the Eclipse web.</li>
      <li>Many issues span components; these issues will be addressed by <i>dynamic 
        teams</i> with members from different components. Dynamic teams will have 
        team leads that are responsible for delivering the resolution to an issue.</li>
    </ul>
  </li>
  <li><b> We will continue to work in monthly time boxes.</b> 
    <ul>
      <li>There will be a milestone defined for each time box.</li>
      <li>Teams make their milestone plans accessible on the Eclipse web.&nbsp;</li>
      <li> We will do a an <i>&quot;everybody tests&quot; day</i> at the end of 
        each milestone.</li>
      <li>We will reserve time for writing tests in each time box.</li>
      <li>Each team will develop on their latest code (<i>daily plug-in export</i>).</li>
    </ul>
  </li>
  <li><b>We will improve bug handling</b>. 
    <ul>
      <li>First line bug triage will be off-loaded from the component owners.</li>
      <li>We will document and follow the same bug work flow in all components.</li>
      <li>We will make the current bug situation visible on the Web in the form 
        of a chart that is updated automatically.</li>
      <li>We will investigate Bugzilla UI improvements.</li>
    </ul>
  </li>
  <li><b>We will make the planning process more visible</b>. 
    <ul>
      <li>We will make a <i>proto 2.1</i> plan available early in the release 
        cycle.</li>
      <li>We will have weekly planning update meetings. 
        <ul>
          <li>Each component lead will give a concise status about what has happened 
            last week and what is planned for next week.</li>
          <li>The meeting minutes will be made available on eclipse-dev developer 
            mailing list.</li>
        </ul>
      </li>
    </ul>
  </li>
  <li><b>We will provide an additional channel for quick interactions.</b> 
    <ul>
      <li>Committers will be connected to instant messaging (need to decide about 
        the tool).</li>
    </ul>
  </li>
  <li><b>We will improve the Eclipse Web portal</b> 
    <ul>
      <li>We will improve navigability.</li>
      <li>We will separate the user from the developer domain.</li>
      <li>We will provide support for contributing announcements.</li>
      <li>We will refactor the newsgroups (to separate users from developers).</li>
    </ul>
  </li>
  <li><b>We will improve the way we do documentation.</b> 
    <ul>
      <li>We will define a style guide and agree on tools.</li>
      <li>We plan and test documentation as part of the development process.</li>
      <li>We will invest in tools that make the checking less painful.</li>
      <li>We will provide content earlier.</li>
    </ul>
  </li>
</ol>

</body>
</html>