在互联网行业的项目管理实践中,敏捷和精益一直是大家所提倡的思想,其中Scrum和kanban方法作为即敏捷又精益的典型代表,许多PM都在研究,笔者近期也在学习和实施Scrum和kanban方法,有些感触拿出来与大家一同分享。
Kanban方法最初起源于丰田的JIT(Just In Time),之后作为一种高效管理软件开发流程的技术和思想应用于互联网行业。Scrum源自于橄榄球的一种争球方式。现在作为一种迭代式增量软件开发过程,通常应用于敏捷软件开发。
在团队的项目管理实践中,我们往往将二者的优势结合起来使用,以便帮助团队更好的完成目标,而不是为了使用方法而使用方法。本文简单的比较Scrum与kanban方法,希望能帮助大家在实践过程中找到最适合团队管理的方法。
1.Scrum与看板方法的区别
实践过程中关注核心不同
Scrum实践的核心可以概括为“化繁为简”,可以从以下几个维度理解:
团队角色的定义,将团队人员定义为三个角色,Scrum Master(主要负责消除障碍,带领团队运作)、Product Owner(主要负责描绘产品远景,定义优先级)、Scrum Team(主要负责实现产品)
工作任务的拆分,将产品需求拆分成小的用户故事,并进行优先级排定
时间的拆分,将项目周期拆分成固定时长的迭代周期,每个迭代交付一部分可验收的功能,通常迭代长度为1到4周
Kanban方法在实践过程中更多关注的是可视化的价值流动:
拉动式生产,下游工作完成后,主动拉动上游的任务移动
限制WIP(work in progress),明确设定限制每个状态下,同一时间内有多少工作量,减少同一状态同一时间内,任务和价值的堆积
可视化的价值流动通常是端到端的流动,直观的反映用户的价值(通常是可交付的用户需求),并且反映出在价值流动过程中的瓶颈和问题,不断为团队改善提供依据
限制WIP数量的方式不同
Scrum与kanban方法都会限制WIP,不过限制方式有所不同,kanban方法限制的更加直接,同一状态同一时间内的工作任务有最大限制;Scrum是间接性的通过迭代(sprint)来限制,限制WIP的核心目的是加速交付用户需求的价值流动。
对任务变更管理的不同
在kanban方法的中,下游任务完成后,即可拉动上游任务下移,同时,只要生产力允许,即可新增需求。
在Scrum方法下,当每个迭代的sprint Backlog确认后,当前迭代是不允许新增需求的,新增加的需要可以体现在下个迭代的sprint backlog中。
改进依据的不同
Scrum是以生产率作为计划和改进的依据,以迭代(sprint)数据作为依据,分析迭代的相关数据(包括生产率、完成率等);Kanban方法是使用生产周期作为计划和过程改进的依据。
2.Scrum与kanban方法的相同点
精益与敏捷的代表
二者都和敏捷与精益相对应。敏捷中的持续改进思想在Scrum和kanban都有所体现,而且是很核心的一个内容;精益中的拉动式生产在Scrum和kanban中也都分别覆盖,Kanban方法体现的更加直接,下游直接拉动上游的工作任务。
尽早交付价值
二者都关注尽早的交付价值,尽可能频繁的发布可使用的软件。Scrum将整个项目周期拆分成多个迭代,每个迭代发布可验收的软件;kanban方法在每个功能开发测试完成后就可以进行部署和发布。
持续改进
团队状态都直观的反应在Scrum board和kanban上,方便找到问题和瓶颈,并进行持续改进
比较了Scrum与kanban方法之后,如何结合二者在团队中进行项目管理实践呢,笔者结合自己的经验从迭代、版本、变更、改进四个方面给大家进行一个简单的介绍。
3.实战