敏捷开发(Agile)

  • Post author:
  • Post category:其他


敏捷开发

敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。

在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。


核心是快速迭代,拥抱变化。

敏捷开发模式有以下显著的特点:

1.story细化。

2.简单设计,避免过度设计。

3.重复迭代。

4.减少不必要的文档。

5.客户最关心的功能最先完成。

6.要求客户有时间对每次迭代的成果进行确认,提出改进意见。

7.showcase。

8.沟通是非常重要的,所有的开发人员对项目活动的理解应该是一致的。加强团队之间和客户之间的沟通。

9.测试驱动开发(TDD)

10.需要更强的个人和团队能力。

11.敏捷的管理是团队的自我管理和项目经理的服务式管理。

12.敏捷开发不能在一开始就给出项目完整的成本计划。

13.在有技术问题还没有解决的情况下不适合展开迭代。

14.敏捷实践:晨会,deadline,负责人制等等。

优点:

  1. 敏捷开发的高适应性,以人为本的特性。
  2. 更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。

缺点:

由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。

瀑布开发:

1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。

使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。

2.重视和强调过程文档,在开发的中后期才会看到软件原型,早起只能通过文档来了解系统的模样。

在这种情况下,文档的重要性仿佛已经超过了代码的重要性。

3.瀑布模型把每个开发阶段都定义为黑盒,希望每个阶段的人员只关心自己阶段的工作,不需要关注其他阶段的工作。

优点:

1. 为项目提供了按阶段划分的检查点。

2. 当前一阶段完成后,您只需要去关注后续阶段.

3. 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

缺点:

1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。

3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

4. 瀑布模型的突出缺点是不适应用户需求的变化。

敏捷开发scrum的实施

把一个开发流程的名字取名为Scrum。

Scrum开发流程中的三大角色

– 产品负责人(Product Owner)主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

– 流程管理员(Scrum Master)主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

–开发团队(Scrum Team)主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。



版权声明:本文为qq_41878114原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。