CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355
Scrum 是敏捷开发流派中最著名和最落地的一支,全球 70% 以上公司的敏捷转型都是以 Scrum 起步。CODING 特邀敏捷顾问、CST & CTC 认证敏捷教练申健老师将在本课程《Scrum 敏捷项目管理核心要素之 3355》中介绍 Scrum 框架的核心要素,帮助大家更好地学习实践 Scrum。
大家好,本次我将为大家详细讲解敏捷的一个流派,叫做 Scrum 敏捷项目管理核心,它起源于 2001 年,当时有 17 位大牛共同讨论了他们的想法和各种软件开发方法,经过交流,他们最后达成了价值观和原则上的共识,共同发布了敏捷软件开发宣言。
而迭代的概念则可以追溯到 1970 年左右,Scrum 也是用迭代式去进行发展,与之相应对的就是瀑布式,所有工作像流水线一样有计划且按部就班的去进行。例如:在软件开发中,先是需求分析、设计,然后进入开发编码、测试,到最后上线,整个过程有前后顺序,不过现实中总会在某个地方出现问题从而造成返工。
有两个日本学者在 1986 年研究了丰田、本田、佳能等高科技公司怎样在一个不确定的情况下去研发一个新产品,他们发现这些公司不再去区分职能部门,而是具有跨职能团队的特点。就像打英式橄榄球,每个人都有各自的专长,但是目标是统一的:要进球赢球。
所以他们在管理智力型研发项目时,没有再用瀑布流式来管理,而是用一种不断迭代的方式。项目的迭代时间不超过四周,在这四周里必须包含所有的必备工作,包括分析、设计、编码、测试,确保快速交出一份相对简单可用的产品,及时获得用户反馈。否则如果等到产品上线再来收取用户反馈,改动成本、项目风险将是非常高的。Scrum 通过事务减少工作任务和工作时间,给予跨部门小团队充分的授权,让他们自己决定如何工作,同时又保持目标一致。
1995 年创立 Scrum 时,也吸收了丰田汽车的精益思想,例如减少浪费、限制流动。Scrum 是一个解决复杂自适应问题的框架,让我们以迭代和增量的方式,在最短时间内交付最大价值的产品。要知道你的人力、物力、财力,包括你的时间,永远是有限的,有一句老话叫“钱要花在刀刃上”,集中优势兵力干一件大事,先做价值最高的那个,分清主要矛盾和次要矛盾。越想全都解决,越解决不了,而 Scrum 就是希望你能做出取舍。例如你的项目上线后,真正被用户使用的部分占比多少,创造了多少价值?通常我们叫二八原则,是指 80% 的价值一定是在 20% 的工作任务里,剩下的都是锦上添花,也有可能是无用功,如果能够减去没有价值的任务,就能让我们获得更充分的时间把质量做的更好。Scrum 并不是必须把所有东西做完,有一句名言叫做“遇到事要尝试反过来想一想,世界每天都在变化,所有事情没有一个尽头”,要学会适应变化、破解和应对复杂性、拥抱变化。
其实在敏捷 Scrum 里,我们更喜欢用这种产品的思维,而非项目,因为按照定义项目是一次性的,也就是说必须先做一个计划,然后按部就班去遵循这个计划的固化思维。你需要分清你的产品到底是什么类型,在业务目标之下,大家可能会有很多的想法,所以有时会缺乏一个真正的决策者,或者决策者的位置特别高,信息流动不畅,导致大家想法不一样,那真正干活的人实际上是无所适从。在 Scrum 里首先要定义一个很重要的角色,叫产品负责人,他要综合各方的想法,进行艰难选择,将所有想法根据投入产出比进行排序,形成一份产品待办列表清单。它可以无限地增长,但并不意味着要把列表里所有东西都做完,而是从业务、运营角度来说时间挺重要,那在这个时间点我们就要集中优势兵力做最重要最有价值的。
“倒排期”是指一开始规划很多任务,把所有任务全都扔进固定时间内,从进度上来说可能磕磕绊绊做完,但是质量就惨不忍睹了。而 Scrum 可以从时间往后倒推,根据可持续的方式来进行动态取舍和排期,先形成一个初始的产品待办列表,团队和 PO、业务干系人可以约定迭代周期,顾名思义它是一个短的时间周期,通常不超过四周。
首先需要开一个 Sprint 计划会,从长长的产品待办列表里面去拉取一批工作,进行分解,形成工作计划。每一个短的时间周期里都有一个小的目标,在小目标之上一定有个大目标,小目标是从大目标里进行分解,之后进行开发、编码、测试等等。而每日还有一个站会活动(Daily Scrum),让团队成员聚在一起分享今天的进展与遇到的问题,这是一个强制沟通的机会。在项目快结束时,我们将工作集成起来,如果是软件则进行集成测试,其他的产品类型则进行相应的产出。然后将完成的产品增量拿到 Sprint 评审会上,邀请产品相关人士并做演示,这时可能会有人提出产品跟预想的不一样,那么赶紧修改,反馈来得越早越好,越早去发现问题,修复的成本越低,根据反馈可以调整出我们到底要做哪些内容。最后来到回顾会,这时不止需要对产品进行调整,还要进行检测调整。
接下来讲讲三大角色,分别为:产品负责人( PO )、开发团队、Scrum Master 敏捷教练。做产品只能有一个 PO ,负责最大化的投资回报率,并且不断地重新调整优先级和梳理列表。开发团队顾名思义就是干活的,这个团队就像球队一样,它是“跨职能”,并且是“自管理”,被给予很高程度的自治和责任。Scrum Master 敏捷教练,顾名思义就是教练,帮助你具备独立解决问题的能力,所以他并不是一个管理者和管控者,更多的是服务型的领导者,有什么不会的可以教你,但是最终干活的一定是开发团队,例如龙舟队,龙舟队上划船的就是开发团队,掌舵人就是 PO,前面敲锣打鼓把握节奏、鼓舞士气就是 Scrum Master,这三个角色就组成了一个龙舟队。
三个工件分别是指产品待办清单、Sprint 迭代待办清单和符合完成定义的产品增量。例如首先产品有个大的目标方向,经过我们的收集信息分解,变成 1-8 号需求,我们需要选取需求到待办清单,团队再分成子任务,之后迭代开始,将产品进行集成,变成可以测试验收上线的产品增量,最后经过反馈,PO 可以再去调整剩余的需求。
在 3355 中,第一个 5 是指五个事件,是 Sprint 本身短时间盒和其他四个会,分别为 Sprint 计划会、每日 Scrum 站会、Sprint 评审会、Sprint 回顾会。在做同一产品多团队时首先要拆团队,维持不超过 9 个人的团队结构,类似 LeSS 结构,强调工作在同一个产品的多个团队,只有 1 个 PO 和 1 份 PB,所有团队的迭代时间盒对齐。在 Sprint 末尾要交出已集成、完成的产品增量。如果是超过 8 个团队,可以考虑 LeSS Huge 结构,增加领域产品负责人(Area Product Owner)角色。第二个 5 是五个价值观:开放、尊重、勇气、专注、承诺。承诺这个词在 Scrum 中表达的是全身心投入去完成 Scrum 团队的目标,而不是说必须按计划完成,两者之间还是有些不同。
Scrum 是一面照妖镜,它的设计“故意不完整”,也故意让项目团队“更难受”,你认为做的产品是完美的,而 Scrum 就是指出产品的不完美,也就是挑错。原来一个月交不出产品,那么就把时间缩短成一周或两周迭代,逼迫团队做出改变。敏捷不是从 0-1 的非黑即白,它是一个持续优化的过程,通过持续交付、持续优化、持续改进、持续提升、持续塑造,最终实现小步快跑,快速迭代。那么今天就分享到这里,谢谢!
CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355的更多相关文章
- CODING 敏捷实战系列课第五讲:敏捷中国史
敏捷软件开发方法自 2001 年传入中国以来,历经十多年的发展变迁,目前已经成为国内 IT 企业主流的研发管理方法.敏捷方法的传播和发展历程,是中国 IT 行业发展的剪影.CODING 特邀敏捷顾问. ...
- CODING 敏捷实战系列课第四讲:从头搭建持续集成 DevOps 流水线
<从头搭建持续集成 DevOps 流水线>由资深敏捷教练.极限编程学院高级讲师.CODING 特邀敏捷顾问李小波老师主讲,将基于 CODING 展示如何编写 Jenkinsfile 搭建 ...
- CODING 敏捷实战系列课第三讲:可视化业务分析
业务分析处在开发过程的上游,提高业务分析的质量,可以减少后续开发.测试和集成过程中的反复确认,场景遗漏.采用可视化的业务分析工具箱可以大幅度避免文字版的业务需求描述所带来的不够完整,有误解等问题.CO ...
- CODING 携手优普丰,道器合璧打造敏捷最佳实践
随着全球进入到信息化时代,越来越多的企业迫切地寻求新的商业模式,要求迭代.探索.不断加速创新以响应快速变化的市场.如今一系列新兴概念如敏捷开发.极限编程.微服务.自动化.DevOps 等大行其道,然而 ...
- CODING DevOps 微服务项目实战系列第二课来啦!
近年来,工程项目的结构越来越复杂,需要接入合适的持续集成流水线形式,才能满足更多变的需求,那么如何优雅地使用 CI 能力提升生产效率呢?CODING DevOps 微服务项目实战系列第二课 <D ...
- CODING DevOps 代码质量实战系列最后一课,周四发车
随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「质量内建」正是 DevOps 核心理念之一. <DevOps 代码质量实 ...
- CODING DevOps 微服务项目实战系列第一课,明天等你
CODING DevOps 微服务项目实战系列第一课<DevOps 微服务项目实战:DevOps 初体验>将由 CODING DevOps 开发工程师 王宽老师 向大家介绍 DevOps ...
- CODING DevOps 微服务项目实战系列最后一课,周四开讲!
随着软件工程越来越复杂化,如何在 Kubernetes 集群进行灰度发布成为了生产部署的"必修课",而如何实现安全可控.自动化的灰度发布也成为了持续部署重点关注的问题.CODING ...
- 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划
菜鸟Scrum敏捷实践系列索引 菜鸟Scrum敏捷实践系列(一)用户故事概念 菜鸟Scrum敏捷实践系列(二)用户故事验收 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划 采用Sc ...
随机推荐
- python3(十) iteration
d = {'a': 1, 'b': 2, 'c': 3} for key in d: print(key, end=' ') # a b c dict的存储不是按照list的方式顺序排列,所以,迭代出 ...
- 使用snapjs实现svg路径描边动画
一,snap.svg插件在近几天,突然接到一个需求,内容是要在网页上写一个路径的动画,还需要可以随意控制动画的速度,开始于结束,本来是一个图片可以解决的问题,结果就这样变难了呀,在网上查一会之后,突然 ...
- 【three.js第二课】页面自适应
1.在[three.js第一课]的基础上加入以下代码,改变窗口大小时,页面内容会自适应 //加入事件监听器,窗口自适应 window.addEventListener('resize', functi ...
- 掉了10根头发都无法解决的数学题,python帮你完美解答
本来这个周末过得开开心心,结果为了解一道数学题薅掉了一把头发...整整10根! 而且还是一道小学数学题!!! 到底是什么题呢?大家看看吧 这不就是一道逻辑题嘛! 先假如丁错,则甲乙丙对,此时最小的ab ...
- Java Instrumentation插桩技术学习
Instrumentation基础 openrasp中用到了Instrumentation技术,它的最大作用,就是类的动态改变和操作. 使用Instrumentation实际上也可以可以开发一个代理来 ...
- 吊打面试官系列:Redis 性能优化的 13 条军规大全
1.缩短键值对的存储长度 键值对的长度是和性能成反比的,比如我们来做一组写入数据的性能测试,执行结果如下: 从以上数据可以看出,在 key 不变的情况下,value 值越大操作效率越慢,因为 Redi ...
- Unity 游戏框架搭建 2019 (三十二、三十三) 类的命名 & 代码文件命名
昨天我们完成了第八个示例的第二个 MenuItem 菜单顺序的调整. 我们今天再往下接着调整. 我们来看下接下来的 MenuItem 代码如下: [MenuItem("QFramework/ ...
- Springboot:第一个Springboot程序(一)
1.创建Springboot项目 选择创建Springboot项目: 填写项目基本信息: 选择Springboot版本以及web依赖(内嵌tomcat): 创建完成: 创建完成后 等待构建maven项 ...
- LDA概率主题模型
目录 LDA 主题模型 几个重要分布 模型 Unigram model Mixture of unigrams model PLSA模型 LDA 怎么确定LDA的topic个数? 如何用主题模型解决推 ...
- 前端基础进阶(七)-前端工程师最容易出错的问题-this关键字
我们在学习JavaScript的时候,因为对一些概念不是很清楚,但是又会通过一些简洁的方式把它给记下来,那么这样自己记下来的概念和真正的概念产生了很强的偏差. 当然,还有一些以为这个是对的,还会把它发 ...