“我们在使用敏捷方法。”在与软件开发团队交谈时,您经常会听到这样的声明。确实如此,根据统计2018年全球大约90% 开发人员在使用敏捷方法。
但是,敏捷并不统一的方法。作为组织开发流程的通用方法,敏捷软件开发设定了共同的价值观和原则,旨在使开发过程更加简化,更加高效,更能响应变化。这些价值观和原则可以在敏捷宣言中找到,其中还包含了建立开发流程的推荐方法。
在现实生活中,这些敏捷原则已经衍生出了相当多正在实际使用的软件开发框架。看板(Kanban)和Scrum是其中最受欢迎和最常使用的开发框架。虽然两种方法都有一个共同的目标,即创建一个高效的开发流程,但是两者还是存在着一些差异。这就是我们今天要讨论的内容。
了解Scrum方法和看板方法的工作原理,可以帮助客户和开发人员理解开发团队的工作节奏,并制定相应的开发计划。
Scrum和看板的基本概念
在我们深入研究Scrum和看板的差异之前,让我们先看一下两个框架的主要概念。这样,更易于我们比较看板与Scrum。两者都在为建立一个自组织团队而设计流程; 但是,采用了不同的方法。
什么是Scrum?
Scrum的名字来自橄榄球术语,意思是球员组成阵型共同占据球权。在软件开发中,Scrum是指组织团队的方法,该方法旨在更高效地开发复杂的软件产品。
Scrum方法哲学是基于这样一个假设 - 或者说事实? - 开发团队在项目开始时并不知道项目的最终成果,而是随着开发过程中不断了解和试探调整,最终完成交付。Scrum通过在每次迭代开始时重置优先级来简化这种调整,迭代在Scrum术语中被称为“冲刺(sprint)”。
我们再来看一个Scrum的核心概念 - 冲刺,即一个2到4周的迭代周期,在此期间需要完成明确数量的开发任务。冲刺有助于将项目范围分解为更容易管理的任务包,能更频繁地交付可运行的软件组件。我们将简要地介绍冲刺计划,计划调整和计划完成的细节。
基于冲刺计划进行开发,并专注于每个冲刺中应该完成的任务项,这使得开发计划具有很大的灵活性。团队从一个“空白的任务列表”开始每个新的冲刺,根据当下的情况和项目需求的变更来制定新的冲刺的开发计划。
kanban-vs-scrum-project-management-for-enterprises什么是看板?
看板方法最初是丰田公司为了优化其工厂库存发明的。在日语中,“看板”是指公告板或卡片。在最初的实践中,工厂生产部门会为某种数量不足的零件向仓库发送“看板”,要求补足数量。然后,仓库将“看板”发送给供应商以订购更多相应的零件。
从这个例子中,我们可以看到看板方法专注于当前容量,这也是它引入软件开发领域的主要概念。与Scrum不同,看板方法没有时间限定; 相反,它限定了可以同时执行的工作量。
看板的主要指标之一是“正在进行的任务” ,即当前正在执行的任务。根据看板方法,为了实现最高效率,正在进行的工作任务应限定为与团队的能力相适应的任务数,从而降低任务瓶颈产生的风险。
看板也能很好地适应变化,这很重要,因为变更会在项目的任何阶段产生,并需要随时添加到要执行的任务池中。
Scrum与看板的主要区别
如果我们想比较Scrum和看板,我们需要看看两个框架组织工作流的方式以及它们使用的主要形式和定义。
角色
角色的分配是Scrum和看板之间的第一个重大区别。 在Scrum中,您总能在团队中找到三个主要角色:
- 产品负责人,负责产品。 产品负责人分析客户的产品需求,并将其转化为团队的任务。产品负责人还负责确定任务的优先级,并决定发布版本实现的功能项。
- Scrum导师,负责团队。 首先,Scrum导师将Scrum原则引入其团队并协助团队成员实施。此外,Scrum导师管理特定冲刺所需的人力资源分配。
- 开发团队,负责开发工作。 团队成员完成开发任务。Scrum团队拥有多种技能,其中一些技能通常合并到一个人。团队以自组织原则工作,协助彼此完成工作。
反之,看板对团队角色没有严格的要求。 也许会有一个产品负责人管理项目backlog中的任务,但除此之外,团队是自组织的。
kanban-vs-scrum-project-management-for-enterprisesWorkflow 工作流
正如我们所说,Scrum开发是在迭代中进行的,Scrum定义每次迭代中要完成的工作任务。看板则限定了当前正在进行的工作任务数,而没有具体的时间限定。让我们来看看这两种方法的实际应用。
Scrum工作流
项目计划从定义backlog开始,即应该交付完成的产品的用户故事列表。在这种情况下,Scrum使用以下主要概念来帮助我们理解计划和发布过程:
- 产品backlog - 代表开发项目主要的“待办事项”列表。产品backlog包括完成项目所需的所有功能和bug修复。需要被安排开发的新需求和新发现的bug被持续更新到产品backlog。产品负责人负责管理backlog,使其与客户的反馈和建议以及团队的工作进度保持同步。一些任务的优先级在优先级评级中上下移动,一些任务可以作为需求变更被添加,还有些任务可以被彻底删除。
- 冲刺backlog - 由具体某个冲刺中要完成的任务组成。冲刺backlog中的任务是被选中作为冲刺结束时要提交的功能或组件。虽然冲刺backlog也允许一定的灵活性和修改,但冲刺的目标应该保持不变,并且应该将变更请求控制在最低限度。
- 冲刺目标,或增量 - 作为冲刺结果提供的可运行产品。通常,以演示可工作的已完成功能或组件作为冲刺结束。在这方面,一个重要的概念是“完成”的定义,它指的是每个用户故事都要完成。“完成”的定义可能根据用户故事而有所不同:它可能包括多个任务,例如开发,测试,设计,文档和演示,也可能涉及不同的团队成员。
每个冲刺都以计划阶段开始,选择接下来冲刺所要完成的任务。对于制定计划过程,通常整个团队都要参加,包括产品负责人和Scrum导师。团队决定在冲刺结束时提交的内容,并从产品backlog中选择相应的用户故事。通过这种方式,团队整合了冲刺backlog。
在冲刺期间,团队每天召开“每日立会”,讨论他们的进展以及可能遇到的问题。每日立会的目的是尽早发现问题并快速找到解决方案,以免破坏冲刺流程。
冲刺完成后,客户将审查完成的功能。在冲刺回顾期间,团队有机会收到有关其交付物的反馈和变更请求(如果有的话)。
与此同时,团队会召开冲刺回顾会议,分析他们刚刚完成的冲刺并找到可以改进的地方。回顾完成后开始新的迭代,新的冲刺又从计划阶段开始。
kanban-vs-scrum-workflow-sprint-development图片来源: Scrum.org
看板流程
在看板方法中,没有必须完成一定数量工作任务的时间计划。相反,看板专注于匹配团队的开发能力与当前正在进行的工作任务数。
看板项目流程从一个包括需要完成的所有任务清单的backlog开始。每个团队成员从backlog中为自己选择一项任务,并专注于完成它。任务完成后,成员再从backlog中选择下一个任务,依此类推,直到backlog清空为止。backlog按照优先顺序,把最紧急的任务放在最顶层,便于团队成员优先选择。
在看板项目周期内,正在进行的工作任务数量都不超出团队的工作容量至关重要。为此目的,可以根据可分配工作量为各种类型的工作任务设定限制。
产品负责人可以根据需要随时设定或调整backlog中的任务优先级,因为backlog管理不会影响到开发团队的工作绩效。开发团队只关心正在进行的工作任务,且只有在当前任务完成后才会关注backlog。
每项任务都沿着“待办” - “进行中” - “已完成”的状态路线行进。当然,看板也支持“已完成”概念的定义,即每个任务被接受的标准。
最终,已完成的任务组成产品组件,以便度量交付产品所需的时间。在看板中,它被称为“周期时间”,对周期时间的度量为过程优化提供了许多机会。当然,所有团队成员都在努力尽量缩短周期时间,并寻找解决开发瓶颈的方法(如果有的话)。
在这种情况下,让团队成员具有多重技能至关重要。如果只有一个人拥有某种技能 - 例如,如果你只有一个测试人员 - 那测试就会成为瓶颈。所有测试任务都将排队等待,以致于产品交付延迟。
kanban-vs-scrum-managing-large-teams图片来源: DZone
总而言之,我们可以说两种方法的主要区别在于,Scrum方法努力使团队在指定时间内完成预定工作任务,而看板方法则确保正在进行的工作任务永远不会超过设定的团队最大工作量。
看板与Scrum的任务板
说到Scrum和看板,我们不能忽略其任务板。两种方法都使用任务板作为可视化工具来规划和监控项目进程。任务板反映了Scrum和看板的主要概念,及相应的组织方式。
虽然有很多工具用于创建并管理Scrum和看板的任务板(例如,Jira和TargetProcess两者都支持,而Trello最初是一个看板工具,但也可以扩展用于Scrum),你也可以使用带有标记和即时贴的纯白板。关键是学习如何使用任务板,而与具体的工具无关。
Scrum任务板
Scrum任务板至少应包含三列,分别标记为“待办(To Do)”,“进行中(In Progress)”和“已完成(Done)”。如果需要,您还可以添加“用户故事”列,显示所有的用户故事,或在“已完成”之前插入“测试”列,但最终它们都会及时显示当下的任务进度。
在每个冲刺开始时,所有任务都在第一列中,而在冲刺结束时,它们都应该按照“已完成”的定义移动到最后一列“已完成”中。之后,就可以清空任务板为下一次冲刺做好准备了。
Scrum任务板总是由为同一产品开发的一个团队所拥有。通常,Scrum团队成员是跨职能的,包括所有技能,从开发人员和架构师到测试人员和技术文档撰写者。
kanban-vs-scrum-custom-software-engineering-team-management图片来源: Atlassian
看板任务板
看板任务板的外观和工作方式与Scrum相同,但有一个主要区别 - “进行中”列中显示了任务限定量。正在进行的任务数量不能超过该限定量。
看板存在于整个工作周期中。 因为它们不受任何特定时间段的约束,所以没有必要重置。
因为看板是用于整个工作周期的,所以它们不属于某一团队,可以在不同团队之间共享。在看板中,任务板可用于特定的工作,例如营销任务板等。
kanban-vs-scrum-development-boards-top-software-engineering-companies-approach图片来源: Atlassian
Scrum或看板选用哪个?
如果您一直在等待这个问题的确定答案,我们可能会让您失望。到目前为止,我们希望我们能够证明这两种方法都有其优点,并且两者都有助于建立敏捷开发流程。当然,我们提供了一些建议,可以帮助您选择最适合您团队的方法。
使用Scrum方法,如果:
- 您可以比较容易地将项目范围划分成能在两周内完成的任务包。
- 您需要对整个项目具有高度的可预测性。 Scrum专注于将冲刺中的需求变更降低到最小程度。
- 团队中有很多新成员。 在Scrum中,新成员将更容易理解团队纪律并进行改进。
使用看板方法,如果:
- 您预期项目中会发生频繁的需求更改。
- 项目很难划分出可在两周内交付的产品组件。
- 您的团队训练有素,可以信任他们在没有严格截止日期的情况下分配任务。
您还可以随时组合这两种方法! 甚至还有一种称为Scrumban的方法,其中包含Scrum和看板的方法。在Scrumban方法中,您可以在短迭代周期内完成工作,并使您的工作量保持在一定限度内。超出限定量的任务会触发新的迭代。
如您所见,可以像您希望的那样灵活和自由地选择项目管理方法。没有任何规则是一成不变的,您可以根据自己的项目需要对项目管理方法进行裁剪,组合和使用。实际上,选择项目管理方法的主要标准始终是您的项目成功和团队对工作流程的满意度。
原文:Kanban vs Scrum: choosing the best Agile project management framework
网友评论