由于团队最近计划执行不顺利,项目经理在知道我经历过敏捷开发的流程后,让我给团队内部的各个小组分享SCRUM敏捷开发相关的知识,并负责推动团队敏捷开发计划的建设。
scrum 是一种迭代增量软件开发方法,通过该方法,你可以量化工作量,并且可以把每个任务量化成具体时间,得出最后一个项目的总时间(一般估算到小时)。能让管理者看清楚项目进度,把握项目进程的各种问题。scrum简单易用,但是简单的东西要掌握就容易犯错,大家可以在尝试中掌握这种项目管理方法,以下是我做内部培训个人写的教程,抛砖引玉,希望能普及该方法。
什么是Sprint??
Sprint是短距离赛跑的意思,这里面指的是一次迭代,而一次迭代的周期是1个月时间(即4个星期),也就是我们要把一次迭代的开发内容以最快的速度完成它,这个过程我们称它为Sprint。
在scrum里面,有3种角色,分别是product owner(产品负责人)scrum master(团队负责人)scrum team (开发团队):
Product owner:是需求方,提出需求,能对功能流程,业务流程拍板的人。
Scrum master :团队负责人,一般是product manager,负责解决团队问题,领导项目。
Scrum team:项目执行人员,开发项目一般包括,前端后端开发,ui等。
scrum的流程如下:
Scrum 步骤一:
头脑风暴,如果product owner 对产品需求非常清楚,就可以省略这个步骤,开发一个原则“先紧后松”, 必须先把需求了解清楚,这里product owner可以召集技术团队/用户群体对其需求进行公开征求意见,最后输出一个产品建议表。
Scrum 步骤二:
product owner 对产品建议表进行筛选,做减法提炼最核心的需求。在确定了需求后,这个时候由scrum master 进行输出prd (product requirement document) , 这里就和传统的瀑布流一样了,该有的文档都必须有了,必须由scrum master 和product owner 确定好需求,包括业务逻辑,功能流程等。
Scrum 步骤三:
原型,ui设计都不是在步骤二完成的,把任务量化,包括,原型,logo设计,ui设计,前端开发等。
尽量把每个工作分解到最小任务量,最小任务量标准为工作小时不能超过8小时。准备估算总体项目时间吧!
把每个任务都贴在任务看板上面,看板上分为四部分:
(1)to do待完成
(2)doing 正在做的
(3)done 已完成的
(4)Cancel 推迟的
如何估算时间:玩扑克游戏这个方法估算出来的工作时间比较准,参与扑克游戏的最好有专家和开发涉及到的人员。
扑克游戏玩法:
(1)每个人发一部扑克牌,使用扑克牌来进行打分,扑克牌的面值分数有1分、2分、3分、5分和8分,1分代表1小时的工作量。
(2)同时展示该项目完成时间,肯定存在最大最小的工作时间,最大最小两个人请你们辩论吧,为什么要那么长时间完成,或者那么短时间完成,其他人可以提出疑问,在一定程度上达成认可。
(3)进行再次私下对该任务写时间,再公示,再辩论,这样下去,大家写出来的该任务的时间越来越接近了。
(4)最后达成一个共同认可的时间,这个就是该任务的工作时间!
Scrum 步骤四:
经过大家纠结讨论了好久,终于把任务量化到具体多少时间完成了!接下来,把n个任务按照开发的重要度,组合成n个sprint( 冲刺),每次执行一个sprint。
每个sprint 都是独立的,一般先做主要功能,再到次要功能,再到小功能,最后的sprint 一般是修复bugs。
因为任务都被量化了,每天工作了多少小时,完成了多少任务量,通过每天例会scrum master非常清楚,并且在时间燃尽图进行表示。我们就可以直观看到任务的进度了,而且是具体到多少小时!
通过时间燃尽图可以可视化任务的时间进度,大家可以看下图,day1 是整个任务的总共时间,每天按照任务完成度更新剩余时间,或者增加时间(例如发现一个技术难点,团队成员请假等要增加开发时间)。
Scrum 步骤五:
需要进行 每日站立会议,每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 时间燃尽图。
Scrum 步骤六:
当一个Story完成,也就表示一次Sprint完成,这时,我们要进行演示会议,也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消);最后就是 回顾会议,也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中。