FDD的核心思想是:精细特性的迭代周期,使用小部分被传统实践检验了的流线型过程,对于团队交互作用和知识共享的偏爱,以及为所有开发提供环境的概要前端建模。然而,FDD完成这些核心目标的方式与其他敏捷开发方法有所不同。
"FDD和XP的原则中有些是对立的。"Jeff说,"FDD的神秘之处在于,它不像其他迭代或增量方法那样倾向于在整个生命周期中只注重细小阶段,而是在其前端就有我们称之为'过程1'的大量由细小部分组成的内容。这允许我们构建一个特性列表,并不用做大量的修正工作就能实现。我们在最初会有所偏差,这并不代表我们反对重构,而是我们不喜欢做太多的重构。"FDD不同于XP和Scrum等方法的地方是特性交付的进度安排。在技术合理性限度内,XP和Scrum强调用户在每个迭代开始时确定开发的优先顺序。用户在当前的业务价值评估的基础上确定下一步开发哪些特性。FDD假设特性的整体价值已在项目中被确定。安排哪些特性的开发顺序主要是技术上的决策。无论哪种方式,完成特性开发就说明有了进展。