<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<!-- VERSION rmc:7.1.0 -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<!-- START NON-TRANSLATABLE -->
<title>\xp\tasks\report_project_status.xmi</title>
</head>
<!-- WARNING: do not modify the generated comments in this file below this line.  They are used as markers for the import process. -->
<body>
Element Name: report_project_status.xmi<br/><br/>
<!-- END NON-TRANSLATABLE -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: presentationName<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:presentationName,{ED94150E-EE14-47BF-97F5-F1EC7130EEEC} CRC: 702333934 -->Report Project Status<!-- END:presentationName,{ED94150E-EE14-47BF-97F5-F1EC7130EEEC} -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: purpose<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:purpose,-WOPGmKUuYbvVeVHp0sgEgw CRC: 1586515470 --><a id="XE_report_project_status__activity_definition" name="XE_report_project_status__activity_definition"></a>
<ul>
    <li>
        Communicate to stakeholders the status of the project.
    </li>
</ul><!-- END:purpose,-WOPGmKUuYbvVeVHp0sgEgw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_oOzvwGE-EdqnIZeW8YpHcA CRC: 2821216099 -->Gather the Information <!-- END:name,_oOzvwGE-EdqnIZeW8YpHcA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_oOzvwGE-EdqnIZeW8YpHcA CRC: 1790456290 --><a id="Step1" name="Step1"></a> 
<p>
    The most important information about the status of the project is the updated release plan. The release plan defines
    the current view of the release content and availability. Metrics, such as the team's velocity, can also be provided.
    Typically, metrics are tracked for the purpose of helping the team improve some aspects of development they are having
    problems with. These metrics can be presented as part of project status.
</p>
<p>
    The velocity metric can be abused. Keep in mind that there is no valid comparison of velocities between teams. The most
    important thing about a team's velocity is the stability of the velocity. This allows the team to predict what it can
    accomplish.
</p>
<p>
    Other meaningful metrics:
</p>
<ul>
    <li>
        Defined stories over time, overlaid with completed stories
    </li>
    <li>
        Defined customer tests overlaid with running customer tests
    </li>
    <li>
        Number of unit tests tracked over time
    </li>
    <li>
        Unit test coverage
    </li>
</ul>
<p>
    The team's significant metrics are recorded on flip chart paper and hung in the team's open workspace.
</p><!-- END:sectionDescription,_oOzvwGE-EdqnIZeW8YpHcA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_oOzvwWE-EdqnIZeW8YpHcA CRC: 2546145039 --> Communicate the Status <!-- END:name,_oOzvwWE-EdqnIZeW8YpHcA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_oOzvwWE-EdqnIZeW8YpHcA CRC: 650594538 --><a id="Step2" name="Step2"></a> 
<p>
    Since outside stakeholders do not participate in the daily activities of the team, it is important that the status of
    the project should be communicated to them as often as possible. It lowers significantly the risk of disconnect between
    the development team and the stakeholders. It also provides the team with data they can use to improve their
    development process. Stakeholders should come to the open workspace and view the project status that is recorded on the
    walls of the open workspace. They can experience the progress being made by the team first hand.
</p><!-- END:sectionDescription,_oOzvwWE-EdqnIZeW8YpHcA -->
</body>
</html>
