【云开发笔记No.9】Kanban与敏捷开发

Kanban看板起源于丰田。

看板(Kanban)一词来自日文,本义是可视化卡片。如下图所示,看板工具的实质是:后道工序在需要时,通过看板向前道工序发出信号------请给我需要数量的输入,前道工序只有得到看板后,才按需生产。看板信号由下游向上游传递,拉动上游的生产活动,使产品向下游流动。拉动的源头是最下游的客户价值,也就是客户订单或需求。

一、Kanban简介

Kanban,源自日语"看板"(かんばん),意为"信号板"或"告示板"。在敏捷软件开发中,Kanban是一种可视化的工作流管理方法,旨在帮助团队以更有效、更灵活的方式管理工作流、优化资源分配,并提高工作效率。它提供了一种简单、直观的方式来跟踪、管理和优化工作项从开始到完成的过程。

二、Kanban产生的背景

Kanban方法的起源可以追溯到20世纪40年代的丰田生产方式(Toyota Production System, TPS)。丰田的工程师们发现,在传统的生产系统中,生产和需求之间经常存在不匹配,导致资源浪费和效率低下。为了解决这个问题,他们引入了一种称为"看板"的卡片系统,用于在供应链内部和工厂内部传递生产和配送指令。这些看板卡片上写有零件信息、数量、生产或配送地点等,通过它们在各个工序间传递,实现了生产过程的可视化和控制。

随着时间的推移,这种看板系统逐渐演变成了我们今天所知的Kanban方法,并从制造业扩展到了软件开发、IT服务管理等多个领域。在软件开发中,Kanban方法被用于管理工作流、优化资源分配和提高团队的响应速度。

三、Kanban的主要构成

  1. Kanban板:这是Kanban方法的核心工具,通常是一个可视化的板(可以是物理的或数字的),上面分为几个列,代表工作项的不同状态(如"待办"、"进行中"、"已完成"等)。团队通过移动卡片或标记在Kanban板上更新工作项的状态。

  2. 工作项:在Kanban中,工作被分解成小块的任务或工作项,每个工作项都包含足够的信息来让团队成员了解他们需要做什么。这些工作项以卡片的形式在Kanban板上表示,包含任务描述、优先级、负责人等信息。

  3. 工作流管理规则:Kanban方法强调定义明确的工作流管理规则,如限制在制品数量(Work in Progress, WIP)、处理顺序等。这些规则帮助团队保持工作流的平稳和可预测性。

  4. 持续改进:Kanban鼓励团队定期回顾其过程和结果,识别改进机会,并实施改进措施。这种持续改进的文化是Kanban方法的一个重要组成部分。

四、Kanban的应用步骤

  1. 设置Kanban板:根据团队的工作流程和需求,设置Kanban板上的列和状态。常见的列包括"待办"、"进行中"、"审查中"和"已完成"等。

  2. 定义工作项:将工作分解成小块的任务或工作项,并为每个工作项创建卡片,包含必要的信息。

  3. 制定工作流管理规则:根据团队的能力和需求,制定合适的工作流管理规则,如WIP限制、优先级规则等。

  4. 开始工作:团队成员从"待办"列中选择工作项,并将其移动到"进行中"列开始工作。随着工作的进展,他们更新卡片的状态,并在必要时将其移动到其他列。

  5. 持续监控和调整:团队监控Kanban板上的工作流情况,识别瓶颈和问题,并及时调整工作策略和资源分配。

  6. 定期回顾和改进:团队定期回顾其过程和结果,识别改进机会,并实施改进措施,以持续优化工作流程和提高效率。

五、Kanban的注意事项

  1. 保持工作流的可视化:确保Kanban板上的信息清晰、准确,并易于理解。团队成员应能够随时查看并更新工作项的状态。

  2. 限制在制品数量:通过设定WIP限制,避免工作过载和资源浪费。这有助于揭示瓶颈并提高团队的响应速度。

  3. 优先级管理:根据业务需求、紧急程度等因素确定工作项的优先级,并确保团队成员了解并遵循这些优先级规则。

  4. 持续改进:鼓励团队成员提出改进意见和建议,并定期回顾和调整工作流程和规则,以适应变化的需求和环境。

  5. 跨团队协作:在涉及多个团队或部门的情况下,确保Kanban板的设计和使用方式能够促进跨团队协作和沟通。

六、Kanban与敏捷开发的关系

Kanban是敏捷开发方法论中的一种工具或方法。敏捷开发强调快速响应变化、持续交付价值以及团队合作与沟通。Kanban通过可视化工作流、限制在制品数量和持续改进等方式,帮助团队实现这些敏捷开发的目标。同时,Kanban的灵活性和适应性使其成为敏捷开发方法论中的一个重要组成部分。在敏捷开发团队中,Kanban可以与其他敏捷实践(如Scrum、极限编程等)结合使用,以提高团队的效率、质量和响应速度。

相关推荐
青い月の魔女1 小时前
数据结构初阶---二叉树
c语言·数据结构·笔记·学习·算法
qq_589568101 小时前
node.js web框架koa的使用
笔记·信息可视化·echarts
stm 学习ing2 小时前
HDLBits训练6
经验分享·笔记·fpga开发·fpga·eda·verilog hdl·vhdl
stm 学习ing3 小时前
HDLBits训练4
经验分享·笔记·fpga开发·课程设计·fpga·eda·verilog hdl
炸毛的飞鼠3 小时前
汇编语言学习
笔记·学习
风无雨3 小时前
react杂乱笔记(一)
前端·笔记·react.js
胡西风_foxww3 小时前
【ES6复习笔记】Class类(15)
javascript·笔记·es6·继承··class·静态成员
2301_815389374 小时前
【笔记】下载mysql5.7
笔记
m0_748233887 小时前
黑马程序员JavaWeb开发教程(前端部分) ---笔记分享
前端·笔记
1101 11017 小时前
STM32-笔记10-手写延时函数(SysTick)
笔记·stm32·单片机