“我们使用敏捷开发。”在与软件开发团队交流时,你会听到很多这样的说法。根据统计,2018年全球约有90%的开发人员在使用敏捷开发。Choerodon猪齿鱼团队也是其中之一。
但是,敏捷并不统一。作为组织工作流程的一般方法,敏捷软件开发设定了共同的价值观和原则,旨在精简开发流程,敏捷有效地响应变化。这些价值观和原则可以在敏捷宣言中找到,当中就提供了一些建立开发流程的建议。
在实际应用中,几种软件开发框架已经体现了这些敏捷原则。其中Kanban 和 Scrum是最受欢迎和经常使用的。这两种方法都有一个共同的目标,即创建一个有效的工作流程。今天这篇文将围绕他们之间的差异进行讨论。
Scrum和Kanban的基础知识
在深入研究Scrum和Kanban之间的差异之前,先看一下两个框架的主要概念,以便之后可以更轻松地进行Kanban与Scrum的比较。虽然它们都旨在建立一个自组织团队的流动,但是有些方法不同。
▌Scrum是什么?
Scrum的名字来自橄榄球术语,表示“争球”的动作。在软件开发中,Scrum是指采取组织团队合作的方法,以便更高效地开发复杂的软件产品。
Scrum基于开发团队在开始时不知道项目的结果这个假设,他们会随着工作的进展不断学习和适应。Scrum旨在通过每次迭代开始时重置优先级来简化这种适应,这在Scrum术语中称为“Sprint”。
在这里,大家来看一个Scrum的核心概念——冲刺(Sprint),冲刺是用2到4周的时间来完成一定量的工作。Sprint有助于将项目范围分解为更容易管理的任务,并更频繁地交付组件正常运行的软件。
在冲刺阶段,开发团队只需专注于每个sprint中应完成的任务,这为项目规划阶段提供了极大的灵活性。新冲刺开始时,开发团队会重新规划本次冲刺的任务,规划时需要考虑到上个冲刺任务的完成情况以及项目的新需求。
▌Kanban是什么?
Kanban最先由Toyota 提出,旨在优化其工厂库存。在日语中,“Kanban”是指板或卡。在最初的应用中,一个库存越来越少的工厂部门会向仓库发送“Kanban”来请求补货。然后,仓库将“Kanban”发送给供应商以订购更多库存。
从这个例子中,大家可以看到Kanban专注于当前容量,这也是用在软件开发的主要概念。与Scrum不同,Kanban没有时间限制,相反,它限制了可以同时执行的工作量。
看板的主要指标之一是“正在进行的工作” 。Kanban表示,为了实现最高效率,正在进行的工