看板
如何使用看板方法进行软件开发
使用看板流程优化软件开发
看板流程是敏捷和 DevOps 方法的基石,它通过可视化的工作流程协调无缝任务进展,从而提高效率。看板流程反映了超市的简化库存管理,确保任务在需要时准确地完成开发流程。
任务在看板上可视化,以卡片的形式呈现,可以透明地跟踪进度,并迅速识别瓶颈。通过限制进行中的工作 (WIP),团队可以优化资源分配并保持稳定的工作流程。控制图和累积流量图等指标促进了看板对持续改进的关注,使团队能够不断完善工作流程。
在软件开发中,看板流程可促进动态任务管理,缩短交付周期,并通过专注、不间断的工作提高客户满意度。从本质上讲,看板流程是效率的缩影,是透明度、适应性和持续改进的和谐统一,释放了敏捷方法的全部潜能。
构建您的看板流程
在软件开发团队中建立结构化的看板流程对有效实施看板至关重要。这能确保任务顺利进行,优化工作流程管理。以下是构建看板流程的方法:
工作流程可视化:首先,在看板面板上可视化团队的工作流程。无论是实体面板还是虚拟面板,都应描述从任务开始到完成的整个开发流程的每个阶段。
工作流程标准化:根据团队的流程和要求定义工作流程阶段并使其标准化。常见的阶段包括“待办”、“进行中”和“已完成”,但也可根据需要进行自定义,以反映您独特的工作流程。
识别障碍和依赖关系:确保您的看板面板能够立即识别阻碍和依赖关系。这种透明度可以迅速解决问题,并防止工作流程中断。
设置进行中的工作 (WIP) 限制:对每个工作流程阶段实施 WIP 限制,以避免负担过重,并保持稳定的工作流程。WIP 限制有助于优化资源分配和减少多任务处理,从而提高工作效率。
鼓励协作:在团队中培养协作文化,让团队成员共同解决瓶颈问题,齐心协力确保工作流程顺利进行。这种协作方式可以提高效率,加快任务完成。
使用看板卡片:在面板上用看板卡片表示每项任务,其中包含任务描述、经办人和预计完成时间等基本详细信息。看板卡片便于对任务进度进行可视化跟踪,提高团队内部的透明度。
通过这种方式构建看板流程,您可以简化软件开发流程,增强团队协作,并最大限度地提高任务管理的效率。
探索看板的起源
看板在当下的敏捷和 DevOps 软件团队中颇具盛名,但事实上,看板方法可以追溯至 50 多年以前。20 世纪 40 年代末,丰田开始按照超市的货架囤货方法优化其工程流程。
超市仅存储刚好满足消费者需求的库存,这种做法优化了超市和消费者之间的流通。由于库存水平符合消费模式,超市通过减少其任何时候所持有的超额库存,大大提高了库存管理效率。同时,超市仍然可以确保必需品始终有货。
当丰田将相同的系统应用于工厂车间时,其目标是根据材料的实际消耗量更好地调整其大量的库存量。为了在工厂车间内以及向供应商实时传达库存量,工人们会在两个团队之间传递卡片或“看板”。
当有人清空了生产线上使用的材料箱时,看板卡片会被传递到仓库,说明需要什么材料以及所需材料的确切数量等。仓库会准备好一箱新的材料,然后将其送到工厂车间,再将自己的看板送到供应商那里。虽然此流程自 20 世纪 40 年代以来不断发展,但这种“实时”(JIT) 生产流程仍然是看板方法的核心。
面向软件团队的看板
虽然看板框架的核心原则不受时间限制且适用于几乎所有行业,但软件开发团队仍在敏捷实践方面取得了特殊的成功。与在工厂车间应用看板(其中涉及更改物理流程和增加实质性材料)不同,软件团队唯一需要的实体物质就是面板和任务卡片,而这些内容甚至可以是虚拟的。
看板
所有看板团队的工作都围绕着一块看板面板展开,它是一种用于可视化和优化团队中工作流程的工具。虽然实体面板在一些团队中很受欢迎,但虚拟面板是所有敏捷软件开发工具中的重要功能,因为它具有可追溯性、支持协作且可从多个位置访问。
无论团队使用的是数字看板面板还是实体看板面板,它都能确保团队实现工作可视化、工作流程标准化,并立即识别和解决所有障碍和依赖关系。基本的看板有一个三步式工作流,即待办、进行中和已完成。不过,根据团队的规模、结构和目标,他们可以绘制工作流程图,以满足其独特的流程。
由于看板方法依赖于工作的完全透明和实时沟通,因此看板面板是团队工作的唯一事实来源。
看板卡片
在日本,看板的字面意思是“视觉板”。看板团队用面板上的单独卡片来表示每个工作项目。在看板面板上用卡片来表示工作的主要目的是,让团队成员以高度可视化的方式跟踪工作流程中的工作进展。
看板卡片包含有关项目任务的关键信息,可让团队了解谁负责哪些任务、任务的简要说明以及任务预计需要多长时间。虚拟看板面板上的卡片通常还会提供屏幕截图和对经办人有价值的其他技术详细信息。
使团队成员能够随时查看每项任务的状态以及相关详细信息,从而提高专注度,提供全面的可追溯性,并快速识别阻碍和依赖关系。
看板框架的优势
看板是当今敏捷团队使用的最受欢迎的软件开发方法之一。看板可为各种规模的团队提供任务规划和吞吐量方面的额外优势。
灵活规划
看板团队只关注眼下正在进行的工作。团队完成任务后,他们会从待办事项列表中选择下一个任务。产品负责人可以在不干扰团队进度的情况下自由调整待办事项列表中工作的优先级,因为当前工作项目之外的任何变动都不会影响到团队。
只要产品负责人将最重要的工作项目置于待办事项列表顶部,开发团队就会明确知道这些工作项目将给企业带来最大价值。
聪明的产品负责人会在在考虑更改待办事项列表时与开发团队沟通。例如,如果用户故事 1-6 都位于待办事项列表中,那么用户故事 6 的预估工作量可能会视用户故事 1-5 的完成情况而定。始终与工程团队确认工作变动是个不错的做法,可确保不会出现意外情况。
缩短时间周期
对看板团队来说,周期时间是一项重要指标。周期时间是指一个工作单元通过团队工作流程所花费的时间—从工作开始的那一刻起,到工作交付的那一刻结束。通过优化周期时间,团队可以充满信心地预测未来工作的交付情况。
共享技能组合可以缩短周期时间。当只有一个人拥有技能时,这个人就成为了工作流程中的一个瓶颈。因此,团队会采用代码审查和指导等最佳实践来帮助传播知识。共享技能意味着团队成员可以从事异质性工作,从而进一步优化周期时间。
此外,这种方法还能让整个团队共同解决任何工作瓶颈问题,促进问题的迅速解决,确保工作流程顺畅。例如,测试职责不仅包括质量保证工程师,还包括开发人员,从而促进协作,保持效率。在看板系统中,整个团队都能确保工作在流程中顺利进行。
减少瓶颈
多任务作业降低了效率。同时,工作量的增加会导致更频繁的情境切换,阻碍任务的完成进度。这就是为什么看板流程的一个重要原则是限制进行中的工作 (WIP)。进行中的工作限制凸显了团队流程中由于缺乏重点、人员或技能组合而造成的瓶颈。
例如,典型的软件团队可能有四个工作流程状态,分别是“待办”、“进行中”、“代码审查”和“已完成”。他们会将代码审查状态的 WIP 限制设置为 2。这个限制看似很低,但其实是有充分理由的。
开发人员通常更愿意编写新代码,而不是花时间审查别人的工作。低限制会鼓励团队特别关注处于审查状态的事务,并在提出自己的代码审查之前审查他人的工作,最终缩短整体周期时间。
可视化指标
核心价值观中有一条着重强调了要在每次工作迭代中不断提高团队效率和有效性。而图表为团队提供了一种可视化机制,确保他们能够继续改进。
当团队能够看到数据时,就更容易发现流程中的瓶颈,并消除这些瓶颈。看板团队使用的两种常见报告是控制图和累积流量图。控制图显示了每个事务的周期时间以及团队的波动平均值。
团队的目标是缩短事务从产生到解决的整个时间周期。在控制图中看到平均周期时间缩短就意味着成功。
累积流量图可显示处于每种状态的事务的数量。当任何指定状态下事务的数量增加时,团队可以轻松发现障碍。处于“进行中”或“审查中”等中间状态的事务尚未发送给客户,当工作向上游合并时,这些状态中的障碍会增加出现大规模集成冲突的可能性。
持续交付
持续交付 (CD) 是指频繁向客户发布工作的过程。持续集成 (CI) 是指在一天当中以增量方式自动构建和测试代码的做法。两者共同构成了 CI/CD 管道,对于 DevOps 团队在确保高质量的同时更快地交付软件至关重要。
看板和 CD 互为补充,相辅相成,因为这两种技术都注重实时(以及逐一)交付价值。团队向市场推出创新产品的速度越快,产品的竞争力就越强。而看板团队专注的正是:优化与客户之间的工作流程。
Scrum 与看板
看板和 Scrum 虽然具有一些相同的概念,但它们是截然不同的两种方法,不应将它们混淆。
| Scrum | 看板 |
---|---|---|
发布方法 | Scrum 固定时间周期的冲刺(比如两周) | 看板 连续流程 |
角色 | Scrum 产品所有者、scrum 主管、开发团队 | 看板 持续交付或团队自行决定 |
关键指标 | Scrum 速度 | 看板 周期时间 |
变更理念 | Scrum 团队应尽量不在冲刺期间改变冲刺预测。否则会影响从预估所获得的信息。 | 看板 可随时变更 |
一些团队将看板方法和 Scrum 的理念融合,形成全新的“Scrumban”工作方法。他们借助 Scrum 执行固定时间周期的冲刺,同时利用看板关注进行中的工作限制和周期时间。
对于刚刚开始实施敏捷开发的团队,我们强烈建议您选择其中一种方法,并运行一段时间。如果您的团队准备使用看板方法,请立即使用我们的免费看板面板模板!
Related resources
免费开始使用 Jira 看板模板
查看和推进最重要的工作,最大限度地提升效率。