敏捷开发

敏捷开发包括一系列的方法,主流的有如下七种:

  XP--极限编程

  XP(极限编程)的思想源自Kent Beck和Ward Cunningham在软件项目中的合作经历。XP注重的核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。

  SCRUM--迭代的增量化过程

  SCRUM是一种迭代的增量化过程,用于产品开发或工作管理。它是一种可以集合各种开发实践的经验化过程框架。SCRUM中发布产品的重要性高于一切。

  该方法由Ken Schwaber和 Jeff Sutherland 提出,旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进。

  Crystal Methods--水晶方法族

  Crystal Methods(水晶方法族)由Alistair Cockburn在20实际90年代末提出。之所以是个系列,是因为他相信不同类型的项目需要不同的方法。虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。

  FDD--特性驱动开发

  FDD(Feature-Driven Development,特性驱动开发)由Peter Coad、Jeff de Luca 、Eric Lefebvre共同开发,是一套针对中小型软件开发项目的开发模式。此外,FDD是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、 易于被开发团队接受,适用于需求经常变动的项目。

  ASD--自适应软件开发

  ASD(Adaptive Software Development,自适应软件开发)由Jim Highsmith在1999年正式提出。ASD强调开发方法的适应性(Adaptive),这一思想来源于复杂系统的混沌理论。ASD不象其他方法那样有很多具体的实践做法,它更侧重为ASD的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。

  DSDM--动态系统开发方法

  DSDM(动态系统开发方法)是众多敏捷开发方法中的一种,它倡导以业务为核心,快速而有效地进行系统开发。实践证明DSDM是成功的敏捷开发方法之一。在英国,由于其在各种规模的软件组织中的成功,它已成为应用最为广泛的快速应用开发方法。

  DSDM不但遵循了敏捷方法的原理,而且也适合那些成熟的传统开发方法有坚实基础的软件组织。

  轻量型RUP

  RUP其实是个过程的框架,它可以包容许多不同类型的过程,

  Craig Larman 极力主张以敏捷型方式来使用RUP。他的观点是:目前如此众多的努力以推进敏捷型方法,只不过是在接受能被视为RUP 的主流OO开发方法而已。

       七种武器PK

  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,国内介绍的还是比较多的.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值