扫码阅读
手机扫码阅读

第三章 Scrum原则

88 2024-03-02

人生海海,感谢相遇

伊昂杨啊

我是伊昂杨啊,我把自己的Scrum学习之路搬来了咱们煎饼果子铺????。

每天积累一点小知识,每天在这里一点碎碎念,顺便和你交个朋友,一起学习,一起考证,一起进步????。

第三章 Scrum原则


注:图片会被压缩,内容和下面文字版本一样。



一、可变性和不确定性

????积极适应变化

计划驱动:计划驱动开发过程把产品开发当作制造业,它们避免任何变数,鼓励遵从规程。

Scrum :在软件产品开发行业,我们要适应变化。

????采用迭代和增量开发

计划驱动:计划驱动的顺序开发方式假设我们事先就能把事情做对,大多数或者所有产品部件到后期再集成。

Scrum :Scrum 基于迭代开发增量开发。Serum 综合迭代和增量这两种开发方式的优点,消除了单独使用其中任何一种方式的缺点。Serum 使用一系列固定时长的适应性迭代来同时利用这两种方法的思想,这种迭代便是冲刺

(1)迭代开发承认我们在把事情做对之前有可能做错,在把事情做好之前有可能做坏。迭代开发本身是一种有计划的修改策略。通过多次开发来改善正在构建的特性,逐步得出一个完善的解决方案。例如,对一个知之甚少的产品,开始时可以先创建原型以获得重要知识。接着可以创建一个更好一点的修订版,再接下来是一个相当好的版本。在产品开发过程中,迭代开发是改进产品的一种非常好的方法。迭代开发最大的缺点是在遇到不确定性因素时,很难事先确定(计划)需要改进多少次。

(2)增量开发基于一个古老的原则:先构建部分,再构建整体。我们避免到最后才冒出一个大的、爆发式的活动,集成所有组件和交付整个产品。相反,我们把产品分解成更小的特性,先构建一部分,再从中了解它们在目标使用环境中的具体情形,然后根据更多的理解来做出调整,构建更多的特性。增量开发提供了重要的信息,使我们能够适应开发工作并改变工作方式。增量开发最大的缺点是逐步构建的过程中,有迷失全局的风险。

????通过检验、调整、适应和透明来利用可变性



????同时减少各种形式的不确定因素

计划驱动:计划驱动:传统的顺序开发过程事先全部定义需要构建哪些特性,先重点消除结果的不确定性,后处理方法的不确定性。

Scrum :开发新产品是一个很复杂的工作,具有很高的不确定性。这种不确定性可以分为以下两大类。

(1)结果不确定性(不确定做什么)——围绕最终产品特性的不确定性;

(2)方法不确定性(不确定怎样做)——围绕产品的开发过程和技术的不确定性。

(3)特定环境或特定产品还可能有客户不确定性(不确定用户是谁)。例如,哪些人才是这款产品真正的客户。


二、预测和适应

????不到最后时刻,不轻易决定

计划驱动:对于需求或设计,计划驱动的顺序开发方式要求在当前这个阶段就做出重要的决策并进行审批。而且,在进入下一个阶段之前必须先做出决策,即使这些决策依据的知识有限。

Scrum :不该单单因为通用过程要求此时做出决定,我们就得做出不成熟的决定。我们倾向于“不轻易做决定”这个策略。直到最后责任时刻再做出重要的、不可逆转的决定。

????承认无法一开始就把事情做对

计划驱动:计划驱动的过程不仅要求有完整的需求和全面的计划,还想当然地认为事先就能“把事情做对”。但实际情况是我们根本不可能事先就能以正确的方式得到所有需求,也不可能基于这些需求以正确方式得出详尽的计划。更糟糕的是,一旦需求有变,还得根据当时实际情况修改需求和计划基线。

Scrum :我们承认自己不可能事先确定所有需求或计划。

????偏好适应性、探索式的方法

计划驱动:使用(或利用)现在已知的东西并对未知的东西进行预测,这是计划驱动的顺序过程关注的重点。

Scrum :Scrum则更倾向于恰当运用探索式方法,在此基础上采用适应性的试错法

????用经济合理的方法接受变化

计划驱动:使用顺序开发方式时,后期变更成本比早期变更成本高很多。顺序开发过程的做法是设法提高预测的准确度,澄清系统需求及其实现过程,再加以严格控制,力求最小化需求和设计变更。

Scrum :我们认为变更是很正常的。我们相信,产品开发所固有的不确定性无法事先通过加班加点来预测。因此,必须准备好主动迎接变更。

????在预测型事前工作和适应型刚好及时的工作之间做出平衛

计划驱动:计划驱动开发有一个基本的理念:事先得到详细需求和计划是至关重要的,并且做事情要有先后。

Scrum :相信前期工作有帮助,但不宜过度。


