数据加载中……
XP实践小结
 

l         TDD中,按照Failed -> Passed –> Refactoring的步骤进行,写完Test Case并在写Code或改Code前,应该先运行一下Test Case,这时应得到一个FailedError的结果,以确保Test Case不是在任何情况下都会Pass,以确保它确实能验证程序的结果。

l         最好用小步伐的节奏进行TDD

如果要写的程序有10function要完成,应该按照以下的方式进行:

function1Test Case -> function1Code并使Test Case通过 -> Check-in -> Code Review/FingBug/Refatoring -> Check-in -> function2Test Case…

这样的好处是:

n         每步的范围越小,测试、查错和Roll Back越容易,也有利于最简设计最简实现

n         完成的部分完全可交付

l         Iteration为单位进行计划(Planning)、开发和跟踪(Tracking)。定义Iteration的原则是:

n         Simple:一个Iteration不应能被拆分为Task,如果可以拆分,应考虑继续拆分为若干个Iterations

n         ClearIteration的需求/User Story应该是清楚的、确定的。如果一个Requirement Point部分确定,部分未确定,而已确定的部分已可独立开发,应该把确定的部分定义为一个Iteration,减少未确定部分对整个进度的影响。

n         Independent:一个Iteration应相对独立,不应与其他部分有太多的依赖。

n         Short:一个Iteration不应超过3周。

我们应该结合4个原则进行Iteration定义。

l         不管是auto test还是manual test,都是testing手段而已,Testing有效性取决于Test Case质量覆盖率。可以通过以下方法提高Testing的有效性:

n         邀请Customer提供或者和他们一起制定Functional Test Case

n         Pair Programming

n         如果不能进行Pair Programming,也必须在前期中期与其他同事Walk Through或讨论Test Case,减少遗漏。

l         如果Customer不能配合我们进行短Iteration开发,不妨把Release分为Internal ReleaseExternal Release。对外发布按照Customer的要求和步伐,而内部我们按照自己的步伐进行持续集成测试

l        XP Planning的一个重要原则:

One of the most important principles in planning for Extreme Programming is that the dates are hard dates, but scope will vary.

Deadline临近,我们已确定无法完成本Iteration计划的全部时,应该及时和Customer沟通,把剩下的部分进行Prioritize,把最重要的、可在Deadline前完成的部分先完成,按时交付,把未完成的部分定义为新的Iteration,并把它和其他所有未开始的Iteration一起进行Prioritize。这样可避免一味延时带来的恶性循环,也可确保整个Project最重要的部分被优先完成,因为很有可能,未完成的部分并不那么重要

posted on 2009-02-07 22:29 桃花源 阅读(1240) 评论(0)  编辑  收藏 所属分类: 敏捷开发


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问