当DDD遇到项目管理

11-10-17 genius_li
              

我在一个软件公司,由于需求膨胀太快,公司将大量功能进行外包并以此为发展趋势,这其中最大的问题就是外包软件质量无法保证。我在进行这样一种尝试,本部进行需求及领域建模以及模型层(领域层)的实现,提供核心的领域模型的实现及相关文档,只对外围功能进行外包。但当着手时,发现有一系列问题,首当其冲的是项目管理。

我们公司按照CMMI4过程,从规划、概要需求列表、资源估算,之后才能立项。即使公司允许使用敏捷过程,也是基于立项之后。我对DDD有一定的实践,不过仅限于建模与实现层面,而对DDD的项目进行管理没有经验。

市面虽有一些DDD的书籍,但都是针对建模与实现的技术层面,没有地方可以从“开发过程”层面进行参考的书。希望有这方面经验的大神可以进行一些分享……

另外我想补充的是,我们公司的立项过程,对“概要需求列表”中的列表项需要做到:

1. 按功能拆分成列表项,按每项对开发建立项目任务

2. 每项中的功能必须可以进行测试,才能对测试人员建立项目任务

3. 对大于5人天开发任务量的功能进行拆分

但对于DDD,由于我只想开发出领域模型及实现,我会产出4样东西:

1. 领域模型设计文档

2. 领域模型层的实现代码

3. 针对模型层的单元测试代码(以Facade粗粒度业务调用为入口,mock掉基础设施)

4. 供外包使用的借口API

这其中没有表示层,所以无交付供测试人员测试的功能,所以不能按照之前的方式进行立项。

公司允许使用任何开发过程,我可以向管理层提出用SCRUM或RUP,只是我无法确定哪种方法更适合DDD,如果我用RUP,我还无法确定每个迭代周期做什么,甚至我无法确定在哪个阶段交付哪些成果。再次恳请有这方面经验的大神可以不吝赐教,谢谢!

              

1
banq
2011-10-18 12:51

DDD 遵循MDD模型驱动开发的敏捷开发方式,一般两周一个迭代,交付一批模型及其相关功能实现。

一个模型驱动敏捷开发的PPT:

http://www.slideshare.net/JohanDenHaan/business-agility-through-model-driven-development

[该贴被banq于2011-10-18 13:07修改过]