特征驱动开发(Feature-Driven Development)

本站一直倡导四色原型和领域驱动设计开发,与之相应的项目工程方法是FDD,这点在四色原型书籍中也提及,昨天dzone推出一篇FDD介绍文章:特征驱动开发(Feature-Driven Development)

XP适合一个熟练的和有纪律的开发小团队。 但对于那些规模较大的项目和大型团队XP就是一个重大的挑战,这时FDD就比较适合。

FDD定义:
开始是一个与领域专家合作 ,进行领域对象模型的创建。 建立一个功能列表。 然后 , 一个粗略的计划制定和责任分配。

现在 , 我们准备通过一个反复考虑的设计特色的小群 , 两个星期一个迭代 , 而且往往要短得多,有时甚至只有几个小时内...

FDD Process #1: 设计一个整体统一模型,这点和DDD倡导统一建模语言是统一的。
对象模型是一种强烈的,高度重复的,愉快的合作和活动。领域和程序员在有对象建模经验的首席架构师指导下进行。


FDD Process #2: 建立一个功能特征列表
确定需要实现的功能列表,紧紧抓住需求。

FDD Process #3: 以功能特征规划
让不同程序员负责不同的类,按照模型类划分工作量,排队领果果,每人一个类。
1. 要有人负责核心类的整合,类的开发者需要确保类代码实现了类当初设计目标。
2.有一个专家解释特定的某个类是如何工作,在复杂业务中这是特别重要。
3.类的开发者进行维护拓展比不熟悉这个类的其他程序员要更快,他有一些他自己引以为豪的特点代码。



[该贴被admin于2009-11-25 17:03修改过]

XP在一个比较大的团队中的确存在很多问题,其中交流沟通会成为很大的成本。

FDD也是我现在公司采用的开发方式。在这个过程中有2点是非常重要的:
1. 功能列表。 需要一个有足够开发经验的人员参与为本次“迭代周期”制定合适的任务列表,适当的任务列表是基础。
2. 在席架构师指导下进行开发工作。 由于任务以“功能”为基础进行开发,各个模块间的结合和功能分布可能产生更大的隔阂。此时有人从全局视角进行指导就显得格外重要了。