软件工程中的看板模型

什么是看板?

看板是敏捷软件开发方法中一个非常流行的开发框架。它提供了一种可视化团队任务和工作能力的透明方式。它主要使用实体和数字看板,让团队成员能够可视化他们正在处理的项目的当前状态。

看板起源于1940年代的丰田公司。看板在日语中的意思是“广告牌”。看板有列和故事卡。列表示工作流状态,卡片表示团队成员正在执行的实际任务。

何时使用看板?

以下是使用看板开发方法的原因

  • 看板可用于任何领域,并可在软件开发中非常有效地使用。看板项目管理有助于提高团队的效率。
  • 它是一个拉动式系统。一旦个人空闲,任务就会被拉取。
  • 当您想随时发布您的工作时,应使用看板。它需要 Git 分支,但这是可行的。
  • 当您想随时更改优先级时,应使用看板。为此,您只需将此故事放在待办队列的顶部。
  • 当您想可视化您的工作并直观地查看任务进度时,应使用它。

看板卡片

看板系统建议工作可视化。它建议使用实体和数字看板。

Kanban Cards
看板卡片

看板卡片是看板上的重要组成部分,因为它代表了团队正在进行的工作。这些卡片将包含

  1. 优先级
  2. 所有者
  3. 类型
  4. 截止日期

看板中的一列代表工作阶段,您可以在该列上设置 WIP(在制品)限制。WIP 限制表示该列中可以停留的最大卡片数量

由于看板项目管理采用拉动式系统,因此只要开发人员空闲,他/她就可以将卡片从待办列拉到开发列。

看板

看板是一种敏捷项目管理工具,它有助于实施看板以管理个人和商业用途的项目。它是一个实体或数字(JIRA)板,旨在帮助团队可视化其在不同阶段和流程中的工作。它还有助于使用卡片表示工作阶段。

它有表示工作状态的列,例如

  1. 待办事项,
  2. 开发
  3. 测试
  4. 完成。

这些列中的每一列都可以有卡片 <= WIP 限制。卡片代表实际工作。

您可以使用正数来限制在制品,此限制数可以放置在实体和数字看板中列的顶部。团队中的任何个人都可以管理其卡片的状态,整个团队都可以可视化工作流。接下来,在本看板教程中,我们将学习看板工作流。

看板工作流

看板工作流是一组步骤,可帮助团队在看板中定义明确的策略和原则。它表示在开发和交付周期的各个阶段进行工作时的规则和程序。看板工作流包括特定任务从开始到交付的分步流程。

看板遵循的基本原则是,“停止开始,开始完成”。在 WIP 限制的帮助下,它能完成更多工作。在任何现代工具(如 JIRA)中,都有可定制的看板工作流和状态。

以下是许多软件团队遵循的基本工作流管理状态。

状态 任务理解
待办事项 任务首次到达此状态。
准备分析 分析任务并完全添加需求。
准备开发 分析完成,可以开始开发。
正在开发中 任务正在开发中。
准备测试 开发完成,现在可以开始测试。
正在测试中 任务正在测试中。
准备发布 测试完成;可以发布。
已发布/完成 已发布。

看板的四大原则

以下是看板的四大核心原则

  1. 从您现在拥有的开始:看板系统建议增量工作,并从您当前拥有的开始。由于其持续改进的实践之一,您必须逐步改进系统。
  1. 同意追求增量、渐进式变更:看板建议对流程进行增量变更,您不能一次性对流程进行重大变更。
  1. 尊重当前流程、角色和职责:再次强调,从您现在拥有的开始,并以增量方式更改流程、角色和职责。
  1. 鼓励各级领导行为:每个人都可以充当领导者,并提供想法以提高整个看板系统的效率。您不应认为这是一项管理级别的活动,即使团队中最年轻的成员也可以充当领导者。

看板的六项核心实践

以下是看板的六项核心实践

  1. 可视化工作流程:此原则建议使用看板(实体或数字)来可视化工作流程。团队中的每个人都必须看到自己的卡片和其他团队成员的卡片。您可以根据上图将卡片移动到不同的列中。它带来了团队内部的透明度,也使解决障碍变得更容易。
  1. 限制在制品:看板是一个拉动式系统,它通过限制在制品和拥有团队在给定时间内可以完成的任务来提高团队效率。此 WIP 限制适用于工作流程的开始到结束。您可以使用正整数将限制应用于列的顶部。
  1. 关注流:此原则侧重于流和任何中断。如果存在中断或障碍,则必须永久修复它们。
  1. 明确的策略:可以在团队中建立策略,以减少返工并专注于需要关注或更有效的领域。
  1. 反馈循环:反馈循环在看板中非常重要。它不仅在团队内部,而且在多个团队、教练等之间。这有助于改善看板系统的整体健康状况。
  1. 持续改进:这是看板系统的核心原则。它指出您始终可以改进流程,这将带来更高的效率。

