Scrum
Contents
Scrum
scrum guide
https://www.scrumguides.org/scrum-guide.html
Scrum是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程。
Scrum is a simple yet incredibly powerful set of principles and practices that helps teams deliver products in short cycles, enabling fast feedback, continual improvement, and rapid adaptation to change.
Scrum是一套简单但功能强大的原则和实践,可帮助团队在短周期内交付产品,实现快速反馈,持续改进和快速适应变化。
Scrum是一个遵循敏捷宣言价值观,基于12条敏捷原则的敏捷过程,它是一种采用迭代式、增量开发的软件开发过程。Scrum在英语的意思是橄榄球里的争球。
Scrum是一个框架,它定义了高层次的管理流程,如下图所示。它并不涉及具体开发方法或者人员的有效沟通技巧等。这些没有涉及的领域需要和其他理论和技能互为补充,以确保项目的成功。
https://desert3.iteye.com/blog/1693360
Scrum是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程。Scrum在英语是橄榄球运动中列阵争球的意思。
https://zh.wikipedia.org/wiki/Scrum
处理复杂的事情,要用框架
处理复杂的事情,如果有框架指导,就能保证最终结果的完整性、系统性及正确性。另外,通过框架,将复杂的事情切分成较小块、把工作流程标准化,从而将大问题变成一个个小问题,大大减少工作难度。
软件开发是一项复杂的活动,敏捷开发也有自己的一种框架: Scrum。
Scrum是什么?
Scrum是基于敏捷思想的开发框架,用于迭代式增量软件开发过程。 它基于经验型流程控制理论,所以Scrum框架的坚信:
知识源于经验
决策基于已知的事物
透明性、检视、调整是经验型流程的三大支柱
采用迭代增量式的方法来优化可预测性和管理风险
https://www.jianshu.com/p/fff49687ebf2
Scrum概述
按照Scrum官方联盟的定义,Scrum是一个完成复杂项目的敏捷框架。最初是用以指导软件开发,目前已经延伸到更多复杂和创新的工作领域中。
Scrum为软件开发提供了一个迭代增量的过程框架:
在Scrum中,整个开发周期包括若干个小的迭代周期,这样的小迭代周期称为Sprint,每个Sprint的建议长度2到 4周。
Product Owner(产品负责人)会创建一个具有优先级的需求列表,称之为Product Backlog (产品待办事项) 。产品待办事项的表现形式通常为User Story(用户故事)。
Scrum开发团队通过Sprint Planning (Sprint计划会) ,从Product Backlog中挑选最有价值的需求进行开发。经过Sprint计划会议上的分析、讨论和估算得到任务列表,称为为Sprint backlog 。
在一次Sprint中,团队通过Daily Scrum (每日展会) 回顾当天工作,发现问题持续改进。而Scrum Master负责帮助团队排除干扰,专注于Sprint的目标。
每次Sprint结束时,Scrum团队将交付潜在可交付的产品增量。
至于Scrum名字的来由,要回溯到1986年,竹内弘高和野中郁次郎阐述了一种能够提高商业新产品开发的速度和灵活性方法。他们将这种新的整体性方法与橄榄球相比较,这种方法的各阶段相互重叠,并且由一个跨职能团队在不同的阶段完成整个过程;类似于橄榄球队整个团队通过来回传递球来逐步往前推进。后来一些文献都采用了竹内弘高和野中郁次郎的文章中提到的橄榄球术语,将这种方法称为Scrum。1995年,在OOPSLA会议上,Ken Schwaber和 Jeff Sutherland 联合发表了论文首次正式提出了Scrum概念。Scrum目前已经被很多世界500强公司采用,在国内也成为应用最广泛的一种敏捷方法。
Scrum与敏捷的关系
敏捷是《敏捷宣言》中提出的一组价值观和原则,并不特指具体的方法论、过程或框架。
敏捷开发本质上是一种迭代增量的开发模型,而Scrum正是符合敏捷价值观和原则的一种开发方法,更准确地说应该是一种敏捷的开发过程框架。
其他的敏捷方法包括极限编程、精益软件开发,动态系统开发方法,特征驱动开发等,事实上,当年聚集在雪鸟滑雪场的各路绿林好汉正是常年推广和实践这些方法的人,他们总结出来了敏捷宣言。
Scrum的基本内容
三个角色
产品负责人 (Product Owner) : 即产品经理,即需求提出方,需求决定者,负责编写用户故事,排出优先级,并放入 Product Backlog。
Scrum Master: 主要工作是去除那些影响团队交付冲刺目标的障碍。Scrum Master并非团队的领导 (因为团队是自我组织的) ,而是一个负责屏蔽外界对开发团队的干扰的角色。
Scrum团队: 负责交付产品的团队。一个团队通常由5至9名具有跨职能技能的人 (设计者,开发者等) 组成,承担实际的开发工作。
三个工件
Product Backlog (产品待办事项列表) : 一个排序的列表,包含所有产品需要的东西,也是产品需求变动的唯一来源。Scrum Master负责产品待办事项列表的内容、可用性和优先级。
Sprint Backlog (冲刺待办事项列表) : 一组为当前 Sprint 选出的产品代办事项列表条目,外加交付产品增量和实现 Sprint 目标的计划。Sprint 代办事项列表是开发团队对于哪些功能要包含在下个增量中,以及交付那些功能所需工作的预计。冲刺订单上的任务一般不会被分派,而是由团队成员认领。
Burn-Down Chart(燃尽图): 一个公开展示的图表,显示当前Spriny中未完成的任务数目,或在冲刺订单上未完成的订单项的数目。在燃尽图中,Y轴代表的是剩余工作量,X轴代表的是Sprint的工作日,反映工作量完成状况的趋势。
四个活动
Sprint Planning (冲刺计划会) : 每个Sprint都以Sprint计划会议作为开始, 这是一个固定时长的会议,在这个会议中,Scrum团队共同选择和理解在即将到来的Sprint中要完成的工作。
Daily Scrum (每日站会) : 每日站会是Scrum过程进行每天的检查和调整的环节。团队回顾昨天的工作,进行调整并持续改进。
Sprint Review (冲刺评审会) : Sprint结束时,,Scrum团队和相关⼈人员一起评审Sprint的产出,通常会演⽰示产品增量,讨论产品待办事项列表的状态,并进行适当调整。
Sprint Retrospective (冲刺回顾会) : Sprint结束后回顾团队在流程、沟通以及工具方面做得如何,团队识别出做得好和不好的地方,并找出潜在的改进事项,为将来的改进制定计划。
五个价值观
承诺: 愿意对目标做出承诺
专注: 把你的心思和能力都用到你承诺的工作上去
开放: Scrum 把项目中的一切开放给每个人看
尊重: 每个人都有独特的背景和经验
勇气: 有勇气做出承诺,履行承诺,接受别人的尊重
了解了这些内容,如果知道SPEM (Software and System Process Engineering Model) 这样的过程元模型的话,角色、工件和活动等概念正是元模型中的概念,Scrum本质上其实提供了是一种敏捷开发的过程框架。
Fundamentally, the main “goal” of Software development is NOT to be « SAFE », it is to INNOVATE and CREATE. You do not create by not taking risks… it is quite the opposite:
从根本上讲,软件开发的主要"目标"不是"安全”,而是创新和创造。您不能通过不冒险来创造……这恰恰相反:
Continuous Learning: Fail Fast but don’t Fail twice for the same reason! » - Small incremental changes which mitigate risks and create safe conditions to implement rapid changes.
«持续学习: 快速失败,但不要犯同样的错误!» - 较小的增量更改,这些更改可以降低风险并为实施快速变更创造安全的条件。
https://www.tianmaying.com/qa/8
Scrum入门之三三五五
https://bobjiang.com/ama-us-airforce-devsecops
Scrum VS. Agile
迭代, Sprint, Iteration
什么是迭代, Sprint
Sprint是短距离赛跑的意思,这里面指的是一次迭代,而一次迭代的周期是1个月时间 (即4个星期) ,也就是我们要把一次迭代的开发内容以最快的速度完成它,这个过程我们称它为Sprint。
迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。
Author -
LastMod 2019-04-21