Scrum开发模式 下载本文

内容发布更新时间 : 2024/9/23 5:32:58星期一 下面是文章的全部内容请认真阅读。

Scrum开发模式 名词解释

Scrum: Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色(ScrumMaster)负责维护过程和任务,产品负责人(PO, Product Owner)代表利益所有者,开发团队(Team)包括了所有开发人员

一、为什么Scrum是有效的开发组织方式 (一) 经验型流程VS预定义型流程

如果所需实现的对象清晰,技术准备充分,则适用于预定义型流程.如果所需实现的对象模糊,技术准备不充分,则适用于经验型流程.

在这里,流程不仅仅是软件开发中的流程,这是一个广义的定义,包含各个行业生产中产生的流程.对于预定义型流程,很经典的例子就是造汽车.比如造一辆奥迪A6,工作人员只需要拿到图纸,根据图纸上提供的信息去裁割钢板,定型,组装.在预定义型流程下,一辆A6将很快的开下生产线.对于经验型流程,如果还是以汽车为例的话,那就可以放在如何降低汽车的风阻?如何降低油耗?如何使驾驶人更舒服?这些事情,在以前可能做过,也可能没有做过,这就需要根据我们以往的经验去考虑问题,但这里经验起的作用只是一本字典,更多的事情,需要我们在经验的基础上去升华解决.

对于Scrum,适合的是经验型流程.在较短的迭代中(2周左右),需要我们快速的整理好PO提出的用户情景(User Story)(PO提出的需求在这里称作用户情景),然后选定技术(这个技术也可能是新技术)进行快速开发. (二) 软件项目中的两个复杂度

简单项目=熟悉的技术+固定的需求;复杂项目=技术不确定+变更.

试想,在我们以前做过的项目中,有多少是“简单项目”呢?因此,Scrum在不断迭代的过程中,屏蔽或者减少了需求的不确定性以及不确定技术带来的弊端.

(三) 案例分析

假如公司希望迁移SharePoint服务器,并和当前流行的社交网站如FaceBook进行集成.

你觉得会有哪些问题? 1、我们有哪些可用的技术?

2、如何使用这些技术来实现所需功能? 3、对于目标,我们要实现到何种程度?

4、最糟糕的,PO并不清楚他需要什么! 解决方式: 1、缩短迭代;

2、增加与PO的沟通频率;

3、将技术调研和实现放在不同的迭代中进行。

(四) 经验型流程控制

1、需要通过检查和适应来改进流程(需要很好的透明度来支持) 2、透明度的实现需要企业文化的支持

在Scrum模式中,团队的规模应控制在5~9人之间,充分发挥每个成员在团队中的作用。在应用Scrum模式进行开发过程中,需要建立人与人之间的信任,充分调动团队成员的积极主动性,也就是注重每个团队成员在团队中发挥的作用,而不是下派、监控这种不是以人为本的模式。那么在这种情况下,就需要很好的透明度来支持,要让团队成员知道ScrumMaster都和哪些人说了什么,PO提出了新什么需求,面临着什么新问题,甚至是上级的压迫也要上团队成员知道。

二、计划质量

(一) Scrum是否需要计划?

无可置疑,在Scrum中,需要更多的计划。在这里介绍一下戴明环。

作为帮助我们做出进一步决策的迭代型方法,戴明环通过4 个简单的步骤来验证所获取的经验,以便帮助我们做出更好的决策。 (二) 质量和成本的关系

1、关注质量将会最终降低成本并提供更好的质量 2、关注成本,将会牺牲质量同时远期成本反而增加

那么该如何提高质量呢?

停止使用通过检查来提高质量的方式,而通过完善的计划在产品开发的一开始就构建质量。理解起来可能稍微有点难以接受,但是集合上面的两点并结合戴明环,不难理解,质量应该是一个度,一个高度,一个保证,因为你不能保证你生产的家电永远不会坏掉。

(三) 来看Scrum的计划(Plan)和执行(Do)

Scrum通过在迭代中不断的计划和执行来推进,通过不断的计划,不断的完善计划,相应的质量也会随之提高,相比传统的(计划——执行——稳定)具有更高的可操作性和可控性。

三、Scrum”以人为本”的体现

我们可以来做一个实验来证明Scrum的优越性。

情景一:有N个小队,每个小队有一个队长,所有小队的成员成矩形聚拢在一起(很紧凑),然后每个小队的队长给队员发号施令(在矩形内移动30步,然后移动出矩形)。

情景二:有N个小队,没有队长,每个小队的成员成矩形聚拢在一起,然后每个小队成员在矩形内移动30步,然后移动出矩形。

四、Scrum角色介绍