拉动式系统

看板是一种拉动式方法,任务是被拉取而不是被推送的。一旦您完成了当前卡片,就可以从看板的前一列中拉取一张新卡片。

通过WIP限制,看板有助于改进提前期和周期时间。这两个时间之间应该有最小的可能差距。例如,我们有5名开发人员,但只有1名测试人员;在这种情况下会发生什么?总会有许多卡片需要测试,它们会闲置等待。

为了克服上述问题并提高效率,看板采用带有WIP限制的拉动式方法,其中拉取的卡片数量将受到限制。

因此,当测试人员完成手头上的当前任务时,他/她将从“准备测试”阶段拉取一个任务。通过看板列(开发阶段)中的WIP限制,您在看板工作流中将不会有许多无人处理的卡片。

拉动式系统还有助于找到团队的正确速度。有了正确的速度,团队将表现得更好。

提前期和周期时间

在看板方法中,提前期和周期时间被广泛使用,两者之间存在差异,理解这一点很重要,以避免混淆。

提前期 周期时间
提前期衡量的是任务进入工作流到离开工作流(即已发布)之间的时间。 周期时间衡量的是任务进入“进行中”状态到任务进入“准备发布”状态之间的时间。

在这里,同样重要的是要理解不包括从准备发布到实际发布之间所需的时间。

Cycle Time = Work in Progress/Throughput

在理想情况下,提前期和周期时间之间的差距应该最小,看板使用累积流图(CFD)来衡量提前期和周期时间的历史数据。

累积流图 (CFD)

CFD 是一种图表,所有主流工作流管理工具(如 JIRA)都提供。此图表衡量进入工作流的总工作卡片/任务数量以及随时间积累的已完成卡片/任务数量。

它可以帮助您估算预设时间的平均提前期和周期时间。

CFD图将为您提供需要修复的指标或问题区域。它将为您提供清晰的图像,并基于此图。您可以纠正团队的提前期和周期时间。

Kanban Cumulative Flow Diagram
看板累积流图
  1. 提前期:这是新卡片进入您的工作流程到最终离开工作流程之间的时间。
  2. 周期时间:这是卡片进入工作状态到卡片准备发布之间的时间。
  3. WIP:在制品 (WIP) 限制了工作流程不同阶段中工作项的最大数量。
  4. 吞吐量:这是实际性能,它表示在给定时间段内交付的实际卡片数量。
  5. 吞吐量 = WIP/周期时间

限制 WIP(在制品)

在看板开发方法中,WIP 限制了团队成员或整个团队一次可以处理的任务/卡片数量。

WIP 限制确保团队稳定工作并提高预测性,这在拉动式系统中至关重要。通常,WIP 限制的决定由团队自行决定。

设置 WIP 限制的原因

以下是设置 WIP 限制的原因

  • 它将重点转移到完成任务上,因为个人一次只专注于一项任务。
  • 它帮助团队了解他们的能力。
  • 它提高了生产力、提前期和周期时间。
  • 它有助于避免任务堆积(处于等待模式)。
  • 它有助于工作流程的移动,任务不断前进。
  • 它还有助于解决障碍,因为个人不会在不同任务之间切换。

Scrum 与看板

以下是 Scrum 与看板之间的重要区别

