blob: 983817cad5bd34213872fe623e361807ef2b71b4 [file] [log] [blame]
<rpw name="MetaData" meta_value="anonymous" meta_name="element_type"></rpw>
<rpw name="MetaData" meta_value="guideline" meta_name="filetype"></rpw>
<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">
<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
<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
<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>
<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>