软件工程中的看板模型

什么是看板?

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

看板起源于 1940 年代的丰田。看板在日语中的意思是“广告牌”。看板上有栏目和故事卡。栏目什么都不是,但工作流状态和卡片只是团队成员正在执行的实际任务的演示。

何时使用看板?

使用看板开发方法的原因如下:

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

看板卡

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

看板卡
看板卡

看板卡是看板上必不可少的部分,因为它代表了团队正在进行的工作。这些卡片将具有

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

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

由于看板项目管理采用拉动式系统,当开发人员有空时,他/她可以将卡片从待办事项栏拉到开发栏。

看板

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

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

  1. 去做,
  2. 开发
  3. 测试与验证
  4. 完成。

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

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

看板工作流程

看板工作流程 是帮助团队在看板中定义明确政策和原则的一组步骤。它代表了在开发和交付周期的各个阶段进行工作时的规则和程序。看板工作流由特定任务的开始和交付之间的逐步过程组成。

Kanban 遵循的基本原则是, “停止开始,开始结束”。 借助 WIP 限制,可以完成更多工作。任何现代工具(如 JIRA)中都有可自定义的看板工作流程和状态。

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

理解任务
去做 任务第一次到达这里时就是这个状态。
准备进行分析 分析任务并完整添加需求。
准备开发 分析完成并可以开始开发。
在发展中 任务正在制定中。
准备测试 开发完成,现在可以开始测试了。
在测试中 任务正在测试。
准备发布 测试完成;可以发布。
发布/完成 发布。

看板的四个原则

以下是看板的四个核心原则:

  1. 从你现在拥有的开始:看板系统建议逐步开展工作,从您目前拥有的开始。由于其实践之一是持续改进,因此您必须逐步改进系统。
  1. 同意追求渐进式、渐进式的变革: Kanban 建议对流程进行渐进式的改变,并且不能一次性对流程进行大的改变。
  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 图表将为您提供需要修复的指标或问题区域。它将为您提供清晰的画面,并基于此图表。您可以纠正团队的交付时间和周期时间。

看板累积流程图
看板累积流程图
  1. 交期:这是新卡片到达工作流程和最终离开工作流程之间的持续时间。
  2. 周期:这是卡进入工作状态和卡准备好发布的时间间隔。
  3. WIP:在制品(WIP)限制工作流程不同阶段中工作项的最大数量。
  4. 生产能力 :这是实际表现,它告诉我们在给定时间范围内实际交付的卡片数量。
  5. 吞吐量 = WIP/周期时间

限制 WIP(在制品)

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

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

设置 WIP 限制的原因

设置 WIP 限制的原因如下:

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

Scrum 对比。看板

以下是 Scrum 对比。看板

争球 看板
争球 强调规划。它从冲刺规划开始,以冲刺回顾结束。举行了许多会议,帮助确保团队与接下来的步骤、优先事项以及从以前的冲刺中学到的知识保持一致。 Kanban 可以随时做出改变。这意味着僵化程度较低, 事情可能会经常改变.
它建议收集 时间测量 在冲刺期间制作 看板 推荐图表 了解团队在一段时间内取得的进展。
争球 不再? 要求团队做出承诺。相反,它关注的是冲刺目标和预测。 看板依赖于 时间限制和预测.
它强调规划,因此 估计有非常重要的作用 在 Scrum 中 看板具有 无强制要求 进行估算。
所有的 每个人都有自己的角色 和责任。 没有 设置角色以便灵活 就个人职责而言。
迭代/Sprint持续时间是固定的。持续时间从 2 周到 1 个月不等。 看板是 不基于持续时间. 这是根据周期时间来衡量的。
团队是 必须承诺 特定量的工作。 无需承诺 对于团队来说这是可选的。
用这种方法 跨职能团队 非常重要,因为它们可以处理可能导致软件开发瓶颈的任何中断。 专业团队 很重要
这是 无法添加商品 持续迭代。 全新发布 项目可以轻松添加 如果有额外容量可用。
冲刺待办事项列表仅由 单队. 多团队可以共享看板。
可交付成果是 由冲刺决定,其中必须完成一组工作并准备好进行审查。 产品和流程 持续交付 根据需要。因此测试和审查过程同时进行。
Scrum软件开发方法 专注于积压工作. 完全看板方法 专注于流程仪表板.
所有的 团队成员有特定的角色 在 Scrum 中,主管决定时间表,产品负责人设定目标和目的,团队成员进行开发工作。 团队没有预先定义的角色。但是,可能仍会有一个项目经理;鼓励团队协作和共同努力。
最适合以下项目 改变优先事项. 适合以下团队 稳定的优先事项 随着时间的推移,这种情况不太可能发生改变。
测量生产 使用速度 通过冲刺。 使用以下方法测量产量 周期 或完成整个项目所需的确切时间。
Scrum 需要 彻底改变传统模式 到将要实施该项目的 Agile Scrum 模型。 看板 不允许剧烈变化 在项目中。
对于具有以下特征的项目,这是理想的方法 优先事项千差万别. 最适合 优先任务稳定的团队.
在 Scrum 中,整个eam 专注于协作并完成任务 提供优质的开发工作。 团队努力实现目标 并减少完成整个过程的时间。因此,缩短时间周期是这里成功的最大指标。
争球 强调时间表;无法将新项目添加到正在进行的迭代中。 看板本质上更具迭代性,因为它 没有具体的时间表.这样,只要有额外容量,就可以不断添加新项目。
总工作量为 批次/Sprints. 整个项目是在 单线程工作项 流动。
Scrum大师 充当问题解决者。 看板鼓励 每个团队成员都是领导者 并共同承担责任。
Scrum 规定 时间盒迭代. 看板重点关注 计划不同的持续时间 进行单独迭代。
Scrum 帮助企业 节省时间和金钱. 看板法 注重持续改进、生产力和效率。
稳定一致的沟通 各个层面的表现。 团队成员更有可能 更容易实现目标 因为看板的视觉特性。
项目是 在冲刺期间进行编码和测试 检讨 团队成员更有可能 更容易实现目标 因为看板的视觉特性。
这是 更容易适应不断的变化 因为短跑和定期反馈。 这是 设计用于稳定输出,客户需求的重大变化可能会导致看板失败。
该项目的总成本很小,这可能导致 更快、更便宜的结果. 如果一项任务没有被正确估计, 项目总成本永远不会准确。在这种情况下,任务可以分散到几个冲刺中。
这种方法论 需要经验丰富的团队成员 仅此而已。所以,如果团队中没有专家,项目就无法按时完成。 没有 具体时间范围 每个阶段都会分配时间,因此团队成员永远不知道每个阶段需要花费多少时间。
在这个敏捷 Scrum 方法中, 更容易提供优质产品 在预定的时间。 它专为 规律、稳定的输出, 客户需求的重大变化会导致看板下降。
项目计划绝不会打扰 即使团队成员离开团队。 如果任何团队成员在开发过程中退出,可以 损害项目发展.
有时每天开会 阻挠 团队成员。 过时的看板 可能会导致开发过程中出现问题。
大型项目可以轻松划分 进入易于管理的冲刺。

结语

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

总结一下这篇文章: