【科普】Scrum——从橄榄球争球到敏捷开发
对敏捷开发Scrum稍有了解的都知道Scrum来源于橄榄球,但你知道为何要以这项球类运动的术语来命名这个敏捷开发方法论吗?
Scrum与橄榄球对应关系
Scrum 一词源于英式橄榄球运动,是指双方球员对阵争球。双方前锋肩靠肩站成一横排,面对面躬身,肩膀互相抵在一起,形成一个通道。犯规队的球员低手将球抛入通道,此时通道两边的球员们互相抗挤,争取踢球给本方前锋。
比赛分为两支队伍,每个队伍上场的球员为11名。整个队伍中的球员分为进攻、防守和特别三种职能,三者各有优势又互相配合。进攻队员身手敏捷,凭借速度变化和身形穿透对方防线;防守队员身形强壮,阻挡对方球员的进攻;特别队员较为灵活,进可攻退可守,随时可充当前面二者的替补。
与橄榄球比赛对应,在Scrum组织中没有传统组织所强调的岗位、上下级关系、汇报等元素,每个人只有“一起赢得比赛”的目标,而且每个人的工作会有较大的重合覆盖度,角色可因势而变,提高效率的同时,有效避免传统组织可能存在的推诿和不作为。
英式橄榄球比赛中,球是被禁止向前传的:规则并不限制球员将球往前踢,但当踢球员踢球时,他的队友必须在球的后方。那么为了让球有方向地运动起来,球员必须将球往后传。如此显而易见的矛盾凸显了团队合作的重要性,同时创造了绝佳的纪律,因为这不是光靠一名球员就能成功胜利的比赛。球员们必须团队合作,才能带球向前冲过敌队的阵线,赢得最后的胜利。
在Scrum的工作方式下,团队化繁为简,只有三个角色,分别是产品负责人(PO)、Scrum
Master和开发团队。Scrum中的产品负责人,就像橄榄球队的四分卫,对产品的方向负责,对产品的Why和What负责。Scrum
Master,是一个团队的教练,关注人和人的互动质量,并减少外部干扰对团队工作影响。Scrum中的团队成员就是一支橄榄球队,大家共享时空、闭环决策。
此外,橄榄球赛还有一些特殊规则:与美式橄榄球不同,英式橄榄球无需佩戴护具,这使得比赛随时可以开展并更容易推广普及;比赛时间较短,上下场各7分钟;对不持球的球员不可以冲撞和阻挡;有意外或所谓的暴行时,裁判会判犯规,中断比赛来进行Scrum。
读到这里是不是若有所思?没错,Scrum开发模式并不只是简单地借用了英式橄榄球的术语,许多精神也与之一脉相承,二者的许多元素都可一一对应。
Scrum“出道”历程
Scrum的乘风破浪开发产品与橄榄球披荆斩棘赢得比赛有着一脉相承的精神与灵魂,橄榄球是深受全世界球员喜爱的运动,那么Scrum是如何借势乘风破浪“C位出道”成为目前软件开发主流模式的呢?
1986年,竹内弘高和野中郁次郎在《哈佛商业评论》上发表《新新产品开发游戏》的文章,首次提出将Scrum应用于产品开发,文章指出传统的接力式开发模式已不能满足日益激烈的市场竞争,开发模式需转向团队整体前进的橄榄球式。
1993年,进入Easel公司后,Scrum的创始人Jeff
Sutherland借鉴日本精益理念和《新新产品开发游戏》中的知识管理策略,在效率底下的部门中使用了新方法及工具,此时的实践就成了之后系统性Scrum中的各种元素。Jeff
Sutherland拥有空军飞行员经历带来的观察、导向、决定、行动四大要素,攻读生物统计学博士学位时又吸收了生物学生物组织系统和进化论适者生存的理念,在实践中取其精华,形成Scrum的定义。
1995年,Jeff Sutherland和另一位创始人Ken Schwaber规范化Scrum框架,并在OOPSLA 95上公开发布。
2001年,敏捷宣言及原则发布、敏捷联盟成立,Scrum是其中一种敏捷方法。Ken Schwaber和Mike Beedle推出第一本Scrum书籍《Scrum敏捷软件开发》。
2002年,Ken Schwaber 和Mike Cohn共同创办了Scrum联盟。
至今,根据《2020敏捷状态调查报告》,总共有76%的组织采用Scrum,Scrum已成为当之无愧的“C位”开发模式。
【科普】Scrum——从橄榄球争球到敏捷开发的更多相关文章
- 【转】来自《轻松scrum之旅》的敏捷开发总结
敏捷开发的核心价值观是,软件开发最重要的是给用户提供有价值的.可以工作的软件.如何保证提供有价值的软件,是通过反馈机制来完成的.这一点,我们体会很深.自从采用敏捷开发以后,我们比以前更有意识地希望得到 ...
- 敏捷开发之道(四)Scrum概述
上次的博文敏捷开发之道(二)极限编程XP和敏捷开发之道(三)极限编程XP续中,我们介绍了一下敏捷开发中的XP开发方法,今天咱们来了解另一个比较流行的敏捷开发方法--Scrum. 1.Scrum简介 S ...
- [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum
[敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...
- 敏捷开发方法-Scrum
为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两个,一个是进行知识的总结,另外一个是觉得网上很多学习资 ...
- 敏捷开发 与 Scrum
敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...
- 敏捷开发(2)-Scrum
什么是SCRUM Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作:把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速.富有 ...
- 敏捷开发与Scrum
敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...
- 敏捷开发流程之Scrum:3个角色、5个会议、12原则
本文主要从Scrum的定义和目的.敏捷宣言.Scrum中的人员角色.Scrum开发流程.敏捷的12原则等几方面帮助大家理解Scrum敏捷开发的全过程. 一.Scrum的定义和目的 Scrum是一个用于 ...
- 小谈Scrum敏捷开发流程
一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...
随机推荐
- Java实现 LeetCode 785 判断二分图(分析题)
785. 判断二分图 给定一个无向图graph,当这个图为二分图时返回true. 如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我 ...
- Java实现 LeetCode 295 数据流的中位数
295. 数据流的中位数 中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2. ...
- 第七届蓝桥杯JavaA组省赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.煤球数量 煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第 ...
- java实现数组转置
** 数组转置** 编写程序将2行3列的数组行列置换复制给3行2列的数组(即数组的转置).已经写了如下代码,请完善之: class y{ public static void main(String[ ...
- java代码(13) ---Predicate详解
Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,在查看这些属性上是否有我们自定义的UUID注解 如果有该注解,那 ...
- 使用请求头认证来测试需要授权的 API 接口
使用请求头认证来测试需要授权的 API 接口 Intro 有一些需要认证授权的接口在写测试用例的时候一般会先获取一个 token,然后再去调用接口,其实这样做的话很不灵活,一方面是存在着一定的安全性问 ...
- 一网打尽枚举操作 .net core
本文介绍如何使用枚举以及,如何将枚举类型更好的应用于项目中,看完本文可以有序的将项目中的枚举更容易的使用到每个角落. 1,分析枚举 /// <summary> /// 性别 /// < ...
- 不知道这些,你以为你还能devops?
一.什么是devops 在DevOps之前,从业人员使用瀑布模型或敏捷开发模型进行软件项目开发:瀑布模型或顺序模型是软件开发生命周期(SDLC)中的一种开创性方法,在这个模型中,软件开发成为一个线性过 ...
- cb42a_c++_STL_算法_替换_replace
cb42a_c++_STL_算法_替换_replacereplace(b,e,ov,nv),ov,old value, nv,new valuereplace_if(b,e,p,v) 根据p的条件,全 ...
- cb15a_c++_vector容器的自增长_每次增加百分之50
cb15a_c++_vector容器的自增长_每次增加百分之50每次自动容量代销扩充,增加百分之50_for windows C++,vector是用数组做出来的->数组的缺点和优点优点:具有下 ...