blob: 2ccd5096ad5fdd8102df6b27470e6f3ca2dab6ad [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore"
xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmi:id="-b0rH1AkPSmj1YKyweFWSuQ"
name="new_guideline,_oVMZADSoEdy07ZJqOGUGaQ" guid="-b0rH1AkPSmj1YKyweFWSuQ" changeDate="2007-07-19T11:38:29.015-0700">
<mainDescription>&lt;h3>&#xD;
What Is Prioritized?&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
Work items are used to prioritize among others:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
enhancement requests and requirements at a level of abstraction appropriate for stakeholders prioritization, such&#xD;
as use cases and scenarios,&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
project tasks, such as setting up required infrastructure,&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
defects,&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
or any other work that needs to be prioritized. The &lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../openup/workproducts/work_items_list.html&quot; guid=&quot;_rGNWsCbSEdqh1LYUOGRh2A&quot;>Work Items List&lt;/a> hence&#xD;
provides us with one place for prioritizing work. Prioritizing too small units of work may lead to analysis-paralysis.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
Who Prioritizes?&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
Prioritization is done by the extended team. Here are some examples on how different team members contribute to the&#xD;
prioritization:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/roles/analyst.html&quot; guid=&quot;_0VxJsMlgEdmt3adZL5Dmdw&quot;>Analyst&lt;/a>s&#xD;
collaborate with stakeholders to establish the initial priorities for work items to implement, such as features,&#xD;
use cases and scenarios.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/roles/architect.html&quot; guid=&quot;_0X9iEMlgEdmt3adZL5Dmdw&quot;>Architect&lt;/a>s&#xD;
collaborate with stakeholders and development team to identify the architecturally significant use cases and&#xD;
scenarios, and re-prioritizes these so the team understands what needs to be done to drive down technical risk and&#xD;
to progress the evolution of the product in a technically sensible fashion.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/roles/developer.html&quot; guid=&quot;_0YDosMlgEdmt3adZL5Dmdw&quot;>Developer&lt;/a>s&#xD;
and &lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/roles/tester.html&quot; guid=&quot;_0ZM4MclgEdmt3adZL5Dmdw&quot;>Tester&lt;/a>s&#xD;
calls out (not decides) the priorities of defects relative to achieving iteration objectives.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/roles/project_manager.html&quot; guid=&quot;_0a0o0MlgEdmt3adZL5Dmdw&quot;>Project&#xD;
Manager&lt;/a>s facilitates (not decide) driving convergence on what the team should focus on when planning a project,&#xD;
planning an iteration, and managing an iteration to ensure smooth execution, and that the perspectives of all team&#xD;
members are properly heard. When the team cannot gain consensus in a reasonable time, the project manager has final&#xD;
say on the priority of work items to small to warrant the attention of the paying stakeholder(s).&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/roles/stakeholder.html&quot;&#xD;
guid=&quot;_dTa6gMAYEdqX-s4mWhkyqQ&quot;>Stakeholder&lt;/a>s that pay for the application has the final say on what capabilities&#xD;
to prioritize.&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h3>&#xD;
When Do You Prioritize?&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
When you put in a new work item in a &lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/workproducts/work_items_list.html&quot;&#xD;
guid=&quot;_rGNWsCbSEdqh1LYUOGRh2A&quot;>Work Items List&lt;/a>, you should give it an initial priority. Priorities are always&#xD;
changing, and below we describe what (re-)prioritization is done when Planning a Project, Planning an Iteration, and&#xD;
Managing an Iteration.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Prioritizing When Planning a Project&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
When planning the project, see &lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/tasks/plan_the_project.html&quot;&#xD;
guid=&quot;_0lC70MlgEdmt3adZL5Dmdw&quot;>Plan Project&lt;/a>, key features, use cases, and scenarios are prioritized and potentially&#xD;
assigned to iterations as a part of laying out the project plan and what should be done when. These prioritizes will be&#xD;
revised later on as iterations are planned.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
When starting a project where we enhance an existing application, we may have an existing work items list from past&#xD;
projects and usage of the application. If this is the case, we go through the work items list to survey and&#xD;
re-prioritize existing work items, so we understand which to focus on.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Prioritizing When Planning an Iteration&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
When planning what to deliver for an iteration, see &lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../openup/tasks/plan_iteration.html&quot; guid=&quot;_0keUEMlgEdmt3adZL5Dmdw&quot;>Plan Iteration&lt;/a>, the team needs to&#xD;
balance what delivers immediate value to the stakeholders with mitigating risk, see &lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../openup/guidances/concepts/project_lifecycle.html&quot; guid=&quot;_nSfVwCNYEdyCq8v2ZO4QcA&quot;>Project&#xD;
Lifecycle&lt;/a>. The chosen balance should be reflected in the iteration objectives, which are then driving further&#xD;
prioritization and assignments of work items to the next iteration. This exercise should be done by the entire team to&#xD;
reflect all key perspectives, such as technical (“doing A before B saves you time”), managerial (“we do not have&#xD;
anybody that knows that legacy application until next iteration”, or business (“this scenario is more important than&#xD;
that scenario”).&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Prioritizing When Managing an Iteration&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
We recommend against expanding or changing the scope of an iteration, see &lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../openup/tasks/manage_iteration.html&quot; guid=&quot;_8S2aICbYEdqh1LYUOGRh2A&quot;>Manage Iteration&lt;/a>, since this&#xD;
will almost certainly lead to scope creep, and potentially confusion among the team what to work on. This means that as&#xD;
you can up with new enhancement requests, you should capture them to a work item, but not assign them to the current&#xD;
iteration.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
During an iteration, you are developing and testing code. As you develop solution increments, you will find defects. In&#xD;
most cases, you will directly fix the defect since it is trivial, best done by you, and should be fixed now. Examples&#xD;
of such defects are the many problems you find as you implement your code using a test-driven development approach. In&#xD;
other cases, the defect should captured as a work item. This allows it to be prioritized, potentially developed by&#xD;
somebody else and at a different time. If a defect needs to be addressed to provide an iteration build of reasonable&#xD;
quality that addresses the iteration objectives, it should be addressed to the current iteration. Note that this is not&#xD;
a creep or change of scope, since it merely indicates that we need to fix something to deliver what we already&#xD;
committed to.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
How Do You Prioritize&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
Prioritizing is the difficult balancing of frequently competing priorities. For more information on the art of&#xD;
prioritizing, see for example [&lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
href=&quot;./../../../openup/guidances/supportingmaterials/references.html#COH05&quot; guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;>COH05&lt;/a>].&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>