什么是看板?

看板 是一个日语术语,表示招牌或广告牌。 丰田汽车公司的一位名叫太一·大野的工业工程师开发了看板系统,以提高制造效率。

虽然 Kanban 是为制造而创建的,但软件开发共享许多相同的目标,例如增加流量和吞吐量。 软件开发团队可以使用看板指导原则和方法更快地提高用户的效率并为用户提供价值。

显示使用看板的人员的图像。

看板原则

采用看板需要遵循一些基本做法,这些做法可能与团队以前的方法不同。

可视化工作

了解开发团队状态和工作进度可能很有挑战性。 工作进度和当前状态在视觉上呈现时更容易理解,而不是作为工作项或文档的列表显示。

工作可视化是看板主要通过 看板解决的关键原则。 这些板使用按进度组织的卡片来传达总体状态。 将工作可视化为板上的不同状态的卡片有助于轻松查看项目当前所处的位置的大局,并确定可能影响工作效率的潜在瓶颈。

显示看板的示意图。

使用拉取模型

从历史上看,利益干系人通过将工作推送到开发团队来请求功能,通常期限紧张。 如果团队必须采取快捷方式在时间范围内提供功能,质量就会受到影响。

看板侧重于保持商定的质量水平,必须达到这些水平才能认为工作已完成。 为了支持此模型,利益相关者不会向已经满负荷运作的团队施加工作。 相反,利益干系人会向待办事项列表添加请求,团队会在有可用容量时将其拉入工作流程。

设置 WIP 限制

由于频繁且成本高昂的上下文切换,尝试同时处理太多工作的团队可能会降低工作效率。 团队很忙,但工作没有完成,导致交付周期过长,这是不可接受的。 限制团队一次可处理积压工作项的数量有助于增加焦点,同时减少上下文切换。 团队当前正在处理的项目称为正在进行的工作(WIP)。

Teams 决定 WIP 限制,或者一次可以处理的最大项目数。 一个纪律严明的团队确保不要超过他们的 WIP 限制。 如果团队超出 WIP 限制,他们调查原因并努力解决根本原因。

衡量持续改进

为了实践持续改进,开发团队需要一种方法来衡量有效性和吞吐量。 看板提供工作流中工作状态的动态视图,使团队可以试验流程并更轻松地评估对工作流的影响。 采用看板进行持续改进的团队使用交付周期周期时间等度量值。

看板

看板板是团队用于实施看板实践的工具之一。 看板可以是物理板,也可以是显示按列排列的卡片的软件应用程序。 典型的列名称是 “执行”、“ 执行”和 “完成”,但团队可以自定义名称以匹配其工作流状态。 例如,团队可能更喜欢使用 “新建”、“ 开发”、“ 测试”、“ UAT”和 “完成”。

基于软件开发的看板显示与产品待办事项对应的卡片。 卡片包括指向其他项的链接,例如任务和测试用例。 Teams 可以自定义卡片,以包含与其流程相关的信息。

软件开发看板的屏幕截图。

在看板中,WIP 限制适用于所有正在进行的列。 WIP 限制不适用于第一列和最后一列,因为这些列表示尚未启动或已完成的工作。 看板板通过提醒团队注意超出限制的工作列,帮助团队保持在 WIP 限制范围内。 团队随后可以确定一个行动方案以消除瓶颈。

累积流图

基于软件开发的看板板上常见的一个补充是名为累积流图(CFD)的图表。 该CFD展示了随着时间的推移每个状态中的项数,通常跨越数周。 水平轴显示时间线,而垂直轴显示积压工作项的数量。 彩色区域表示卡片当前处于的状态或列。

CFD特别有助于识别随时间推移的趋势,包括瓶颈以及对进度速度的其他干扰。 一个好的CFD在团队进行项目时显示出一致的上升趋势。 如果团队在 WIP 限制范围内工作,图表中的彩色区域应大致平行。

显示累积流图的图像。

一个或多个彩色区域的膨胀通常指出团队工作流程中的瓶颈或障碍。 在以下CFD中,绿色代表的已完成工作保持不变,蓝色的测试状态在增加,这可能是由于瓶颈导致的。

显示累积流图中瓶颈的图像。

敏捷开发中的看板和 Scrum方法

虽然 Scrum 和 Kanban 都属于 敏捷 开发范畴,但二者截然不同。

  • Scrum 侧重于固定长度的迭代,而看板则是一个连续流动模型。
  • Scrum 已定义角色,而 Kanban 不定义任何团队角色。
  • Scrum 使用速度作为关键指标,而看板则使用周期时间。

团队通常采用 Scrum 和 Kanban 方面的功能,帮助他们更有效地工作。 无论他们选择哪个特征,团队都可以始终进行评审并调整,直到找到最佳契合。 团队应从简单开始,并且不要忽视定期向用户提供价值的重要性。

使用 GitHub 的看板

GitHub 通过 项目板(经典)来体验 Kanban 看板体验。 这些看板可帮助你组织和优先安排关于特定功能开发、全面路线图或发布清单的工作。 可以 自动化项目板(经典版),以便同步卡片状态与关联的问题和拉取请求。

使用 Azure Boards 的看板

Azure Boards 为 DevOps 规划提供了全面的看板解决方案。 Azure Boards 在 Azure DevOps 中具有深度集成,也可以是 Azure Boards-GitHub 集成的一部分。