- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
敏捷方法在欧美外包项目管理中的应用objectivasoftware
敏捷方法在欧美外包项目管理中的应用
文/崔立元 奥博杰天软件(北京)有限公司
发表于《软件世界》杂志,趋势栏目,2009 年07 月刊
随着人们对软件开发灵敏度的要求逐渐提高,敏捷开发的方法得到更加广泛的认
可,它正逐步走向成熟。
i ii
VISIONONE 公司在2008 年6 月至7 月进行了关于敏捷开发的问卷调查,根据得到的来自80 多
个国家的超过2300 份问卷反馈得知,95%的公司在软件开发中使用了敏捷方法,其中超过60%
的公司使用超过了一年时间。Scrum 和XP 作为最重要的两个敏捷方法,超过70% 的公司在使
用。在使用敏捷方法的交付调查中,有一半以上项目在提高生产率,加速市场交付和降低缺陷
三个方面取得了超过25%的显著提高。
敏捷方法
iii
“方法集”(Methodology)就是为了开发软件而定期做的每一件事情 。而敏捷方法是
数十种方法集的统称,包括比较有代表性的Scrum,Extreme programming (后文简称XP ),
Unified Process 和Crystal Clear 等。这些方法集共同的特点就是轻量级,迭代增量式的开发和交
付,以及适应需求变化。
轻量级:
方法集的重量需要与使用它的团队和项目相匹配,够轻但是恰当,过轻或者过重会给项目带来
风险或者不必要的成本。方法集的轻重主要体现在对团队,过程,活动,工作产品,标准和质
量等方面的控制粒度和准确严格性上。上文提到的几个敏捷方法集均是在大量实践中经过检验
iv
的,适合于小型团队(10 人以内)的使用 ,轻但足够。当然在实际使用中,也会根据团队、
项目和客户的特点进行适当的调整。
迭代增量式开发和交付:
所有的敏捷方法集均采用迭代增量式的方式进行开发和交付,每次迭代的周期不尽相同,XP 推
荐1-2 周的迭代,而Scrum 则更多的采用2-4 周的迭代 (30 天是Scrum 最典型的周期)。每一
次迭代都是包括一个完整的产品开发过程,包括需求分析,设计,开发和测试等。在每一次迭
代结束的时候,要求能够交付一个稳定的、经过测试的、可以运行部分功能的产品版本。而且
随着一次次迭代的进行,越来越多的功能被增量式的实现,直到最后一次迭代交付整个产品。
适应需求变化:
在敏捷开发中,需求分析贯穿在整个软件开发过程中。通常,每个迭代都会有一天或者几天时
间用于需求分析。客户在开发过程中提出的需求变更会在下一个迭代过程中进行分析,开发团
队可以根据变更的需求的重要性和紧迫性,对整个项目计划或部分迭代计划进行调整。因为整
个项目的开发被分为若干个一周到几周的迭代,客户的需求变更会快速得到响应,一些重要且
迫切的需求会在提出后很短的时间内交付。但涉及到架构设计的重要需求还是尽量要在项目开
始的几个迭代中进行分析,这样的变更如果发生在后期的项目开发中,会带来大量的返工。
2
Scrum 和XP 是当前最为流行的两种敏捷方法,其中Scrum 定义的原则,实践和过程更
加偏重于项目管理方面,而XP 则更注重工程方面。由于两种方法的侧重点不同,所以越来越
多的敏捷团队结合使用Scrum 和XP 。
Scrum:
Jeff Sutherland 和Ken Schwaber 是Scrum 的创始人,他们在1995 年提出了Scrum 方法。近年来Scrum 已
经变成了敏捷开发中最流行的方法之一。Scrum 使用 “产品backlog”、 “Sprintv backlog”和每日例会
(Daily Scrum Meeting )分别对整个项目、每个迭代周期和每个工作日进行计划完成情况追踪。并根据每
日例会、Sprint 计划会议和Sprint 评审会议得到的反馈,不断对项目开发计划和过程进行调整。
XP :
XP 是一个非常著名的敏捷方法,最早是由Kent Beck 在1996 年提出的。XP 注重使用更短的迭代周期(1-
2 个星期)和大量的工程实践,包括用户故事,结对编程,持续集成,测试驱动开发,重构和自动化
文档评论(0)