通过上图我们可以看到Scrum作为各种敏捷实践方法中最为常用的一种,今天我们也来聊一聊Scrum。

Scrum的历史可以追溯到1986年《哈佛商业评论》中的一篇文章《新型的新产品开发策略》(The New New Product Development Game,竹内弘高、野中郁次郎,1986)。这篇文章描述了像本田、佳能、富士施乐这样的公司是如何通过可伸缩、基于团队的并行产品开发方式开发出了世界一流的产品。文章同时强调了授权、自组织团队的重要性,并概要描述了管理在开发过程中发挥的作用。

当然,SCRUM这个词没有什么标准的中文解释,它是来源于橄榄球中的一个争球的动作,如下图。

竹内弘高和野中郁次郎在New New Product Development Game文章首次提到将Scrum应用与产品开发,他们指出:传统的“接力式”的开发模式已经不能满足快速灵活的市场需求,而整体或“橄榄球式”的方法——团队作为一个整体前进,在团队的内部传球并保持前进,这也许可以更好的满足当前激烈的市场竞争。

上图是SCRUM的一个典型架构图,我们可以看到里面有很多要素,下面我们一一介绍这些要素。



Scrum的3355



3个角色


Product Owner:产品负责人,清楚的知道产品的愿景,需要对产品待办列表的梳理,优化,优先级排序等负责。决定团队每个冲刺要完成哪些任务。对于团队非常重要,决定Why和What。一般可以对应为现有的产品经理和BA的角色。


Scrum Master:Scrum MasterScrum教练和团队带头人,确保团队合理的运作Scrum,并帮助团队扫除实施中的障碍。


Team:可以认为是开发团队,但是一个跨职能的团队,能够交付一个端到端的真正对客户有价值的产品。


3个工件


Product Backlog:是指产品待办事项的集合,其中事务有优先级判断,先处理优先级高的事项。产品待办列表源自于Scrum方法。在Scrum中,产品主管(Product Owner)收集来自于各方的需要、期望、诉求等等到产品待办列表中,给定优先级;当冲刺计划会议上,团队从产品待办列表中挑选其中事项组成冲刺待办列表。常见的待办事项表达形式是用户故事。


Sprint Backlog:每个迭代的功能开发列表,PO会根据团队的能力并按照产品待办列表中的优先级来选取每个冲刺要做的事情。团队可以专注在每个迭冲刺要走的事情上而不被打断。

Burndown chart:燃尽图,在每个迭代显示剩余工作时间和任务完成情况。


5个价值观


专注:每个迭代只专注于迭代要完成的事情,团队和个人的能力和精力是有限的,在有限的时间内专注于最有价值的事情,以取得好的结果。

勇气:要有勇气去面对各种挑战。

公开:团队所有的进展,问题,阻碍都是对所有人可视化,透明的。这样的团队才是彼此尊重。同时也能暴露问题。

承诺:作为一个自组织团队,在迭代开始的时候做出承诺,并在迭代中全力完成。

尊重:团队是长期坐到一起,并且稳定的,有助于加深彼此的了解和沟通。


5种工件


Sprint:冲刺,一个固定的时间周期(通常为2w-4w),团队要尽可能在这个周期内交付可以工作的软件给客户

sprint planning meeting:冲刺开始的时候,PO会和团队一起从PB中选择本次要做的任务/故事,并且会对团队提出的疑问进行解释和澄清。同时团队会估算故事并分解成任务,最后会形成本次的Sprint Backlog.

daily standupo meeting:每日站会,scrum为了加强团队沟通,每天团队都要选择一个时间站在一起,互相交流彼此的进展和问题,以便及时解决出现的问题,同时也能让团队随时了解我们离冲刺目标还有多远。

sprint review:在sprint周期最后,需要进行一次评审会议,让团队向产品负责人和利益相关者展示已完成的功能。sprint审核的大部分实践用于团队成员展示功能、回答利益相关者对展示的疑问并记录所期望的更改。评审会议可以吸引相关利益者的关注,让其他人了解团队在做些什么,并得到重要反馈。做演示也会迫使开发团队真正完成一些工作。

