用户故事是垂直的切片(译)

User Stories Are Vertical Slices

Posted by Bruce Wong on April 17, 2021

Bruce有话说

很喜欢Humanizing Work公司网站上关于用户故事拆分的文章。周末的时间通读了一下。把有感觉的部分分享给大家。
我们平时拆分用户故事会考虑从业务的角度、功能实现的角度、技术的角度、性能角度、以及优先级的角度等。这么多角度的拆分,可以看到最后好的故事都是“纵向切分”的,而不是分层的“横向切分”。这是为什么呢?他有什么好处呢?接下来让我们一起了解一下吧。

正文

你经常会在好的用户故事中听到“垂直切片”这个词。接下来我们就讲讲与软件架构相关的好的用户故事是什么样的。

“垂直切片”是“一类工作项的缩写,它可以对系统行为进行重要的更改,因此你可能必须接触系统架构中多个层才能实施更改。” 当你将切片称为“完成”时,该系统对于用户而言变得才更有价值。

与“水平切片”相反,“水平切片”是指对一个组件或系统架构某层更改的工作项,该工作项需要与其他组件或系统架构层的更改进行组合才能对用户具有明显的价值。

让我们看一个非常简单的架构。 有一个UI层,一些业务逻辑和一个数据库。 你的系统可能比这更复杂,但是它可能至少包含这三层。
vertical-vs-horizontal-slices

要获得大多数INVEST特性,用户故事必定会涉及所有这3层。 如果不进行UI更改、逻辑更改和持久层更改,我们可能无法交付任何价值。 因此,用户故事是整个系统的“垂直切片”。

有时,这些“垂直切片”非常宽。 当我们进行故事拆分时,我们将会讨论如何在较宽的“垂直切片”中找到较细的“垂直切片”,但是到目前为止,我们已经知道,用户故事应该在跨架构层次上进行切分以创造价值就足够了。

许多新的敏捷团队尝试按架构层划分故事:一个故事用于UI,另一个故事用于数据库,等等。虽然这个故事可能满足小这个方面,但无法做到独立且有价值。

当团队工作在“垂直切片”上的时候,他们应该:

  • 在backlog中明确显示价值
  • 有更多关于价值的对话
  • 尽量避免构建低价值的变更
  • 更快的获得价值
  • 获得更早、更高质量的反馈
  • 更容易看到约束和库存,并可以相应地作出反应
  • 在交付价值时变得更加可预测(因为可工作的软件成为进度的主要衡量标准)

我们可以继续了 ,但这之前有一个想法给你。当我们坐下来讨论成功的敏捷团队的各种习惯以及它们之间的关系时,我们发现,在“垂直切片”上工作可以使其他习惯成为可能,或者至少与其他习惯有关。

看看你的产品待办事项列表中的用户故事吧,有些是你最近完成的,有些是要将来完成的。根据INVEST标准对每一个代办事项进行评估。看看你是否能找到“垂直切片”的故事和“不是垂直切片”的故事。然后,看看能否改进他们。

原文引用