鸡和猪的故事
一天,一只鸡散步时遇见了猪。
鸡对猪说:“嗨,我们合伙开个餐厅吧。”
猪说:“好啊,那准备取什么店名呢?”
鸡说:“要不,就叫火腿和鸡蛋吧。”
猪直接拒绝了:“那可不行。我要割肉,你只要下蛋。这样下去,我迟早要完蛋。”
Scrum产生的背景
这个故事实际上反映了软件开发过程中的2种不同角色,即需要完全投入的“猪”和只要部分投入的“鸡”。真实项目过程中,往往会发生这样的现象,产品经理或领导,喜欢临时往项目中新增任务,打乱原先的开发节奏,导致程序员压力倍增,士气低落,项目延期。
而Scrum,就是为了保护“猪”这种角色,兼顾“鸡”的感受,从而确保整个项目正常交付。它是一套敏捷开发流程。
Scrum的角色
就Scrum的职责来讲,分为
- Project Owner
即产品经理,大部分时间担任了“鸡”的角色,迫于领导的压力,喜欢往团队中不断增加任务或修改需求。 - Scrum Master
类似于项目负责人,他需要做的是,保护团队,兼顾产品经理的需求,确保项目的按时交付。 - Team
开发测试设计人员,Scrum Master本身可能也是开发人员。
Scrum的流程
Scrum的工具
- 用户故事
迭代计划会议用到,Product Owner以用户的角度去描述需求。如,作为一个学员,我希望能在做完一份试卷后,系统能针对我的薄弱点提供相应的指导及练习。 - Product Backlog
迭代计划会议用到,Product Owner事先将所有的用户故事按优先级排好,放到一个列表内,这个列表就是Product Backlog。 - Sprint Backlog
迭代计划会议用到,整个开发小组通过估点将用户故事按优先级移入到迭代计划内,迭代计划中待完成的用户故事列表即为Sprint Backlog。 - 估点
主要用于评估用户故事的大致工作量。下一篇文章会额外介绍估点。 - 燃尽图
主要用于迭代进度的管控。下一篇文章会额外介绍燃尽图。
Scrum标准流程
- Sprint Planning Meeting
迭代计划会议中,整个小组通过估点的方式,按优先级将用户故事从Product Backlog中移入到Sprint Backlog。表示整个小组承诺本迭代要做完的任务。做完的标准是测试通过,除非此任务不可测试。 - Daily Stand Up Meeting
迭代计划会后,小组成员按个人喜好领取自己的任务,并在每天的站立会议上讲一下自己昨天做了什么,今天准备作什么,大概什么时候完成,以及遇到了什么问题。当有人提出遇到难题时,Scrum Master需要在会后安排人帮忙解决,而不是在会议上直接解决。每个人大概30秒~1分钟,整个会议一般不超过15分钟。每一个工作日结束后,需要画燃尽图(下一篇文章会额外介绍)。 - Review Meeting
一个迭代开发阶段结束后,进入内部演示会议,工作成果给整个小组演示(包括Project Owner)。EduSoho的做法是,bug及小优化不演示,点数较大的功能点做演示。 - Restrospective Meeting
内部演示结束后,整个小组(包括Project Owner)召开一个迭代回顾会,回顾本迭代中大家哪些做的好,哪些做的不好,每人各列举3个好的以及不好的,列的时候只讲现象,不分析原因,不找解决方案。然后整个小组投票选出3个不好的,分析原因,寻找解决方案,并指定执行者。
为什么只解决3个不好的?每个小组的精力有限,如果要一个迭代内解决全部问题,不太现实,先优先解决3个最重要的,多次迭代后,会发现整个小组的变化越来越明显。
EduSoho的做法是,刚成立的团队,每人每次各列3个好的及不好的,成立超过1个月的团队,则按团队的表现,减少数量。如运行了3个月的团队,可以降到总共2条。
下一篇 浅谈Scrum(二)-- EduSoho在Scrum中的应用及扩展
EduSoho官网 https://www.edusoho.com/
EduSoho开源地址 https://github.com/edusoho/edusoho
我们正在寻找开发者