retrospective meeting:回顾会议,通常在reivew会议之后开始,有团队成员在冲刺结束之后对上个迭代进行总结,同时提出一些改进方案,这是一个持续改进的过程。


SCRUM的其他一些要素:

user story:用户故事,因为敏捷要求每个特性都是对客户有价值的,所以以用户故事的方式来设计特性,通常是作为客户,我要实现A功能,以至于我可以达到什么目的的结构。

task:每个迭代中为了开发一个user story,将其分解为一些task,比如说我要开发一个协议,其中需要几个task,包括搭建服务器,找一些开源代码,搭建自动化测试框架,编码,测试任务,便于更小粒度的track每个迭代的进展。

release planning:在某些大型组织,可能更关注release级别的产品交付,所以每个release之前要进行整个release的plan,决定这个release的PB。

points:故事点数,代表用户故事的大小,要记住,这里的大小不代表开发时间,只是一个相对的用户故事的复杂度,工作量大小。因为很难理解,所以scrum team要建立一个基准的user story,作为一个points,然后其他的user story和它进行相对比较。这个points大部分时间用来作为评估team的交付能力。


SCRUM开发流程

Scrum 是一个用于开发和维持复杂产品的框架 ,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周(互联网产 品研发可以使用1周的Sprint)。在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团队总是先开发对客户具有较高价值的需求 。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog。在每个迭代结束时,Scrum团队将递交 潜在可交付的产品增量。


SCRUM各个角色之间的关系和作用:

PO和team的关系:一个人拿到了客户的一个项目,开发一个产品,他就是PO,他想找一个团队开做这个产品,但是现在有A团队和B团队,A团队跟PO说,ok,交给我吧,3个月后你过来,我们把产品给你.而B团队说,我们每个月都可以让你看一下我们的产品,但是可能一开始功能不完善,但是可以工作的,然后你可以把我们的产品给客户看,如果运气好的话客户可能先给你点钱呢。

如果你作为PO,你会选择哪个团队呢?对了,A就是传统的开发团队,而B则是我们的scrum team.

scrum master和team还有PO的关系:


个人给SM有以下几个定义:

Team Coach: 不仅在在流程上辅导团队,还要帮助大家接受敏捷开发理念,推动团队按照敏捷价值观和原则所倡导的方法来做出决策。

Servant Leader:Scrum Master服务于团队,帮助团队解决工作中的困难,引导团队自组织的高效完成每日工作,但是并不是团队的管理者。

Team Protector: 作为团队保护者,SM7要敢于说不,尽量保证团队在每个冲刺中不被打扰,如果发现有影响团队工作的临时任务,一定要站出来保护团队。


SCRUM大事表:

Jeff Sutherland在 1993年首次在Easel公司定义了用于了软件开发行业的Scrum流程,并开始实施

1995年Jeff Sutherland和Ken Schwaber规范化了Scrum框架,并在OOPSLA 95上公开发布。

2001年 敏捷宣言及原则发布、敏捷联盟成立,Scrum是其中一种敏捷方法。

2001年,Ken Schwaber和Mike Beedle推出第一本Scrum书籍《Scrum敏捷软件开发》。

2002年Ken Schwaber 和Mike Cohn共同创办了Scrum联盟。

