<?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="-e26WOHRbTVQrDssK5zijVA"
    name="self_organize_work_assignments,_rmBEkJjsEduad8I_c-ogIA" guid="-e26WOHRbTVQrDssK5zijVA"
    changeDate="2007-01-05T06:07:49.299-0800" version="1.0.0">
  <mainDescription>&lt;p>&#xD;
    A &quot;self organizing team&quot; has the authority to choose the work that it will perform and the responsibility to do that&#xD;
    work in the way that it chooses.&amp;nbsp; Important aspects of a self organizing team&amp;nbsp;are:&#xD;
&lt;/p>&#xD;
&lt;ol>&#xD;
    &lt;li>&#xD;
        The team selects its own work. At the beginning of an iteration the team collectively selects the &lt;a href=&quot;./../../../openup/guidances/termdefinitions/work_item_EE5CE155.html&quot; guid=&quot;_jyVgcEvKEdunZcj9T5hrMQ&quot;>work item&lt;/a>s from the prioritized &lt;a href=&quot;./../../../openup/workproducts/work_items_list_39D03CC8.html&quot; guid=&quot;_rGNWsCbSEdqh1LYUOGRh2A&quot;>Work Items List&lt;/a>. Work selection is performed within given constraints, including&#xD;
        the priorities set by &lt;a href=&quot;./../../../openup/roles/stakeholder_9FFD4106.html&quot; guid=&quot;_dTa6gMAYEdqX-s4mWhkyqQ&quot;>Stakeholder&lt;/a>s, time (such as the length of the current &lt;a href=&quot;./../../../openup/guidances/concepts/iteration_C20B1904.html&quot; guid=&quot;_lam4ADkBEduxovfWMDsntw&quot;>Iteration&lt;/a>), the budget, and the skills of team members.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Individuals select their own work. Individuals are empowered to select their own work. Someone will choose to do&#xD;
        something because they are good at it and know that they can do the work effectively, because they want to gain&#xD;
        more experience at something and hope to improve their skill-set by working with someone with such experience, or&#xD;
        because they know that the work needs to be done and that it's their turn to do so. Although an individual fulfills&#xD;
        one or more roles on a project team that doesn't imply that the person is constrained to only doing specific types&#xD;
        of work.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The team determines how to perform the work. At the beginning of an iteration the team will hold an &quot;all hands&quot;&#xD;
        planning meeting where it determines the general strategy for doing the work and the tasks required to do so. More&#xD;
        detailed planning, if required, will be done on a just-in-time (JIT) basis by the individual(s) doing the work.&#xD;
        Note that the team is still constrained by your organization's standards, technical infrastructure, regulations,&#xD;
        and so on.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Everyone commits to the work. The team commits to accomplishing the work that it has agreed to do by the end of the&#xD;
        iteration. Individuals also commit to doing the work that they say they will do, although as the iteration&#xD;
        progresses various tasks may be renegotiated as required.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The team coordinates regularly. To ensure that the work is accomplished the team must coordinate its efforts&#xD;
        effectively. This is typically done through daily stand up meetings of the team and impromptu discussions between&#xD;
        individuals.&#xD;
    &lt;/li>&#xD;
&lt;/ol>&#xD;
&lt;p>&#xD;
    This is a participatory approach to decision making where everyone has the opportunity to provide input and to listen&#xD;
    to the decision making process. The goal is to make decisions at the right place within the organizational structure,&#xD;
    empowering teams by giving them both the responsibility and the authority to get the job done. It improves motivation&#xD;
    amongst team members, and thereby their productivity, by giving them control over their work.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    Project Manager Responsibilities&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    There is still work for the &lt;a href=&quot;./../../../openup/roles/project_manager_E657F936.html&quot; guid=&quot;_0a0o0MlgEdmt3adZL5Dmdw&quot;>Project Manager&lt;/a> on self organizing teams. The project manager must still:&#xD;
&lt;/p>&#xD;
&lt;ol>&#xD;
    &lt;li>&#xD;
        Provide leadership. Team culture and project vision must be nurtured and evolved throughout the project, and&#xD;
        direction must be provided to the team.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Mediate disagreements. The manager must be prepared to step in and make a decision when other team members are&#xD;
        unable to come to a decision.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Ensure that team members grow their skill-set. From time to time the manager may need to motivate individuals to&#xD;
        take on new tasks that are outside their comfort zone or to work with others to help those people gain new skills.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Ensure that the team respects their limits. Self organizing teams have the authority to make decisions within the&#xD;
        scope of their responsibility, but that doesn't mean that they get to rethink everything that they feel like. For&#xD;
        example, the development team must still conform to the technical infrastructure and to the business strategy of&#xD;
        your organization: they likely don't have the authority to change these things even though they may not fully agree&#xD;
        with them. When an issue falls outside their scope of responsibility the team must either accept it or collaborate&#xD;
        with the people with the appropriate authority.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Summarize the project plan. External stakeholders, such as senior management or business representatives not&#xD;
        actively involved with the team, will want to know the current status of the project and the team's current plans.&#xD;
        The project manager may be required to summarize and communicate this information to those people.&#xD;
    &lt;/li>&#xD;
&lt;/ol>&#xD;
&lt;h3>&#xD;
    What This Isn't&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    The concept of self organizing teams often sounds like anarchy or non-management to traditional IT professionals, but&#xD;
    nothing could be further from the truth. Although self organization relies on team members being responsible and mature&#xD;
    it is tempered by the guiding hand of a good project manager. It is also tempered by organizational standards,&#xD;
    infrastructure, and external regulations. &quot;Self organizing&quot; doesn't mean that you have complete freedom to do what you&#xD;
    want.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Self organization isn't necessarily a consensus-based approach either; sometimes individuals will disagree with a&#xD;
    decision but will choose to go along with the will of the team. Nevertheless, consensus isn't ruled out by this&#xD;
    approach but it certainly isn't required.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
