blob: ffd871dc3130ea45ca42f599c3209172bf3904aa [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="-IXfkG-XfnoEo0xgux482Kw"
name="core_principle_collaborate,_KkTIsMp7EdqC_NfSivunjA" guid="-IXfkG-XfnoEo0xgux482Kw"
authors="Steve Adolph" changeDate="2007-05-22T10:04:50.107-0700" changeDescription="Initial Version |Removed metaphoric photo. Removed &quot;Don't go dark&quot; collaborative practice.|Removed metaphoric photo. Removed &quot;Don't go dark&quot; collaborative practice. Removed open_up from page name.|Added &quot;organize around the architecture practice&quot;"
version="0.03">
<mainDescription>&lt;h3>&#xD;
Introduction&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
Software is created by people with different interests and skills who must work together to create software&#xD;
effectively.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Develop practices that foster a healthy team environment. A healthy team environment enables effective collaboration,&#xD;
which aligns the interests of project participants (development team, quality assurance, product stakeholders, and&#xD;
customers) and helps project participants develop a shared understanding of the project.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
Practices&#xD;
&lt;/h3>&#xD;
&lt;h4>&#xD;
Maintain a common understanding&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
Project participants require a common understanding of a project to cooperate effectively. Otherwise, disorder sets in,&#xD;
because the team members cannot align their understanding and interests, and will then work with different purposes.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Be proactive communicating and sharing information with project participants. Do not assume that everyone will just&#xD;
find what they need to know, or that each person has the same understanding of the project as everyone else. Use work&#xD;
products (such as the Vision, Work Items List, and Requirements) to align the understanding between the stakeholders and&#xD;
developers. Use the architecture to focus and align the interests of the developers. At the end of each iteration, get&#xD;
agreement on whether the iteration goals have been reached and, if not, what actions must be taken.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Foster a high-trust environment&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
People who do not feel safe will not communicate their ideas, take initiative, or admit their ignorance. In these&#xD;
low-trust work environments, activities must be laboriously planned in detail, carefully supervised, and extensively&#xD;
audited. A team working in a low-trust environment may not be able to keep up with rapid change.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Take actions that foster a high-trust environment:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
&lt;p>&#xD;
&lt;b>Manage by intent.&lt;/b> Create an environment where teams manage themselves, and managers serve as&#xD;
mentors to teams to help them complete their objectives.&#xD;
&lt;/p>&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;p>&#xD;
&lt;b>Tear down the walls.&lt;/b> Work to remove both the physical and mental barriers that inhibit&#xD;
development of a common understanding among project participants.&#xD;
&lt;/p>&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;p>&#xD;
&lt;b>Walk a mile (or 1.6 kilometers) in someone else's shoes.&lt;/b> Respect and try to understand the&#xD;
perspectives of others before criticizing their ideas or responding to their criticism.&#xD;
&lt;/p>&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;p>&#xD;
&lt;b>Respond to conversations with relevance.&lt;/b> People, especially technical workers, often respond&#xD;
with argument or disagreement, which leads to rivalry and establishes a pecking order in which only a&#xD;
few people contribute to the discussion. Develop and encourage behavior that values curiosity and relevance&#xD;
over argument and disagreement.&#xD;
&lt;/p>&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;p>&#xD;
&lt;b>Always look to yourself first for the source of communication problems.&lt;/b> Understand that&#xD;
everyone has a perspective that is largely invisible to the individual (although it is often obvious to&#xD;
everyone else). Develop the habit of identifying the assumptions and prejudices within you that lead to&#xD;
argument or lack of communication. Learn to overcome these in the moment of the conversation. This takes&#xD;
practice. There are times when others may be intractable, but often the problem can be addressed by wrestling&#xD;
with your own perspective.&#xD;
&lt;/p>&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;p>&#xD;
&lt;b>Understand the constraints of the workplace culture.&lt;/b> Some organizations operate in a way that&#xD;
allows people to admit mistakes, ask questions, and experiment. Some organizations limit these expressions, but&#xD;
they may change, with time and effort. Some organizations have no tolerance for error, and their workers put&#xD;
themselves in danger if they admit mistakes or experiment. Understand your environment and protect yourself&#xD;
accordingly. Understand that low-trust organizations have more problems in achieving their goals, and provide a&#xD;
less satisfying environment.&#xD;
&lt;/p>&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
Share responsibility&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
There may be disadvantages for individuals when they work alone. Communication with the team can become sporadic, and&#xD;
then stop. People may get into trouble and not ask for help, or not realize that the team is in trouble and needs their&#xD;
help. Their understanding of the project may become misaligned with the rest of the team. In the worse situations,&#xD;
trust breaks down as individuals see the team working at different purposes to their interests.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
While individuals have primary responsibility for their work products, responsibility for work products is shared.&#xD;
Nothing is someone else's responsibility. This may mean either taking up slack and working with someone who is lagging&#xD;
for some reason, or asking for help. Experienced staff should be extra-vigilant and watch over less-experienced staff,&#xD;
encouraging them to ask for help if necessary.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Learn continuously&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
Not only is software development a fast-developing field where technical skills rapidly become obsolete, it is also an&#xD;
empirical process, where software is developed in a manner that sometimes resembles trial and error. Furthermore,&#xD;
software is developed by teams of people who must work together to achieve results.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Continuously develop both your technical and interpersonal skills. Learn from the examples of your colleagues. Take the&#xD;
opportunity to be both a student of your colleagues, as well as a teacher to them. Always increase your personal&#xD;
ability to overcome your own antagonism toward other team members.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Organize around the architecture&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
As projects grow in size, communication between team members becomes increasingly complex. While all team members&#xD;
understand the overall system, they can focus primarily on the one or more subsystems that they are responsible for.&#xD;
Organizing around the architecture also helps with communication by providing the team with a common vocabulary and&#xD;
shared mental model of the system. Communication between team members becomes increasingly complex.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Organize the team around the architecture, and the vocabulary and a shared mental model of the system. However, be&#xD;
careful that individuals and teams organized this way do not form a so-called &lt;i>silo mentality&lt;/i>, where they&#xD;
focus strictly on their subsystems and become ignorant of the other subsystems.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
An architecture that reflects the organization’s structure is not in itself evidence that the team has successfully organized&#xD;
around the architecture. If organizations and teams are not organized around the architecture, then the architecture&#xD;
will naturally conform to the organization, as a result of political and cultural influences. In the end, the&#xD;
architecture and the organization will almost always be a reflection of each other. The goal is to guide team&#xD;
organization from the needs of the architecture as much as possible.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>