敏捷开发人比流程重要.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
敏捷开发人比流程重要      与传统软件开发方法相比,敏捷开发更重视人在软件开发中的作用,强调快速迭代、持续集成以及测试驱动开发等,从而满足不断变化的业务需求。      20世纪60年代开始的软件危机引发了人们对软件开发的思考,并由此诞生了《软件工程》这门学科。它将软件开发分为需求分析、设计、编码、测试、维护等几个阶段的瀑布式开发软件方法至今仍然在大多数软件开发组织沿用。然而,《软件工程》学及其瀑布式开发方法并没有彻底解决软件危机。如何满足不断变化的软件需求一直就是传统软件开发方法无法解决的难题。   而敏捷开发正是为了解决上述问题而提出,从2001年敏捷开发方法正式出现以来,越来越多的开发人员开始接受这一方法,市场也出现了一批以敏捷开发为主要方法的软件开发和咨询服务公司。ThoughtWorks公司就是其中的佼佼者,日前,本报记者专访了ThoughtWorks公司中国区总经理郭晓,请他就如何实施敏捷开发等问题进行介绍。      颠覆   传统软件开发方法      敏捷开发作为一种开发方法始于2001年,当时全球非常有名的10多位软件开发的大师集中在一起,对当时出现的一些新的编程方法进行归纳,并用敏捷这个词来概括这几种类似的方法流程。   “只要你的软件开发方法遵循敏捷的四条原则(即个体和交互胜过过程和工具、工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划),就算是敏捷一类的开发方法。比如ThoughtWorks自身的实践就集成了Scrum和极限编程,是这两种方法的组合体。” 郭晓告诉记者。   郭晓从20世纪90年代开始接触极限编程等敏捷开发方法,其后的10多年一直从事敏捷开发,后来又从事软件开发的管理工作,这使得他可以从更高的层次上来看敏捷这种对大多数程序员仍然比较陌生的开发方法。郭晓认为,敏捷宣言最为核心的思想有两点。   一个是人比流程重要。敏捷和传统的开发方式最大的不同点在于,传统的软件开发方式遵循了20世纪大规模工业化生产的思路: 每个人在这个流水线上负责一项工作,只要流程设计得完美,人就不重要,这也是《软件工程》学所追求的一种境界。而实际上,软件开发是一个知识性、创造性的工作,是不可能完全模仿流水线的。敏捷开发强调一批有软件开发能力的人组成一个团队,至于团队使用哪种敏捷方法,完全由团队根据自己的特点来决定。它强调流程是为人服务的,重视发挥人最大的创造力。   另一个是能够工作的软件其价值要比文档重要。传统的软件开发方法分为需求分析、设计、编码等不同的阶段,分别由不同的人负责,文档在其中扮演驱动力的角色,不同角色通过文档来进行知识传递和交互。而敏捷开发认为文档是为软件服务的,强调通过快速迭代和持续集成,让各种不同角色的人员可以基于目前已经开发出的软件进行直接沟通交流。这就带来了两个好处: 快速反馈和紧密的协作。   “重视交付、紧密协作、快速反馈正是敏捷的特殊之处,这些特点保证了敏捷开发能够满足变化的需求。”郭晓说,“而用传统的软件开发方法开发出的软件成功与否很大程度上建立在需求分析是否有足够的远见,能把未来的需求都考虑在内,而实际上,这几乎是不可能的。”      结对编程   有必要吗?      说起敏捷开发也就不能不提到它的结对编程,敏捷开发要求代码的编写应该同时有两人参与,两人共同使用同一台电脑、一个键盘和一个鼠标。在采访过程中,记者特意向郭晓提出了这一疑问: 结对编程有必要吗?   郭晓告诉记者,结对编程在大多数情况下是适合的。在正常情况下,一个程序员并不是整天都在敲键盘输代码,他要思考,实际上真正敲键盘的时间只有20%~30%。因此,两个人共同使用同一套电脑,并不意味着效率下降。敏捷开发要求一个人在编写代码的同时,另一个人对这个代码进行评审,评估代码是否正确、是否有更佳的编写方法,然后相互沟通交流。这样写出的代码质量要远远高于单个人写。   结对编程的另一个好处是降低了项目风险。现代软件开发分工很细,每个软件开发人员独立负责一部分,一旦程序员离职或者换岗对于软件开发会很不利。而结对编程时,每段代码都至少有两个人了解,人员变动给项目带来的风险要低得多。   结对编程还有一个好处是有助于传、帮、带。通过结对编程,项目新来者可以很容易地融入进来,而这个过程不损失代码数量,还能够带来知识的共享等好处。   郭晓补充说,虽然敏捷开发强调敏捷编程,但并不是机械地要求任何代码都要结对完成。对于一些很简单、众所周知的代码,也可以只由一个人负责。   实际上,记者曾参观过ThoughtWorks公司的软件开发现场。记者看到,在大多数公司常见的格子间不见了,取而代之的是一个个长方形的大圆桌。这里的开发人员以两个人为一组,虽然两个人面前各有

文档评论(0)

聚文惠 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档