原文地址:
https://www.atlassian.com/agile/kanban
原文作者:DAN RADIGAN
翻译君:CODING 戴维奥普斯
看板是用于实施敏捷软件开发的流行框架,它需要实时沟通能力和工作的完全透明,工作项目在看板上直观呈现并允许团队成员随时查看每项工作的状态。
对于如今的敏捷开发团队来说,看板是一项非常重要的功能,但看板的工作方法可以追溯到 50 多年前。在 20 世纪 40 年代后期,丰田开始优化其工作流程,而这种工作流程来源于超市用于归类库存货架的方法和原则。超市每次都会尽量将产品库存控制在刚好满足消费者需求的水平,这种做法可以优化超市、消费者和供应商之间的流动效率。当库存水平与消费模式相匹配时,超市就能通过减少多余的库存来提高库存管理的效率,同时超市仍然可以确保消费者需要的产品始终有库存。
当丰田将同样的系统应用到工厂车间时,目标是为了更好地将其库存水平与材料的实际消耗量相匹配。为了能更好地提高效率,在工厂中,工人会在团队之间传递卡片,或者 ”看板“。当生产线上使用的材料用完时,这个看板被传递到仓库,上面会写着需要什么材料、这种材料的确切数量等等信息,仓库会把一箱新的材料发到工厂车间,然后将自己的看板发送给供应商,之后供应商也会做同样的事情。虽然这类技术从 20 世纪 40 年代以来几经迭代,但 Just in time 的理念(或 JIT)仍然是其核心。
看板在敏捷研发团队中的应用
如今,敏捷软件开发团队也能够利用这些相同的 JIT 原则来匹配正在进行的工作量(Work In Progress)和团队的阀值。这为整个开发周期中的研发团队提供了更灵活的计划选项,更快的产出,更清晰的关注和透明度。
虽然该框架的核心原则具有普适性且不会过时,但软件开发团队已经在敏捷实践中取得了相较于其他行业中更突出的成功。在某种程度上,这是因为一旦软件团队理解了基本原则,他们就可以在几乎没有成本的情况下开始实践。与在工厂车间实施的涉及物理过程的变化和大量材料添加的看板不同,软件团队需要的唯一物理因素是板和卡片,那些甚至都可以是虚拟的。
看板的板
所有看板团队的工作都围绕着一块看板,看板是一种用于可视化工作并优化团队工作流程的工具。虽然实物的板也受到一些团队的欢迎,但数字看板是任何敏捷软件开发工具中都必不可少的关键特性,因为数字拥有完整的可追溯性,同时对人的可访问性能实现更轻松的协作。
无论团队的看板是实物还是数字的,它的职责是确保团队工作可视化、工作流程标准化,并立即识别和解决所有阻碍流程的事务。一般看板上有三个类别:To Do,In Progress 和 Done。团队的规模、结构和目标各有差异,可以通过自定义工作流以满足任何特定团队的独特流程。
看板方法极度依赖工作的完全透明性和实时沟通能力,因此看板应被视为团队工作的唯一真实来源。
看板上的卡片
在日语中,看板字面意思是“视觉信息”。对于使用看板的团队,每个工作项目都会以卡片的形式单独在看板上显示。
将工作展示为看板上的卡片的主要目的是,允许团队成员以高度直观的方式审视工作流程,跟踪各项工作进度。看板上的卡片需提供有关该特定工作项的关键信息,使整个团队能够全面了解谁负责该工作项目、正在完成的工作的简要说明、预估该工作需要多长时间等等。数字化看板上的卡片通常还会显示对相关项目人员有价值的屏幕截图和其他技术细节,允许团队成员在任何时间点查看每个工作项的状态以及所有相关详细信息,确保聚焦,能快速识别问题以及具有完全可追溯性。
看板的优势
看板是当今敏捷团队采用的最流行的软件开发方法之一,并为各种规模的团队项目规划提供了几个额外的优势。
- 更灵活的项目规划方式
看板团队只专注于正在进行中的工作,一旦团队完成一个工作项,他们就会从需求池中挑选下一个工作项。项目负责人可以自由地重新调整待办事项的优先级,而不用担心影响团队的工作,因为在看板的工作方式中,当前工作项之外的任何更改都不会影响成员手上的工作。只要项目管理者将最重要的事项放在需求池的顶部,开发团队就可以确保他们为业务带来最大价值。
- 缩短项目周期,提高研发效率
项目周期是看板团队的关键指标。项目周期一般是指一项工作通过团队现有工作流程从开始到完成所需要的时间。通过优化项目周期,可以显著提升团队的研发效率。
如果团队成员都拥有比较接近的技能时,就可缩短项目周期。但当有些工作只能由特定的人完成时,就会成为工作流程中的瓶颈。因此团队一般会采用如代码审查和导师制的方式来帮助传播知识。如果团队的技能树相近,就意味着团队成员可以承担相互交错的工作内容。这也意味着如果有工作停滞了,可以有其他团队成员介入,以保证流程顺畅。例如测试不仅可以由 QA 工程师完成,需要的话开发人员也可以参与其中。
因此在看板框架中,整个团队最重要的职责就是保证工作顺利进行,尽可能地缩短项目周期,提高研发效率。
- 持续部署
持续集成能实现对代码的自动构建和测试,这对于保证代码质量是至关重要的。而持续部署则可以将发布时间缩短到每天或者每小时,这正好可以与看板的工作方式互补,因为这两项技术的核心都是及时(just in time)的项目交付。
团队将创新推向市场的速度越快,其产品在市场中的竞争力就越强,这也是使用看板的团队所专注的:优化团队的工作流程。