我对各敏捷开发方法的大致理解

1. SCRUM
SCRUM?这个单词我以前没见过,所以我就不喜欢它,呵呵.SCRUM本义表示"混乱",它包括
多个“怪异”的方法/过程名称。比如,SCRUM将开发过程分为30天的迭代周期,每个
迭代周期叫做一个Sprint(原意:冲啊!);每天有一个15分钟的短会,用来决定第二天
的任务安排这样的短会就叫做scrum。
我不喜欢SCRUM的原因如下:
1)一个方法,搞出这么多名词,加重我们程序员的负担,不好;
2)SCRUM的迭代周期为30天,而且一个周期叫一个"冲",那不是要累死我们程序员?
3)每天有一个15分钟的短会,唉,XX党的会多!
4)15分钟的短会叫"混乱",那....,15分钟能结束吗?
5)SCRUM强调,开发者每天要向管理者报告项目进度,唉,我受不了了....

2. Crystal
Crystal根据项目规模和项目的重要性(如发射火箭的项目和一个"hello world"程序的
重要性当然是不一样的)来区别项目,并赋以相应的方法,所以,crystal是方法的组合.
相对于其它敏捷方法,Crystal强调软件开发流程的纪律性,所以,它比其它敏捷方法易
于使用,但它的生产率不如XP等其它敏捷方法.

3. ASD(Adaptive Software Development)
ASD强调开发方法的适应性(Adaptive),这一思想来源于复杂系统的混沌理论(这个
名字大家应该都听说过了,炒股的用的很多,呵呵)。ASD不象其他方法那样有很多具体
的实践做法,它更侧重于理论,因为它的作者就是搞理论出身的。

4. FDD
FDD(Feature Driven Development)定义了5个流程,
分别是Develop an Overall Model、Build a Features List、Plan by Feature、Design by Feature和Build by Feature。
前3个流程是在项目开始就进行的,其实总体相当于我们现在的系统分析;后两个则出
现在每次迭代周期中,FDD的迭代周期是两周,相当于我们现在的设计/编码/测试。
开发人员被归为两种,一种是主程序员,另一种是class所有者。主程序员不作具体的
编程工作,但要负责将Feature和Class对应起来,并充当开发协调者、设计者、技术
支持和指导者等;class所有者则进行实际的编程。我认为这样的划分对国内的软件开
发情况不合适,因为,真正达到主程序员水平的人,太少了!
对于ASD和FDD,国内介绍的还是比较多的.

5.XP
这个,大家都知道了,这里,就不说了,呵呵.(
posted @ 2007-04-03 00:11  meil  阅读(3954)  评论(3编辑  收藏  举报