Jeff De Luca谈FDD中的建模和代码所有权,以及选择敏捷方法

在与Stefan Roock长达八页的访谈记录中,特征驱动开发(Feature Driven Development,FDD)方法的创始人Jeff De Luca谈到了包括开发一个全面模型、代码所有权和如何选择敏捷方法在内的很多内容。

开发一个全面模型

Jeff认为,与其它敏捷方法相比,FDD在初始阶段(开发一个全面模型)允许项目团队掌握整个项目,以便回答诸如“项目还剩多少没完成”之类的问题:

如果我们完全是纯粹的增量迭代开发——即仅限于迭代内的需求与分析——那么,我们当然很难回答“整个项目我们进行了多少”,以及“项目还有多少没完成”。因为我们还没有浏览过剩下的需求呢。所以一开始一定要做一些信息收集或分析活动,以便我们了解并设定可以跟踪和反馈的基线,这样我们就可以回答上面的问题了。FDD是唯一一个能够正确做到这一点的敏捷方法。

在这一阶段的这个问题上可以看作是大量预先设计(Big Design Up-Front,BDUF)

并不是做BDUP那种被人鄙视的“全面预先设计”,而是做“恰好够用的设计”。同时还应注意,在FDD中的这个第一项活动不但包括高层次的设计,也包括需求及需求分析。

代码所有权

Jeff De Luca也不完全赞同集体代码所有权:

集体所有权就相当于没有所有权。我不相信这个说法会有什么好处。

而私有代码所有权的益处在于:

模型或组件所有权的概念已经被事实证明是一个最佳实践,所有专业的开发工作也正是这样做的。不可能每个人都了解每样东西的所有事情。这是很脆弱的,而且无法衡量。

特别说明问题的是:面向对象基本原则之一就是封装性。一个类只要对外开放的接口保持不变,那么它内部及其实现是什么样的就是它自己的事情了。人本来就喜欢封装。假如你拥有类的所有权,那么你会更好地保持接口与实现的一致性。

选择一种敏捷方法

当谈到不同的敏捷方法和它们对不同类型的项目的适应性时,Jeff De Luca提出了一个实用方法来挑选敏捷方法:

我认为不应该根据项目类型而选择不同的敏捷方法。每次谈到这类问题时,我都建议人们去看Jim Highsmith写的《Agile Software Development Ecosystems》。这是唯一一本谈及所有敏捷方法有关细节的书。读过这本书后,你会发现其中的一两种敏捷方法适合你和你的团队。无论具体是哪种方法,你都应该去实践一下。换句话来讲,在选择敏捷方法这件事上,更应该根据使用的人和组织的文化而不是项目类型来挑选。

这个访谈在最后介绍了关于FDD的更多的参考资料。

想了解这些主题更多的信息,可以阅读InfoQ关于敏捷方法、特性驱动开发和建模的报导。

查看英文原文:Jeff De Luca, on FDD: Modeling, Code Ownership, Choosing an Agile Method

译者简介:乔梁,BJUG成员,在IT领域工作多年,先后从事过软件开发、架构设计、技术管理等工作,目前从事项目管理工作。关心软件技术领域发展,对软件生命周期管理及过程改进方面的内容很感兴趣,对敏捷方法论亦有所了解。他的个人Blog为: http://blog.csdn.net/tony1130。为InfoQ中文站贡献内容,请邮件至 china-editorial[at]infoq.com。

 

你可能感兴趣的:(Jeff De Luca谈FDD中的建模和代码所有权,以及选择敏捷方法)