Scrum及XP组合的应用的策略的研究.docVIP

  • 12
  • 0
  • 约3.08千字
  • 约 7页
  • 2018-10-11 发布于福建
  • 举报
Scrum及XP组合的应用的策略的研究

Scrum及XP组合的应用的策略的研究   摘 要:本文介绍了软件开发过程中传统的开发模式,由于传统方式存在某些不足之处,敏捷开发的概念孕育而生,通过对比,具体分析了极限编程和Scrum两种敏捷开发方法,提出了组合应用两种方法的一些策略,描述了使用的方法和适用场景,尽可能地发挥两者的长处,通过科学的项目管理,使整个软件开发过程取得更好地实践效果。   关键词:Scrum 敏捷开发 极限编程   中图分类号:TP311.5 文献标识码:A 文章编号:1672-3791(2017)11(b)-0013-02   软件过程作为软件工程的基本要素,是决定软件质量好坏以及整个软件项目成败的关键因素。软件开发使用的主要传统模型是瀑布模型,瀑布模型流传至今,影响深远。瀑布模型根据软件生命周期,将软件过程主要分为问题定义、可行性研究、需求分析、设计、编码、测试、运行和维护等阶段,各阶段要求有明确的结果、规范的文档以及严格的评审,阶段间有明确的界限,只有上一阶段结束才可进入下一阶段,是标准的顺序模型。在需求明确的情况下,瀑布模型的特点能够保证软件的质量。随着软件行业的飞速发展,软件应用的差异化、需求的不确定性以及系统的复杂性等因素导致瀑布模型无法满足软件发展的需要,开始出现原型法、迭代开发、增量开发的思想,快速原型法、增量模型、喷泉模型、螺旋模型等不同的软件过程模型也随之诞生。发展到今天,RUP、微软过程以及敏捷开发已经成为了主流,而快捷易用的敏捷开发方法更是成为了多数中小型项目的首选。   敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发[1]。2001年2月,17名知名的软件工程专家聚集在美国的犹他州雪鸟滑雪胜地,这些不同敏捷方法的支持者经过两天的讨论,共同起草了一份《敏捷软件开发宣言》,强调了敏捷软件开发的四个核心价值观:“个体和互动高于流程和工具,工作的软件高于详尽的文档,客户合作高于合同谈判,响应变化高于遵循计划”[2]。这份宣言正式明确了“敏捷”这一术语,同时强调宣言中左项要高于右项。敏捷开发方法的代表包含了极限编程、Scrum、DSDM、自适应软件开发、水晶系列、特征驱动开发等,其中极限编程与Scrum是主流的敏捷开发方法。   1 Scrum和XP的比较   极限编程(ExtremeProgramming,简称XP)由Kent Beck在1996年提出的,是一个轻量级的、灵巧的软件开发方法。极限编程遵循五个重要的价值观:“沟通、简单、反馈、勇气、尊重”,同时提出了十二项原则:“计划游戏、小型发布、简单设计、测试驱动开发、持续集成、重构、结对编程、代码集体所有、现场客户、系统隐喻、编码标准”[2]。Kent Beck认为XP不但可以适应中小规模的团队开发需求模糊或者快速变化的项目的需要,而且对任何规模的团队都起作用[3]。   Scrum源于橄榄球术语,由Jeff Sutherland和Ken Schwaber提出,是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum定义了一系列实践和预定义角色的过程框架,如角色有产品负责人、Scrum主管、开发团队等,工件包括产品订单(Sprint Backlog)、冲刺订单、燃尽图等,活动包括计划会、每日立会、评审会、反思会等。   因为XP和Scrum的广泛应用,敏捷开发者们经常??将两者进行比较,XP和Scrum主要有四个差别[4]。   (1)Scrum的迭代长度通常要比XP长。前者的一个Sprint的周期一般为2~6周,后者的一个迭代长度则大致为1~2周。   (2)Scrum在一个Sprint的周期内不允许修改需求(产品订单),而XP在一个迭代中允许使用其它的用户故事(User Story)替换尚未实现的,前提是实现的时间是相等的。   (3)在迭代中,需求是否严格按照优先级别来实现是不同的。XP是务必要遵守优先级别的。但Scrum在这点做得很灵活,可以不按照优先级别来做。   (4)Scrum关注项目的管理和组织实践,而XP关注的是实际的编程实践。Scrum和RUP一样定义了一套角色、活动和工件,是一套过程框架;XP则规定了测试驱动的开发、结对编程、简单设计、重构等约束团队的十二项原则。   2 Scrum和XP的组合应用策略   根据对一些软件企业的敏捷实践分析,在实际项目中,以Scrum应用为基础,并选择性的结合XP的某些原则,能够取得更好的实践效果。   2.1 保持迭代周期在2~3周   Scrum的一个Sprint的周期一般为2~6周,XP的一个迭代长度则大致为1~2周。敏捷开发的基本思想就是迭代和循序渐进,为保证能尽快提供小型发布版本,显然迭代周期越短越好。但是周期越短,一个周期能够完成的迭代任务就会过

文档评论(0)

1亿VIP精品文档

相关文档