浅谈Scrum敏捷开发流程
今天又是一个美妙的周一,深圳下起了雨,天气又凉爽起来。本周,Z同学想来简单谈一下Scrum敏捷开发这个项目管理常见的概念。
01
什么是Scrum
在开发一个软件产品的过程中,常见的有瀑布、敏捷以及精益等开发方式。纯正而传统的计划驱动开发流程往往是瀑布开发,我们也会称之为预测型开发或顺序开发。这种开发流程适用于已经有清晰目标,需要一次性计划周密的项目,需要很强的确定性,缺乏可变性。
举个例子,小李作为某建筑公司项目经理,接了一个政府建地铁的项目,地铁线的项目规划期间,就要做好充分的调研和准备,一旦开始就会严格按照计划进行建设,规划好之后基本不会再因为市民提意见、方案更新等外在因素发生变动。这种开发模式就属于瀑布开发,即像瀑布一样一次倾泻的开发流程。
在过去的软件开发过程中,使用瀑布式开发比较多。但是近些年,软件开发人员逐渐发现瀑布式开发不够灵活,一旦计划出现了问题,整个项目都会朝着一个错误的方向前进。于是,敏捷开发就应运而生。敏捷开发往往包括迭代型开发和增量型开发,即按照复盘修正计划或者分期计划与投入生产。
Scrum作为敏捷开发的一种框架,巧用产品开发的可变性和不确定性来产生创新解决方案。这里说个题外话,有些同学天生不care英语发音,会把Scrum读作“屎壳郎”,读起来朗朗上口,也是一种降低沟通成本的办法吧。
Scrum原本是橄榄球运动术语,指的是橄榄球比赛中在球出界或者犯规后的重新开始,现在主要用在开发软件产品中,形容一种产品开发“接力赛”的方式。认真踏实使用Scrum的团队和组织,得到了客户满意、投资回报提高、成本降低、迅速取得成果、有信心在复杂世界中取得成功、更加愉快等好处。
02
2. Scrum的角色
Scrum中的三个合作角色:
产品负责人(PO,Product Owner)
敏捷教练(SM,Scrum Master)
开发团队(Scrum team)
在实际工作中,团队中的SM多由经验丰富的开发同学兼任,主要职责是做团队的教练、服务型领导、过程权威、“保护伞”、“清道夫”以及“变革代言人”,需要花大量的时间组织并推进Scrum活动。开发团队通常由5~10人组成。
(图1 产品负责人的特征)
产品经理在团队中主要负责产品需求的调研、分析、规划等工作,因此在Scrum团队中的身份是上述的PO。PO是有授权的产品领导力核心,主要职责是定义正确的产品,并在Scrum活动中起到承上启下的作用。
(图2 产品负责人的职责)
Scrum流程里的产品经理是产品“负责人”,也和产品经理能力模型中所要求的具备owner意识不谋而合。在Scrum流程里,一方面,要求产品经理既要很好地理解组织中利益干系人、客户和用户的需求及其优先级,以便能够充当他们的代言人;另一方面,对于要构建的特性及其构建顺序,产品负责人必须和开发团队进行交流。
03
Scrum活动与工件
Scrum工作流程把开发过程分解成了7个活动,3个工件。
7个主要活动是:
1 冲刺
2 产品列表梳理
3 制定冲刺计划
4 冲刺执行
5 每日例会
6 冲刺评审
7 冲刺回顾
(Sprint,可以翻译成冲刺、迭代或者周期。在实际日常工作中,我们一般称之为迭代。)
(图3 产品负责人的日常工作)
其中,PO需要协助SM完成版本规划,并主导PBI梳理工作。这里的PBI即Product Backlog Item,也就是产品列表的一个待办事项,可以理解成用户期待的一个业务价值,我们常常用用户故事的形式来表现。
用户故事是可用于陈述业务价值的一种简便格式,能让开发团队理解需求并能更清晰地了解到自己所开发的功能模块能给用户带来什么样的价值。
3个重要工件是:
1 产品列表(PB,Product Backlog)
2 冲刺列表(Sprint Backlog)
3 潜在可交付产品增量
除了上述工件,用户故事、燃尽图等也是Scrum中常用的工具。
产品列表由PO负责,冲刺列表由SM负责,潜在可交付产品增量由开发人员负责。
在这些工件中,与产品经理息息相关的就是产品列表,每个迭代前需要确保这个迭代要做的需求全部就绪。紧接着,SM才能根据产品列表结合开发团队的实际情况进行工作拆解和估算,形成冲刺列表。之后,开发团队才能根据冲刺列表进行每日的软件开发工作,形成每个迭代的软件开发成果。因为这些成果不一定在本次迭代结束时进行上线发版,但具备上线的条件,因此我们称这些代码成果为潜在可交付产品增量。
04
Scrum工作总流程
创建产品→确定产品愿景→定产品路线图→做版本规划→近期PBI就绪→Sprint计划→发布测试版本→测试方案/执行测试→PBI验收→Sprint评审,回顾→发布版本确认
(绿色流程为一个冲刺)
1、创建产品
在一个项目立项之初,首先需要组建一个Scrum团队,其中包括1个产品负责人,1个敏捷教练和5~10人的开发团队,同时明确关键利益干系人并进行产品的立项。
2、确定产品愿景
创建好产品之后,PO需要高度概括产品的目标用户、主要功能和产品特色,同时提炼产品的卖点和核心设计要素。
3、定产品路线路
确定了产品愿景后,PO需要收集用户故事,创建粗略的PBI,明确关键节点或里程碑,并最终输出产品路线图。
4、做版本规划
在产品路线图出来以后,PO需要协助SM进行版本规划:n(当前版本)、n+1(详细)、n+2(中等)、n+3(粗略)。
5、冲刺
在冲刺之初,PO需要准备至少2个冲刺的PBI,并保证其中1个冲刺的PBI就绪。在冲刺结束时,PO和团队需要对冲刺需求进行确认、遗留bug评审以及通过回顾会检视调整。
冲刺中,PO的职责有:
6、发布版本确认
由SM进行发版。
05
Scrum框架工作原则
为了让团队达成共识,Scrum有以下原则:
(图4 敏捷原则的分类)
06
总结
(图5 Scrum实践)
Scrum框架给出了研发团队很好的指导,是大量开发者经过实践得出的项目管理方法论。上述只是简单的列举了Scrum框架的几个重要元素,关于7个活动与3个工件的具体执行以及规划建议等重要内容没有进行探讨。想要深刻理解Scrum框架,还要读点相关的书。
在Scrum中 ,我们知道持续获取认知是成功的关键。这一个理念,也可以延伸到其他方面,包括我们的生活中。内在充满求知欲和好奇心的人,往往能达到更高的成就,与大家共勉。
文章内容均来自Z同学原创,如有偏颇,欢迎联系我指正。如果你也有意提升自己的产品规划能力,或者想了解我的日常工作内容与心得,欢迎关注,一起成长。
参考资料:
1.《Scrum精髓——敏捷转型指南》,Kenneth S. Rubin , Pearson.