码迷,mamicode.com
首页 > 其他好文 > 详细

记敏捷开发——Scrum

时间:2016-03-20 00:35:28      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

前言

  首先说说为什么会接触到敏捷开发,因为自己跳槽了,进入一家新的互联网公司,公司用的是敏捷开发的开发模式,进行产品开发的迭代。公司的产品是一个线上平台,说白了就是电子商务,主要做智能办公,其中涉及到一些东西就不一一细说了。回到正题,其实自己也一直想接触这种模式,一来是这种开发模式被越来越多的企业所采用,二来是自己也想学习一些心得东西来提高自己的水平。之前任职于一家科技公司,时间久了就觉得比较乏味。思考良久,还是决定换个环境,换种思维,接下来说重点。

主题

  ————以下是我搜集的一些资料——————

  敏捷开发的优势: 

  满足用户不断变化的需求是软件开发的长期无法解决的难题之一,我们常用的经典的瀑布模式在一个迭代周期内表现优异,但一旦需求变化,瀑布模式却显得无能为力。比如,用户给了一个需求,我们按照其实现了,交付给客户,客户一旦修改需求,并且修改的地方很多甚至跟原来需求完全不一致。那我们岂不是白费了精力。而敏捷方法满足需求的办法主要通过迭代。在每一次迭代周期(一般一个迭代是一到两周)结束时,都能交付用户一个可用的、可部署的系统,用户使用并体验该系统并反馈意见,在随后的迭代周期这些意见和需求的其他变化一起在产品中实现和集成。每次迭代周期应尽可能短,以便能及时地处理需求变化和用户反馈。

  敏捷开发由几种轻量级的软件开发方法组成,包括极限编程、Scrum、精益开发(Lean Development)、动态系统开发方法、特征驱动开发(Feature Driver Development)、水晶开发(Cristal Clear)等等。所有这些方法都具有以下共同特征,它们也是敏捷开发的原则:

  1. 迭代式开发。即整个开发过程被分为几个迭代周期,每个迭代周期持续的时间一般较短,通常为1到6周。

  2. 增量交付。产品是在每个迭代周期结束时被逐步交付使用,每次交付的都是可以被部署、能给用户带来即时效益和价值的产品。

  3. 开发团队和用户反馈推动产品开发。敏捷开发方法主张用户能够全程参与到整个开发过程中。这使需求变化和用户反馈能被动态管理并及时集成到产品中。

  4. 持续集成。新的功能或需求变化总是尽可能频繁地被整合到产品中。有些是在每个迭代周期结束的时候集成, 有些则每天都在这么做。

  5. 开发团队自我管理。人是敏捷开发的核心。敏捷开发总是以人为中心建立开发的过程和机制,而非把过程和机制强加给人。

  敏捷开发方式能给企业和用户带来以下好处:
  1. 精确。瀑布模式通常会在产品起点与最终结果之间规划出一条直线,然后沿着直线不断往前走。然而当项目到达终点时,用户通常会发现那已经不是他们想去的地方。而敏捷方法则采用小步快跑,每走完一步再调整并为下一步确定方向,直到真正的终点。
  2. 质量。敏捷方法对每一次迭代周期的质量都有严格要求。一些敏捷方法如极限编程等,甚至使用测试驱动开发(test-driven development),即在正式开发功能代码之前先开发该功能的测试代码。这些都为敏捷项目的整个开发周期提供了可靠的质量保证。
  3. 速度。敏捷团队只专注于开发项目中当前最需要的、最具价值的部分。这样能很快地投入开发。另外,较短的迭代周期使团队成员能迅速进入开发状态。
  4. 丰厚的投资回报率。在敏捷开发过程中,最具价值的功能总是被优先开发,这样能给客户带来最大的投资回报率。
  5. 高效的自我管理团队。敏捷开发要求团队成员必须积极主动,自我管理。在这样的团队中工作,每个团队成员的技术能力、交流、社交、表达和领导能力也都能得以提高。
  
  主要的敏捷方法:
  敏捷开发方法是一组开发方法的统称,主要包括以下几种:
  极限编程其主要目的是降低需求变化的成本。它引入一系列优秀的软件开发方法,并将它们发挥到极致,结对编程(pair-programming)就是其中比较知名的方法之一。除此之外, 其核心做法还有小规模、频繁的版本发布、短迭代周期、测试驱动开发、持续集成、每日站立会议、共同拥有代码、系统隐喻等。
Scrum Scrum是一个敏捷开发框架,它由一个开发过程、几种角色以及一套规范的实施方法组成。在Scrum中,产品需求被定义为产品需求积压(product backlogs)。所有的产品需求积压都是从一个简单的想法开始,并逐步被细化,直到可以被开发的程度。Scrum将开发过程分为多个Sprint周期,每个Sprint代表一个2~4周的开发周期,有固定的时间长度。
  精益开发精益开发的核心思想是查明和消除浪费。在软件开发过程中bug、没用的功能、等待以及其他任何对实现结果没有益处的东西都是浪费。浪费及其源头必须被分析查明,然后设法消除。精益开发的其他原则包括强调学习、在最后时刻做决定、用最快的速度交付用户等。
其他敏捷方法还包括动态系统开发方法(DSDM)、特征驱动开发(FDD)、Crystal Clear等,各种敏捷方法的区别在于它们对敏捷的不同阐释和不同侧重。理解这些方法可以帮助我们从多个角度理解敏捷开发,并且了解更多的最佳应用。
 
  如何选择一种敏捷方法:
  选择一种合适的软件开发方法取决于多种因素。在做出决定之前,我们需要充分考虑以下这些方面:
  1. 方法的复杂度。确保你的团队或组织能够应付这种复杂度。
  2. 社区和业界支持。有较多的社区及行业支持可以使你受益匪浅。
  3. 实用工具。一个良好的软件工具可以帮助团队有效地处理日常工作,促进团队协作,并减少管理成本。
  4. 对敏捷方法的认识程度。选择一些与你当前开发方式比较接近的敏捷方法将有助于推动该方法的实施。
  5. 你的团队规模。较小规模的团队最好从简单的方式入手。
  6. 你不需要只遵从一种方法。你可以为团队选择一个主要的方法(如Scrum),然后借鉴其他方法。
  
  由于刚接触,很多细节不清楚。此次的文章主要是摘抄记录,以便以后自己查阅。原地址http://blog.sina.com.cn/s/blog_59450ffc0100k6q8.html

 

记敏捷开发——Scrum

标签:

原文地址:http://www.cnblogs.com/zjh926/p/5276116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!