三、经验认知

????快速验证重要的假设

计划驱动:前期会产生大量的需求和计划,其中可能有很多重要的假设得留到开发后期验证。假设本身就意味着重大的开发风险。

Scrum :任何时候的重要假设都要力求最少。迭代开发和增量开发,关注低成本的探索,这是可以做到快速验证假设的。

????不到最后时刻,不轻易决定

计划驱动:顺序开发方式是可以获得认知的。但是,只有在特性经过构建、集成和测试后,才能获得较多认知,这意味着重要认知得等到工作快结束时才能获得。可能因为已经没有足够的时间利用认知或利用认知的成本太高,所以导致后期认知并没有达到预期的效果。

Scrum :找到并利用反馈循环来提高认知。在这种产品开发方式中,有一个反复出现的模式,即出一个假设(或设定一个目标),构建一些东西(执行一些活动),针对构建成果获得反馈,然后利用这个反馈,对照我们提出的假设来检视工作成果。然后根据我们学到的东西对产品、流程和/ 或我们的理念进行调整。

????妥善组织工作流程以获得快速反馈

计划驱动:每个活动的计划都根据明确定义的阶段顺序来制定,并在指定的时间点发生。它的思路是:完成早期活动的时候,不需要后期活动的任何反馈。因此,在做完一件事情后,可能要过很长时闻才能得到这件事情的相关反馈(认知循环终结于此)。

Scrum :组织好工作流,尽快获取反馈。这种做法能够确保工作一完成就能得到及时的反馈。


四、WIP

WIP ( work in process)指的是已经开始但尚未完成的工作。在产品开发过程中,必须识别出 WIP 并进行妥善管理。

????使用经济合理的批量大小

计划驱动:计划驱动的顺序开发过程的另一个核心理念是,倾向于将相同类型的工作分批汇集到一个独立阶段中执行。即在开始后续活动之前,必须先全部完成当前阶段的所有事情(或者大体完成所有事情)。所以批量大小是100%。

Scrum :采用小批量的方式。可以减少周期时间、减少工作的变动、加速反馈、减少风险、降低管理成本、提高积极性和紧迫性以及降低成本,减少计划延期。

????识别并管理库存以达到良好的流动

计划驱动:被忽略。

Scrum :合理地平衡适量库存和过多库存之间的关系。

????关注闲置工作(工作停滞,没人干),而非闲置人员(没活儿干)

计划驱动:做更多的事情,但实际完成的高效工作会更少。

Scrum :需要找出工作流的瓶颈并集中精力消除它,相较于努力让每个人都 100%连轴转,这样做更加经济合理。

????考虑延期成本

计划驱动:85%的组织都没有对延期成本进行量化。

Scrum : 做出经济合理的决定,延期成本是一个需要考虑的、最重要的变量。


五、进展

????适应实时的信息并重新制定计划

计划驱动:计划是工作如何开展、何时进行的权威信息源。因此,计划是需要遵循的。

Scrum :快速地重新制定计划并根据开发过程中不断出现的、具有重要经济价值的信息进行调整。

????通过验证流动资产来测量进度

计划驱动:进度的表现方式是完成一个阶段之后才可以允许进入下一个阶段。

Scrum :通过构建可工作、已验证的成果来度量进度,这些工作成果交付了价值并且可以用来验证重大的假设。

????专注于以价值为中心的交付

计划驱动:计划驱动的顺序开发方式关注的是谨慎、踏实地遵循过程。顺序开发特有的结构决定了只有在工作快结束时才集成并交付特性。

Scrum :一种客户价值为中心的开发方式。它是基于优先级排序的增量交付模型,价值最高的特性持续构建并在下一个迭代中交付。这样一来,客户就可以尽快且持续获得高价值特性。

六、执行

????快速前进,但不勿忙

计划驱动:计划驱动:遵循计划且第一次就把事情做对,就能避免高成本、耗时长的返工。

Scrum :灵活、适应、快速。

????选用最小、够用的仪式

计划驱动:开发过程倾向于重仪式、以文档为中心、重过程的方法。

Scrum :以价值为中心。

????以质量为魂

计划驱动:小心、顺序地执行工作以得到高质量的产品。

Scrum :质量并不是测试团队在最后阶段“测”出来的,而是由跨职能的 Scrum 团队负责并持续内建于每个冲刺中。


第三章帮助我们更好的理解传统型开发模式与Scrum的区别。
原文链接: http://mp.weixin.qq.com/s?__biz=MzUyMTg2MzMwNA==&mid=2247484298&idx=1&sn=187c6e2d5a4ee5568ae5bd490d9971e9&chksm=f9d5ea6dcea2637bd9cdfb3162b49463f3ed72da2429184b9a7ccf17986a5eb4c08e133f1d58#rd