浅谈Scrum

鸡和猪的故事

一天,一只鸡散步时遇见了猪。
鸡对猪说:“嗨,我们合伙开个餐厅吧。”
猪说:“好啊,那准备取什么店名呢?”
鸡说:“要不,就叫火腿和鸡蛋吧。”
猪直接拒绝了:“那可不行。我要割肉,你只要下蛋。这样下去,我迟早要完蛋。”
浅谈Scrum


Scrum产生的背景

这个故事实际上反映了软件开发过程中的2种不同角色,即需要完全投入的“猪”和只要部分投入的“鸡”。真实项目过程中,往往会发生这样的现象,产品经理或领导,喜欢临时往项目中新增任务,打乱原先的开发节奏,导致程序员压力倍增,士气低落,项目延期。
而Scrum,就是为了保护“猪”这种角色,兼顾“鸡”的感受,从而确保整个项目正常交付。它是一套敏捷开发流程。

没有坚守以下原则或底线,那你的敏捷是失败的:

  • 即使是ceo也没权利压迫产品人员,提交无穷的,超出团队交付能力的需求
  • 即使是ceo也没权利让团队去做产品负责人没有提出的工作
  • 高层只是负责指引团队朝着项目最高价值的方向前进,不得压迫团队
  • 敏捷核心就是要坚守敏捷规则和平衡限制在制品数量跟交付能力之间的关心,强权出现,就会打破规则,打破平衡

Scrum的角色

  1. Project Owner:即产品经理,大部分时间担任了“鸡”的角色,迫于领导的压力,喜欢往团队中不断增加任务或修改需求。

  2. Scrum Master:类似于项目负责人,他需要做的是保护团队,兼顾产品经理的需求,确保项目的按时交付。如果SM承担不了保护团队的责任,基本上Scrum已经失败,名存实亡,不需要继续Scrum了

  3. Team:开发、测试、设计人员,Scrum Master本身可能也是开发人员。


Scrum的流程

浅谈Scrum


Scrum用到的工具

  1. 用户故事。迭代计划会议用到,Product Owner以用户的角度去描述需求。如,作为一个学员,我希望能在做完一份试卷后,系统能针对我的薄弱点提供相应的指导及练习。

  2. Product Backlog。迭代计划会议用到,Product Owner事先将所有的用户故事按优先级排好,放到一个列表内,这个列表就是Product Backlog。

  3. Sprint Backlog。迭代计划会议用到,整个开发小组通过估点将用户故事按优先级移入到迭代计划内,迭代计划中待完成的用户故事列表即为Sprint Backlog。

  4. 估点。主要用于评估用户故事的大致工作量。下一篇文章会额外介绍估点。

  5. 燃尽图。主要用于迭代进度的管控。下一篇文章会额外介绍燃尽图。


Scrum标准流程

  • Scrum标准流程之Sprint Planning Meeting(迭代计划会议)
    迭代计划会议中,整个小组通过估点的方式,按优先级将用户故事从Product Backlog(产品待办事项)中移入到Sprint Backlog,表示整个小组承诺本迭代要做完的任务。做完的标准是测试通过,除非此任务不可测试。

  • Scrum标准流程之Daily Stand Up Meeting(每日站会)
    迭代计划会后,小组成员按个人喜好领取自己的任务,并在每天的站立会议上讲一下自己昨天做了什么,今天准备作什么,大概什么时候完成,以及遇到了什么问题。当有人提出遇到难题时,Scrum Master需要在会后安排人帮忙解决,而不是在会议上直接解决。每个人大概30秒-1分钟,整个会议一般不超过15分钟。每一个工作日结束后,需要画燃尽图(下一篇文章会额外介绍)。

  • Scrum标准流程之Review Meeting(成果演示会)
    一个迭代开发阶段结束后,进入内部演示会议,工作成果给整个小组演示(包括Project Owner)。

  • Scrum标准流程之Restrospective Meeting(迭代回顾会)
    内部演示结束后,整个小组(包括Project Owner)召开一个迭代回顾会,回顾本迭代中大家哪些做的好,哪些做的不好,每人各列举3个好的以及不好的,列的时候只讲现象,不分析原因,不找解决方案。然后整个小组投票选出3个不好的,分析原因,寻找解决方案,并指定执行者。

为什么只解决3个不好的?每个小组的精力有限,如果要一个迭代内解决全部问题,不太现实,先优先解决3个最重要的,多次迭代后,会发现整个小组的变化越来越明显。

刚成立的团队,每人每次各列3个好的及不好的;成立超过1个月的团队,则按团队的表现,减少数量;运行了3个月的团队,可以降到总共2条。