﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-桃花源-随笔分类-敏捷开发</title><link>http://www.blogjava.net/pdclh/category/37497.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 21 Mar 2009 18:38:48 GMT</lastBuildDate><pubDate>Sat, 21 Mar 2009 18:38:48 GMT</pubDate><ttl>60</ttl><item><title>XP之父Kent Beck简介</title><link>http://www.blogjava.net/pdclh/archive/2009/02/08/253826.html</link><dc:creator>桃花源</dc:creator><author>桃花源</author><pubDate>Sun, 08 Feb 2009 14:38:00 GMT</pubDate><guid>http://www.blogjava.net/pdclh/archive/2009/02/08/253826.html</guid><wfw:comment>http://www.blogjava.net/pdclh/comments/253826.html</wfw:comment><comments>http://www.blogjava.net/pdclh/archive/2009/02/08/253826.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdclh/comments/commentRss/253826.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdclh/services/trackbacks/253826.html</trackback:ping><description><![CDATA[Beck全家似乎都弥漫着技术的味道。生长在硅谷, 有着一个对无线电痴迷的祖父，以及一个电器工程师父亲。从小就引导Kent Beck成为了业余无线电爱好者。在俄勒冈州大学读本科期间，Kent Beck就开始研究起模式。然而在他最终拿到计算机学位之前，他却是在计算机和音乐中交替学习。似乎Java大师都能够有这样的能耐，另一Java大牛Rod Johnson同样也拥有音乐学的博士学位。Kent Beck一直倡导软件开发的模式定义。早在1993年，他就和Grady Booch（UML之父）发起了一个团队进行这个方面的研究。虽然著有了《Smalltalk Best Practice Patterns》一书，但这可能并不是Kent Beck最大的贡献。他于1996年在DaimlerChrysler启动的关于软件开发的项目，才真正地影响后来的软件开发。这次的杰作就是XP（极限编程）的方法学。和软件开发大师Martin Fowler合著的《Planning Extreme Programming》可谓是关于XP的奠基之作。从此，一系列的作品如《Test Driven Development: By Example》，《Extreme Programming Explained: Embrace Change》让更多的人领略到了极限编程的精髓，也逐步导致了极限编程的流行。Kent Beck的贡献远不仅如此。对于众多的Java程序员来说，他和Erich Gamma共同打造的JUnit，意义更加重大。也许正是这个简单而又强大的工具，让众多的程序员更加认可和信赖极限编程，从而引起了Java敏捷开发的狂潮吧。 
<img src ="http://www.blogjava.net/pdclh/aggbug/253826.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdclh/" target="_blank">桃花源</a> 2009-02-08 22:38 <a href="http://www.blogjava.net/pdclh/archive/2009/02/08/253826.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《规划极限编程》（Planning Extreme Programming）读书笔记</title><link>http://www.blogjava.net/pdclh/archive/2009/02/07/253749.html</link><dc:creator>桃花源</dc:creator><author>桃花源</author><pubDate>Sat, 07 Feb 2009 14:41:00 GMT</pubDate><guid>http://www.blogjava.net/pdclh/archive/2009/02/07/253749.html</guid><wfw:comment>http://www.blogjava.net/pdclh/comments/253749.html</wfw:comment><comments>http://www.blogjava.net/pdclh/archive/2009/02/07/253749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdclh/comments/commentRss/253749.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdclh/services/trackbacks/253749.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Kent Beck和Martin Fowler撰写了《规划极限编程》（Planning Extreme Programming）一书专门详细阐述了在极限编程（XP）中如何来规划和计划Project，有兴趣的朋友可以在此下载并阅读。在阅读过程中，我也把一些重要的Notes记录了下来，供大家参考。&nbsp;&nbsp;<a href='http://www.blogjava.net/pdclh/archive/2009/02/07/253749.html'>阅读全文</a><img src ="http://www.blogjava.net/pdclh/aggbug/253749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdclh/" target="_blank">桃花源</a> 2009-02-07 22:41 <a href="http://www.blogjava.net/pdclh/archive/2009/02/07/253749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XP实践小结</title><link>http://www.blogjava.net/pdclh/archive/2009/02/07/253747.html</link><dc:creator>桃花源</dc:creator><author>桃花源</author><pubDate>Sat, 07 Feb 2009 14:29:00 GMT</pubDate><guid>http://www.blogjava.net/pdclh/archive/2009/02/07/253747.html</guid><wfw:comment>http://www.blogjava.net/pdclh/comments/253747.html</wfw:comment><comments>http://www.blogjava.net/pdclh/archive/2009/02/07/253747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdclh/comments/commentRss/253747.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdclh/services/trackbacks/253747.html</trackback:ping><description><![CDATA[&nbsp;
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span><span lang="EN-US">TDD</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中，按照</span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Failed -&gt; Passed &#8211;&gt; Refactoring</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的步骤进行，写完</span><span lang="EN-US">Test Case</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并在写</span><span lang="EN-US">Code</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或改</span><span lang="EN-US">Code</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">前，应该先运行一下</span><span lang="EN-US">Test Case</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，这时<strong style="mso-bidi-font-weight: normal">应得到一个</strong></span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Failed</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或</span><span lang="EN-US">Error</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的结果</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，以<strong style="mso-bidi-font-weight: normal">确保</strong></span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Test Case</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不是在任何情况下都会</span><span lang="EN-US">Pass</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，以确保它<strong style="mso-bidi-font-weight: normal">确实</strong>能验证程序的结果。<br />
<br />
</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span style="color: #000080"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最好用<strong style="mso-bidi-font-weight: normal">小步伐</strong>的节奏进行</span><span lang="EN-US">TDD</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span></span></p>
<p class="MsoNormal" style="margin-left: 42pt; mso-para-margin-left: 4.0gd"><span style="color: #000080"><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果要写的程序有</span><span lang="EN-US">10</span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个</span><span lang="EN-US">function</span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">要完成，应该按照以下的方式进行：</span><span lang="EN-US"><o:p></o:p></span></em></span></p>
<p class="MsoNormal" style="margin-left: 42pt; mso-para-margin-left: 4.0gd"><span style="color: #000080"><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">写</span><span lang="EN-US">function1</span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">Test Case -&gt; </span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">写</span><span lang="EN-US">function1</span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">Code</span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并使</span><span lang="EN-US">Test Case</span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通过</span><span lang="EN-US"> -&gt; <strong style="mso-bidi-font-weight: normal">Check-in</strong> -&gt; Code Review/FingBug/Refatoring -&gt; <strong style="mso-bidi-font-weight: normal">Check-in</strong> -&gt; </span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">写</span><span lang="EN-US">function2</span></em><em style="mso-bidi-font-style: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">Test Case&#8230;<o:p></o:p></span></em></span></p>
<p class="MsoNormal" style="margin-left: 21pt; mso-para-margin-left: 2.0gd"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span style="color: #000080">这样的好处是：</span></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><span style="color: #000080"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">每步的范围越小，测试、查错和</span><span lang="EN-US">Roll Back</span><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">越容易</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，也有利于<strong style="mso-bidi-font-weight: normal">最简设计</strong>和<strong style="mso-bidi-font-weight: normal">最简实现</strong>。</span></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore"><span style="color: #000080">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span style="color: #000080">完成的部分完全<strong style="mso-bidi-font-weight: normal">可交付</strong>。</span><br />
<br />
</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为单位进行计划（</span><span lang="EN-US">Planning</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、开发和跟踪（</span><span lang="EN-US">Tracking</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）。定义</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的原则是：</span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Simple</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：一个</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不应能被拆分为</span><span lang="EN-US">Task</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如果可以拆分，应考虑继续拆分为若干个</span><span lang="EN-US">Iterations</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Clear</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的需求</span><span lang="EN-US">/User Story</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应该是清楚的、确定的。如果一个</span><span lang="EN-US">Requirement Point</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">部分确定，部分未确定，而已确定的部分已可独立开发，应该把确定的部分定义为一个</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，减少未确定部分对整个进度的影响。</span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Independent</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：一个</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应相对独立，不应与其他部分有太多的依赖。</span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Short</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：一个</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不应超过</span><span lang="EN-US">3</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">周。</span></p>
<p class="MsoNormal" style="margin-left: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们应该<strong style="mso-bidi-font-weight: normal">结合</strong>这</span><span lang="EN-US">4</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个原则进行</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义。<br />
<br />
</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt"><span style="color: #000080"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不管是</span><span lang="EN-US">auto test</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还是</span><span lang="EN-US">manual test</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，都是</span><span lang="EN-US">testing</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的<strong style="mso-bidi-font-weight: normal">手段</strong>而已，</span><span lang="EN-US">Testing</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的<strong style="mso-bidi-font-weight: normal">有效性</strong>取决于</span><span lang="EN-US">Test Case</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的<strong style="mso-bidi-font-weight: normal">质量</strong>和<strong style="mso-bidi-font-weight: normal">覆盖率</strong>。可以通过以下方法提高</span><span lang="EN-US">Testing</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的有效性：</span></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l1 level2 lfo2; tab-stops: list 42.0pt"><span style="color: #000080"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">邀请</span><span lang="EN-US">Customer</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供或者和他们一起制定</span><span lang="EN-US">Functional Test Case</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l1 level2 lfo2; tab-stops: list 42.0pt"><span style="color: #000080"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">Pair Programming</span></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; mso-list: l1 level2 lfo2; tab-stops: list 42.0pt"><span style="color: #000080"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">n<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果不能进行</span><span lang="EN-US">Pair Programming</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，也必须在<strong style="mso-bidi-font-weight: normal">前期</strong>和<strong style="mso-bidi-font-weight: normal">中期</strong>与其他同事</span><span lang="EN-US">Walk Through</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或讨论</span><span lang="EN-US">Test Case</span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span style="color: #000080">，减少遗漏。</span><br />
<br />
</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果</span><span lang="EN-US">Customer</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不能配合我们进行短</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发，不妨把</span><span lang="EN-US">Release</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分为</span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Internal Release</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">External Release</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。对外发布按照</span><span lang="EN-US">Customer</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的要求和步伐，而内部我们按照自己的步伐进行<strong style="mso-bidi-font-weight: normal">持续集成</strong>和<strong style="mso-bidi-font-weight: normal">测试</strong>。<br />
<br />
</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; text-align: left; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt; mso-layout-grid-align: none" align="left"><span style="color: #000080"><span lang="EN-US" style="font-size: 12pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">XP Planning</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的一个重要原则：</span><span lang="EN-US" style="font-size: 12pt; mso-font-kerning: 0pt"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-align: left; mso-para-margin-left: 4.0gd; mso-layout-grid-align: none" align="left"><em style="mso-bidi-font-style: normal"><span lang="EN-US" style="font-size: 12pt; mso-font-kerning: 0pt"><span style="color: #000080">One of the <strong style="mso-bidi-font-weight: normal">most important</strong> principles in planning for Extreme Programming is that <strong style="mso-bidi-font-weight: normal">the dates are hard dates</strong>, but <strong style="mso-bidi-font-weight: normal">scope will vary</strong>.<o:p></o:p></span></span></em></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="color: #000080"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当</span><span lang="EN-US">Deadline</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">临近，我们已确定无法完成本</span><span lang="EN-US">Iteration</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">计划的全部时，应该及时和</span><span lang="EN-US">Customer</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">沟通，把剩下的部分进行</span><span lang="EN-US">Prioritize</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，把最重要的、可在</span><span lang="EN-US">Deadline</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">前完成的部分先完成，<strong style="mso-bidi-font-weight: normal">按时交付</strong>，把<strong style="mso-bidi-font-weight: normal">未完成的部分定义为新的</strong></span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US">Iteration</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，并把它和其他所有未开始的</span><span lang="EN-US">Iteration</span><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一起进行</span><span lang="EN-US">Prioritize</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。这样可避免一味延时带来的<strong style="mso-bidi-font-weight: normal">恶性循环</strong>，也可确保整个</span><span lang="EN-US">Project</span><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最重要</span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的部分被<strong style="mso-bidi-font-weight: normal">优先</strong>完成，因为<em style="mso-bidi-font-style: normal">很有可能</em>，未完成的部分<strong style="mso-bidi-font-weight: normal">并不那么重要</strong>。</span></span></p>
    <img src ="http://www.blogjava.net/pdclh/aggbug/253747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdclh/" target="_blank">桃花源</a> 2009-02-07 22:29 <a href="http://www.blogjava.net/pdclh/archive/2009/02/07/253747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>