Scrum 看板
Scrum 强调计划。它从冲刺计划开始,以冲刺回顾结束。举行了许多会议,有助于确保团队与后续步骤、优先级和从前一个冲刺中学习的内容保持一致。 看板乐于随时进行更改。这意味着灵活性较低,事情可以频繁变化
它建议收集冲刺期间进行的时间测量 看板推荐图表以了解团队随时间推移的进度。
Scrum 不再要求团队做出承诺。相反,它关注冲刺目标和预测。 看板依赖于时间箱和预测
它强调计划,因此估算在 Scrum 中扮演着非常重要的角色 看板没有强制性的估算要求
每个人都有自己的角色和职责。 没有设定角色,因此个人职责具有灵活性
迭代/冲刺的持续时间是固定的。此持续时间从2周到1个月不等。 看板不基于持续时间。这是通过周期时间来衡量的。
团队需要承诺特定数量的工作。 承诺不是强制性的,团队可以选择。
在这种方法中,跨职能团队非常重要,因为他们可以处理可能导致软件开发瓶颈的任何中断。 拥有专业团队很重要。
无法向正在进行的迭代添加项目 如果有多余的容量,新项目可以轻松添加
一个冲刺待办事项列表只由一个团队拥有。 多个团队可以共享看板。
可交付成果由冲刺决定,即一组必须完成并准备好进行审查的工作。 产品和流程根据需要持续交付。因此,测试和审查过程同时进行。
Scrum 软件开发方法侧重于待办事项 看板方法完全侧重于流程仪表板
在 Scrum 中,每个团队成员都有特定的角色:Scrum Master 决定时间表,产品负责人设定目标和目的,团队成员执行开发工作。 团队没有预先定义的角色。但是,可能仍然有项目经理;鼓励团队协作和共同工作。
最适合具有不断变化的优先级的项目。 适用于优先级稳定且不太可能随时间变化的团队。
通过冲刺使用速度衡量生产。 通过周期时间或完成一个项目完整部分所需的确切时间来衡量生产。
Scrum 需要从传统模型完全转向在项目中实施的敏捷 Scrum 模型。 看板不允许对项目进行剧烈更改
这是适用于优先级变化很大的项目的理想方法。 最适合优先级稳定的团队。
在Scrum中,整个团队专注于协作并完成任务以提供高质量的开发工作。 团队努力实现目标并缩短完成整个过程的时间。因此,时间周期的缩短是这里最大的成功指标。
Scrum 强调其时间表;新项目不能添加到正在进行的迭代中。 看板本质上更具迭代性,因为它没有特定的时间框架。因此,只要有额外的容量,就可以不断添加新项目。
总工作量以批次/冲刺完成。 整个项目是在单线程工作项流的移动中执行的。
Scrum 主管充当问题解决者。 看板鼓励每个团队成员都是领导者,并在他们所有人之间分担责任。
Scrum 规定了时间限制的迭代 看板侧重于为单个迭代规划不同的持续时间
Scrum 帮助公司节省时间和金钱 看板方法注重持续改进、生产力和效率。
在所有级别实现稳定和一致的绩效沟通 由于看板的视觉特性,团队成员更容易实现他们的目标
项目在冲刺评审期间进行编码和测试 由于看板的视觉特性,团队成员更容易实现他们的目标
由于短冲刺和定期反馈,它更容易适应持续的变化 旨在实现规律、稳定的产出,客户需求的重大变化可能导致看板失败。
项目总成本最低,这可能带来更快、更便宜的结果 如果任务估算不正确,项目总成本将永远不准确。在这种情况下,任务可以跨越多个冲刺。
此方法只要求经验丰富的团队成员。因此,如果团队由非专家组成,项目可能无法按时完成。 每个阶段都没有特定的时间框架,因此团队成员永远不知道每个阶段可以花费多少时间。
在此敏捷 Scrum 方法中,更容易在预定时间交付高质量产品 它旨在实现规律、稳定的产出,客户需求的重大变化可能导致看板失败。
即使有团队成员离开,项目计划也不会受到干扰 如果在开发过程中任何团队成员退出,可能会损害项目开发
每日会议有时会让团队成员感到沮丧 过时的看板可能导致开发过程中的问题。
大型项目可以轻松划分为易于管理的冲刺

摘要

  • 看板定义:看板被定义为一种敏捷开发方法,用于开发软件、汽车、商品、药品、鞋类或任何其他制造工作。
  • 看板使用看板来可视化工作。它使用列作为阶段(待办、开发、测试等),卡片作为工作项。
  • 看板方法支持实体和数字看板进行可视化。
  • 看板是一个拉动式系统,团队成员将卡片从前一阶段拉到当前阶段。
  • 看板方法使用CFD图来了解团队的提前期和周期时间。此图表帮助团队解决这两个时间之间的差距并提高效率。
  • 在看板开发方法中,WIP限制了团队成员或整个团队一次可以处理的任务/卡片数量。
  • WIP 限制将重点转移到完成任务上,因为个人一次只专注于一项任务。