对敏捷开发的一些思考

Posted 51Testing软件测试网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对敏捷开发的一些思考相关的知识,希望对你有一定的参考价值。

(本文节选自:51Testing【测试专刊】顾翔与你一起漫谈测试)

  一、简介

  敏捷软件开发(Agile software development),又称敏捷开发,是一种从上世纪九十年代开始逐渐引起广泛关注的一些新型软件开发方法,它是应对快速变化的需求而产生的。它的具体名称、理念、过程、术语都不尽相同,相对于"非敏捷",共同点是更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档沟通更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队等等,它能够很好地适应需求变化的代码编写和团队组织,更注重软件开发中人的作用。 "敏捷"(Agile)一词来源于2001年初美国犹他州雪鸟滑雪圣地的一次敏捷方法发起者和实践者(他们发起组成了敏捷联盟)的聚会。敏捷开发是软件工程经过原始模型,大棒模型,瀑布模型,迭代模型后产生的。

  敏捷组织有自己宣言:

  人和(人与人的)交互:优先于过程和工具。

  可以工作的软件:优先于求全责备的文档。

  客户协作:优先于合同谈判。

  随时应对变化:优先于循规蹈矩。

  二、敏捷开发的优点

  我认为敏捷开发有以下优点:

  1.采用敏捷,可以快速提高软件发布周期。许多软件公司以前采用瀑布模型:从业务建模,需求调研,需求分析,设计,编码,测试到最终送交给客户使用,需要经历很长的周期。而采用敏捷开发,可将一个产品或项目分解为多个sprint,开发小组每周或每两周提交一部分产品,而这部分产品都要保证可运行,可使用的。经过多模块集成及集成测试,客户每一到两个月就可拿到产品,这样可保证客户尽早发现产品问题所在,及时反馈回来。此外客户对产品的重要部分可优先使用起来。敏捷开发提倡客户参与到项目中去,尽管实施起来比较困难,但若能够真正做到这一点,这样就可更加体现这个优点。另外若再采用火车模型[1]进行产品发布,则更可缩短产品发布的周期。

  2.采用敏捷开发,测试能够尽早参与进项目中来。缺陷预防优于缺陷发现,缺陷发现是亡羊补牢,虽说为时未晚,但是软件测试能够尽早参与,可把众多的缺陷消灭在萌芽状态,这一直是软件测试人员梦寐以求的事情,就像中医所说的:上工治未病,让疾病隐患消灭在萌芽状态,不让它发出来。釆用敏捷开发,测试人员可以在第一时间内参与产品在这个sprint的需求,由于每一个sprint的功能被细化得比较简单, 测试与开发可比较清楚地了解这个sprint的需求,并与开发人员达成一致的观点。在开发人员写功能代码的时候,测试人员就可以设计测试案例。当开发代码写完,测试案例设计也完成以后就可执行测试案例了,与此同时可以进行探索性测试(ET)[2],及早发现问题并反馈给开发人员,以便及时解决,及时总结。对于一些问题可避免在下一个sprint中再犯;而对于系统架构体系中的问题,可以在第一时间内进行优化,重构或重建,缩短了开发时间,从而达到了敏捷开发的目的。

......

以上是关于对敏捷开发的一些思考的主要内容,如果未能解决你的问题,请参考以下文章

敏捷开发的思考

制造业产品开发中应用敏捷Scrum的思考 (下篇)

[Scrum敏捷开发之] Sprint开发过程详解

敏捷开发及运维的思考与落地

软件开发模式:瀑布与敏捷

敏捷开发XP