<!-- RPW META DATA START --
<rpw name="MetaData" meta_value="anonymous" meta_name="element_type"></rpw>
<rpw name="MetaData" meta_value="guideline" meta_name="filetype"></rpw>
-- RPW META DATA END -->

<html>

<head>
<link rel="stylesheet" href="../../../rop.css" type="text/css">
<title>Guidelines:&nbsp;<rpw name="InsertPresentationName"></rpw></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>


<body>

<rpw name="Warning"><b>!RPW INCLUDE! DO NOT MOVE/MODIFY !RPW INCLUDE!</b><br></rpw>
<rpw name="Include">rpw/startBorder.rpw</rpw>
<rpw name="Warning"><br><b>!RPW INCLUDE! DO NOT MOVE/MODIFY !RPW INCLUDE!</b></rpw>


<h1 class="banner"><a name="Top"></a>Guidelines:&nbsp;<rpw name="PresentationName">Adopting 
  XP Practices</rpw> <a name="XE_xp__adopting_practices"></a><a name="XE_adopting_practices__in_xp"></a></h1>
<p>XP is a set of synergistic practices. Because the practices depend upon each 
  other, people often wonder where they should start. In general, we recommend 
  that you stop and consciously decide to adopt as many of the XP practices as 
  possible.</p>
<p>However, if that induces too much stress, consider adopting the practices in 
  this order.</p>
<p><b><a href="../../../components/pc_xp_essentials/pc_xp_integration/co_continuous_integration.htm">Establish 
  a solid build process</a></b>. If you are not able to reliably build the software 
  you are working on, you can&8217;t really go further. Once you have a reliable 
  build process, make sure that you run whatever <a href="../../../components/pc_xp_essentials/pc_xp_testing/co_customer_tests.htm">tests</a> 
  you have prior to each checking.</p>
<p><b><a href="../../../components/pc_xp_essentials/pc_xp_programming/co_pair_program.htm">Pair 
  programming</a></b> is often a significantly different way of working for most 
  developers. It takes a little bit of time to get used to it, but as a team does, 
  they recognize that they are a much more powerful team because everyone&#8217;s 
  knowledge of the system grows rapidly. In addition, quality goes up because 
  there are two sets of eyes on all work as it is being done. When you adopt pair 
  programming, ideally you should have an <a href="../../../components/pc_xp_essentials/pc_xp_management/xp_open_workspace_guidelines.htm">open 
  workspace</a>.</p>
<p>As your team gets started with pair programming, you should adopt the <b><a href="../../../components/pc_xp_essentials/co_planning_game.htm">Planning 
  Game</a></b>. The Planning Game will help you identify good goals for your next 
  release, iteration, and day of work. At the end of your first iteration, you 
  will have a velocity that you can use to get a sense of how long it takes you 
  do do your work. As you do your planning, talk to your customer about producing 
  acceptance tests and being available to the team.</p>
<p>As you work together on your first iteration, try doing <a href="../../../components/pc_xp_essentials/co_test_driven_development.htm"><b>test-driven 
  development</b></a>. It will feel strange at first. If it doesn&#8217;t, you 
  are probably doing it wrong. Over time, it will feel like a more natural way 
  to develop software. Recognize that, at first, your velocity will be rather 
  low. This is a side effect of the learning process. Over the next few iterations 
  your speed will increase.</p>
<p>As you move forward, learn how to <a href="../../../components/pc_xp_essentials/pc_xp_programming/co_refactoring.htm"><b>refactor</b></a> 
  and start to practice <a href="../../../components/pc_xp_essentials/co_collective_code_ownership.htm"><b>collective 
  code ownership</b></a>. Often collective code ownership is a little scary at 
  first, but as you pair, you will notice that everyone is learning what it takes 
  to work with the system. When people volunteer for tasks, they either volunteer 
  only for what they know how to do or for things that they can get help on from 
  a partner.</p>
<p>Once you have a few iterations under your belt, you will be able to understand 
  how the process works and how the different practices interact and support each 
  other. Finally, listen to the feedback coming from your team. That feedback 
  is critical and can be used to improve and adapt the process to your team&#8217;s 
  particular needs and problems.</p>


<p><br/><br/></p>

<rpw name="Warning"><b>!RPW INCLUDE! DO NOT MOVE/MODIFY !RPW INCLUDE!</b><br></rpw>
<rpw name="Include">rpw/endBorderOmRat.rpw</rpw>
<rpw name="Include">rpw/endBorder.rpw</rpw>
<rpw name="Warning"><br><b>!RPW INCLUDE! DO NOT MOVE/MODIFY !RPW INCLUDE!</b></rpw>

</body>

</html>

