敏捷实践 | 分不清 Kanban 和看板的只剩你了……
当我们的产品准备支持 Kanban 项目时,我的小伙伴在工作文档里同时看到了“Kanban”和“看板”并露出疑惑的神情,“Kanban”难道不是“看板”的拼音吗?这两者有什么区别吗?今天我们就来聊一聊~
Kanban VS 看板
Kanban 起源于日语单词かんばん的英语写法,字面意思是“信号卡”。早期被运用在生产制造环境中,这种卡片作为一种信号,用来通知生产过程中的上游工序继续生产,在下游工序没有发出 Kanban 信号前,每个工序中的工人不准进行额外的生产。
这种具有拉式理念的及时生产(JIT:Just In Time)方法和辅以人工介入的自动化(Automation)构成了改善(kaizen,持续改进)过程的基础,此后,丰田生产方式 TPS(Toyota Production System)运行起来。
得益于 TPS,丰田的营业额排入世界 10 大公司,与德国大众汽车、美国通用汽车并称世界三大汽车制造商。
而易与 Kanban 混为一谈的看板,实际上是一种工具,它也可以叫看板视图,是一块人人可见的物理或电子形式的“板子”,核心作用是将信息可视化。看板的视觉特性能够让使用者一眼区别:未开始的工作、正在进行的工作以及已经完成的工作。
Kanban 是一种敏捷工作方法,而看板是一种可视化工具,Kanban 管理中也会使用到看板。
现在大家所谈论的 Kanban 管理大多是指精益 Kanban 之父 David J. Anderson 发扬的管理方法,它既继承了丰田体系的精髓,又增加了诸多针对现代团队、企业管理非常有益的 Kanban 实践方法。
Kanban 的三个基本原则
可视化
Kanban 管理方法使用看板(可以是物理板或数字虚拟板),实现工作流程可视化。「列」表示工作流程中的步骤,卡片表示工作的内容,依据卡片的工作流状态将卡片放入不同的列中。这样做的好处是整个团队能够实时查看正在进行中的工作、已完成的工作和接下来要开始的工作,让任务更加直观,减少团队的沟通成本。
限制在制品
限制在制品,即 WIP(work in progress),是 Kanban 管理方法的核心特点。为了使卡片能够全面平稳地流动起来,每列中的任务数量应该控制在一定范围内。通过设置 WIP,整个团队专注度提高,质量对应有所保障,“库存积压”减少,整体吞吐量有所改善。
「WIP 限制」鼓励的是每个环节“完成”的文化,可以快速识别出工作流程中的问题区域,以便团队成员在问题失控前进行协作并及时纠正或解决它们。
管理流动
Kanban 管理方法对应的是一种拉入式的调度系统,也就意味着只有在团队成员有能力时才开始工作,而不是将工作推向他们。
通过记录每张卡片在任意状态列中停留的时间,和卡片等待进入下一状态列的时间,来分析流动过程的前置时间和平均周期时间。有效使用 Kanban 的分析指标使整个工作流程平稳进行,达到持续交付的目的,进而创造更大的价值。这也符合敏捷的原则:我们的最高优先级,就是尽早和持续交付有价值的软件来满足客户。
Kanban 的三个实践
显式化流程规则
为团队提供明确的决策依据,定义准入的定义(DoR:Definition of Ready)、完成的定义(DoD:Definition of Done)、优先满足哪些需求。
产品经理充分调研完需求,给出对应的角色、使用场景、需求目标,或具有说服力的数据支撑时,才准入开发流程,这样可以让需求更顺畅地向后流动,而不是问题不断,走走停停。
在需求着手做之前,团队要共同讨论出对应需求完成的定义并共同遵守,例如开发的活动包含编码、加注释、单元测试、代码审查、集成测试、设计文档等等。使用 DoD 可以让团队将注意力集中在那些必须要完成的事情上,让需求的状态可以更清晰。
建立反馈环路
定期进行:每日站立会议、准备就绪排期会议、产品发布规则会议、定期改进活动等。
协作式改进
团队对规则的理解要达成一致,这样才能依据这些规则更加自主地决策和协作。这种对团队的赋权也是自组织团队和高效协作的基础之一。
了解完 Kanban 的特性,那么如何使用 Kanban 方法呢?
A.制定开发流程,使其可视化
从需求出发,直到交付给最终用户需要经过的所有步骤是哪些?
B.为 Kanban 系统定义起点和终点,限制在制品
C.管理流程
D.明确策略
初始化 WIP 限制及变更或临时终止的策略、优先级排序和选择特性的方法、不同服务类别(如“标准”、“加急”、“固定交付日期”)的策略、是否需要估算工作量、当选择工作项时,哪项应为首选……
E.反馈循环
F.协同优化,经验性调整
Tip:不需要花太多时间让看板看起来美观噢,因为它会经常变动~
Kanban 和 Scrum
敏捷开发不只有一种方式,其中较常用的还有 Scrum,小伙伴们可以根据自身团队工作需求选择适合自己的方式。
Kanban 以客户需求作为动力,通过限制在制品缩短生产周期,用可视化展现工作状态和发现问题。Scrum 使用迭代的开发方式,每一次迭代中,都会经历一个“任务——实践——验证——反思”的过程。两者具体区别请参照下图。
想了解更多敏捷开发相关的内容,关注我们 infoq 的账号——LigaAI~ 目前 LigaAI 已经支持 Kanban 和 Scrum 两种敏捷模式啦!欢迎进入官网LigaAI-新一代智能研发管理平台,申请体验~
版权声明: 本文为 InfoQ 作者【LigaAI】的原创文章。
原文链接:【http://xie.infoq.cn/article/cd1c65aed6e8388b9129957bb】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论