<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:RoleDescription 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="_Nx8icKYdEdmvhNXG0Oc2uA"
    name="analyst,_0VxJsMlgEdmt3adZL5Dmdw" guid="_Nx8icKYdEdmvhNXG0Oc2uA" changeDate="2007-11-06T13:57:52.782-0800"
    version="1.0.0">
  <skills>&lt;p>&#xD;
    An analyst needs the following knowledge, skills, and abilities:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Expertise in identifying and understanding problems and opportunities&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Ability&amp;nbsp;to articulate the needs that are associated with the key problem to be solved or opportunity to be&#xD;
        realized&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Ability to collaborate effectively with the extended team through collaborative working sessions, workshops, JAD&#xD;
        sessions and other techniques.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Good communication skills, verbally and in writing&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Knowledge of the business and technology domains or the ability to quickly absorb and understand such information&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;br /></skills>
  <assignmentApproaches>&lt;p>&#xD;
    This role can be assigned in the following ways:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        On small, agile teams this role is often shared among several team members that also perform other roles.&amp;nbsp; See&#xD;
        &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../openup/guidances/guidelines/self_organize_work_assignments_F47FC314.html&quot;&#xD;
        guid=&quot;_rmBEkJjsEduad8I_c-ogIA&quot;>Guideline: Self Organize Work Assignments&lt;/a>&amp;nbsp;and &lt;a&#xD;
        class=&quot;elementLinkWithType&quot; href=&quot;./../../openup/guidances/guidelines/staffing_project_70705561.html&quot;&#xD;
        guid=&quot;_Jq64EJjsEduad8I_c-ogIA&quot;>Guideline: Staffing a Project&lt;/a>&amp;nbsp;for more information on this approach.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        One (or more)&amp;nbsp;team member(s) performs this role exclusively. This commonly adopted approach is suitable for&#xD;
        complex requirements that are difficult to gather.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        One staff (or more) team member(s) performs both this role and the &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../openup/roles/tester_9859B590.html&quot; guid=&quot;_0ZM4MclgEdmt3adZL5Dmdw&quot;>Tester&lt;/a> role. This is a good&#xD;
        option for smaller or resource-constrained test teams.&#xD;
    &lt;/li>&#xD;
&lt;/ul></assignmentApproaches>
</org.eclipse.epf.uma:RoleDescription>