敏捷其实很简单3---敏捷方法之scrum相关推荐

  1. 敏捷其实很简单(9)Scrum Master的七种武器之离别钩霸王枪箱子

    离别钩, 七种武器里面代表的是戒骄.其实对于Scrum Master,这个武器也很重要. 组织在敏捷转型的时候,运行了一段时间之后,运用了一些敏捷实践,而且从各方面,貌似反响很大,这个时候往往会产生如 ...

  2. 64位游戏找call_网络小游戏怎么修改技能满级,满血?教大家一个很简单的修改方法!...

    最近去忙着给小弟培训,都忘记上来发文章了,刚好小弟找了个小游戏练练逆向数据分析,下面就给大家讲讲他是怎么做到修改数据后,达到无限满血,全技能升级完的. 首先介绍几个概念: 网络游戏的变态功能的一般实现 ...

  3. (1)敏捷方法之scrum

    通过前面两篇文章,我们介绍了敏捷宣言,包括4条宣言和12条准则.可以说敏捷开发的所有理念,思想,方法都来源于敏捷宣言,所有想要实施敏捷,要先理解敏捷宣言.那么经过上面的文章,我们大家都知道了敏捷实际上 ...

  4. 图片上添加贴纸怎么做?这几种方法很简单

    在图片上添加贴纸是一种非常实用的图片编辑技巧,通过添加贴纸,图片可以变得更加生动有趣,吸引人们的眼球.贴纸可以是各种形状.颜色和大小,从而丰富图片的视觉效果.例如,在一张风景照片中添加一只卡通动物的图 ...

  5. 敏捷开发框架_力软敏捷开发框架,不需要程序员也能做的开发工具

    谈到软件开发,很多人的第一感觉就是一个高技术高难度的活,不懂编程的你可能也就想想.其实随着现在软件技术的发展,各种创新开发工具不断出现,虽然编程难度提升了,但开发过程却简单了.软件开发不在是只有软件工 ...

  6. 敏捷开发流程简单了解

    参考: 1.https://www.zhihu.com/question/19638322 2.http://www.cnblogs.com/feihe/archive/2011/04/16/2017 ...

  7. 高效的敏捷测试第十一课 敏捷测试分析、策略和方法

    第26讲:基于上下文驱动思维的测试分析 从这一讲开始,我们就进入了第 5 部分内容的学习:敏捷测试分析与计划.在这一部分你将学到:测试需求分析.测试风险的识别.测试策略及测试计划的制定.今天先从基于上 ...

  8. 敏捷开发:5种主流方法介绍

    敏捷开发 敏捷开发的定义: 敏捷开发的总体目标是通过"尽可能早的,持续的对有价值的软件进行交付"使客户满意,通过在软件开发过程中加入灵活性,敏捷方法使用户能够在开发周期的后期增加或 ...

  9. 流程 - 发布【敏捷方法之Scrum v0.2.pdf】

    去年在项目组实施了Scrum敏捷方法,我也写了一些相关的blog,其中一些文章深受大家的喜欢.现在把之前写的Scrum相关的内容集中在这本电子书中,方便大家阅读.目前我所在项目组实施效果还行,但还属于 ...

最新文章

  1. bzoj1025题解
  2. 分布式设计模式中的Quorum思想
  3. 四阶龙格库塔法(Runge-Kutta)求解常微分方程的 Matlab程序及案例
  4. 高等数学(第七版)同济大学 总习题八 个人解答
  5. [C/C++]标准MIDI文件格式
  6. android下拉菜单_如何调整和重新排列Android的快速设置下拉菜单
  7. Redis_常用数据类型及实践案例
  8. java调用快捷支付接口_Android客户端集成支付宝快捷支付
  9. 我的世界玩服务器虚拟内存高崩,服务端崩溃 - 崩溃解答 - MC百科社群 - MC百科|最大的Minecraft中文MOD百科...
  10. CentOS6 配置 yum 阿里源
  11. windows硬盘数据安全处理工具
  12. KOL新消费品牌营销知多少
  13. Logo设计没灵感?这7个宝藏网站拯救你的头发
  14. Spring 之AOP AspectJ切入点语法详解(最全了,不需要再去其他地找了)---zhangkaitao
  15. PHP项目接入钉钉企业免登,企业应用钉钉免钉流程(附代码)
  16. Java面向对象知识点总结(全)
  17. 你又不杀狼人,何必非要银弹?
  18. Android之数据存储-刘志远-专题视频课程
  19. 通过Demo了解AlertDialog的构造原理
  20. 编译原理第三版课后答案

热门文章

  1. [Leetcode]5970. 参加会议的最多员工数
  2. 什么是pdi检测_4S店提车,PDI的检测是个什么鬼?
  3. UTF-8编码的意义
  4. php 以多种分隔符拆分字符串
  5. 面向对象:赖床运动员,吉尼斯吃不饱记录保持者
  6. Future和FutureTask
  7. uefi启动linux过程_【转载】简述Linux的启动过程
  8. Google Ads 认证考试
  9. 测试绝地求生显卡使用率软件,多分辨率《绝地求生:大逃杀》显卡性能测试!...
  10. n12.php解密,《信长之野望12革新》param.n12文件修改的一点翻译