<?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>\openup_basic\customcategories\collab_commun_subprocess.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: collab_commun_subprocess.xmi<br/><br/>
<!-- END NON-TRANSLATABLE -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: presentationName<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:presentationName,_r8cVIEmbEdu0xduwSKie-w CRC: 2338400230 -->Communication and Collaboration<!-- END:presentationName,_r8cVIEmbEdu0xduwSKie-w -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: briefDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:briefDescription,_r8cVIEmbEdu0xduwSKie-w CRC: 1379394758 -->This layer is the foundation for OpenUP, reflecting the collaborative nature of the process.<!-- END:briefDescription,_r8cVIEmbEdu0xduwSKie-w -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: mainDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:mainDescription,-NMF-a9hwKjzWNfHzzseDYQ CRC: 1432107891 --><p>
    The communication and collaboration layer is the foundation for OpenUP, reflecting the collaborative nature of the
    process. It contains all of the roles in OpenUP/Basic: Stakeholder, Analyst, Developer, Architect, Tester, Project
    Manager, and Any Role.&nbsp;Team members taking on these roles need to collaborate to jointly capture and define the
    intent of the stakeholders, to jointly develop the solution, and to jointly manage the project.
</p>
<p>
    This foundational layer reflects and enables us to express the nature of self-organized teams, where team members must
    broaden their perspectives of what their roles&nbsp;are and where their responsibilities end. As an example, the
    Analyst cannot say “I documented the requirements, now it is up to the Developer to implement them.” The Analyst's job
    is not primarily to document requirements; it is to communicate that the stakeholder intent is understood and reflected
    in a validated build. Documenting requirements may help you&nbsp;achieve&nbsp;that objective, but it is only one of
    many available tools. Other tools to use include working with developers on the design, working with testers on what
    needs to be tested, and using the build to ensure that&nbsp;it does what the stakeholders need it to do.
</p>
<p>
    To help the team to collaborate effectively, the foundational collaboration layer provides you with a set of <a class="elementLinkWithUserText" href="./../../openup_basic/customcategories/core_principles_cat,_HEu9QBOHEduCNqgZdt_OaA.html" guid="_HEu9QBOHEduCNqgZdt_OaA">practices</a> that have been shown to motivate effective collaboration. These practices
    apply to work done in all sub-processes.<br />
    &nbsp;
</p><!-- END:mainDescription,-NMF-a9hwKjzWNfHzzseDYQ -->
</body>
</html>
