XP里故事要INVEST和任务要SMART

01 开端

XP中,我们以用户故事形式描述需求,很容易将故事卡误认为是整个故事XP中的故事包含三个部分:卡片(故事的物理媒介),对话(围绕故事讨论)和确认(验证故事)。用户故事是这样,我们不希望客户或用户以与程序员相同的视角看待将要实现的系统,故事充当了一种中间语言,双方都可以达成共识以有效地开展进一步的沟通与合作。

 

02 故事要INVEST

好故事的特点是什么?首字母缩略词“INVEST”提醒我们,好故事是:

  • I – 独立的Independent
  • N – 可商议的Negotiable
  • V – 有价值的Valuable
  • E – 可估算的Estimable
  • S – 够小的Small
  • T – 可测试的Testable

Independent

如果故事是独立的,则最容易使用。 也就是说,我们希望它们在概念上不重叠,并且我们希望能够按任何顺序安排和实现它们。事实上我们不能总是做到这一点,有时我们可能会说第一个报表需要3个故事点,然后其他每个报表各需要1个故事点

Negotiable

一个好故事可以商议。 它不是功能的明确约定。 相反,细节将在开发过程中由客户和开发人员共同创建的。 一个好的故事抓住了本质,而不是细节。 随着时间的流逝,这张卡片可能会获取更多信息,测试思路等,但是我们现在不需要来安排故事优先级或安排故事的时间。

Valuable

一个好故事需要有价值。 我们不在乎对任何人的价值,但必须对客户有价值。 开发人员可能有合理的考虑,但关键要客户认为它们很重要。尤其是在拆分故事时。 将整个故事视为多层蛋糕,例如网络层,持久性层,逻辑层和表示层。 当我们分解一个故事时,我们只提供部分蛋糕。 我们希望为客户提供整个蛋糕的实质内容,最好的方法是垂直切层。 开发人员通常倾向于一次只在一层上工作(并使其正确)。 但是如果没有表示层,那么完整的数据库层(例如)对客户的价值就很小。

Estimable

一个好故事是可以估算的。我们不需要确切估算,能帮助客户对故事的实现进行排序和安排日程即可。可估算取决于与客户协商:因为很难估算我们不理解的故事;也取决于规模:较大的故事很难估计;最后,取决于团队:什么样的故事容易估算将取决于团队的经验(有时,团队可能必须将故事分解到一个(时间盒)探针,会给团队带来足够的信息来做出像样的估算,故事的其余部分将真正实现期望的特性。)

Small

好故事往往较小。故事通常最多只能代表几个人周的工作量(有些团队将工作量限制在几个人天之内)。 经验告诉我们一旦超出这个规模,似乎很难知道故事的范围。 如果说通常需要我一个多月,通常会隐含因为我不知道所有的信息。较小的故事往往会获得更准确的估算。

故事描述也可以简短。记住,细节可以通过与客户的对话来阐述.

Testable

一个好故事是可测试的。 编写故事卡带有一个隐含的承诺:我了解自己想要的东西,可以为此编写测试。通过在实施故事之前获取客户编写的测试,团队可以提高工作效率。可测性一直是很好的需求特性; 尽早编写测试有助于我们了解是否达到了这个目标。

如果客户不知道如何测试某个故事,则可能表明该故事不够清晰,或者它没有反映出对他们有价值的东西,或者客户仅需要测试方面的帮助。

团队可以将非功能性需求(例如性能和可用性)视为需要测试的内容。 弄清楚如何执行这些测试将有助于团队了解真正的需求。

针对以上所有这些特点,从提出故事,估算故事到实施故事的反馈环会帮助教导团队需要进一步了解的信息。

03 任务要SMART

一个用于创建有效目标的首字母缩写是:“SMART”

  • S – 具体的Specific
  • M – 可度量的Measurable
  • A – 可完成的Attainable
  • R – 相关联的Relevant
  • T – 限定时间的Time-based

这些也是被描述良好的任务的特征。

Specific

任务应该是具体的,每个人都可以理解其中涉及的工作。 这有助于防止其他任务与之重叠,并帮助人们了解这些任务是否组成了完整故事。

Measurable

关键度量是指,我们可以将其标记为完成吗?团队需要就此达成一致,应该包括预期功能已实现测试已包含代码已重构

Attainable

任务所有者应该认为能够完成任务。 XP团队有一个规则,任何人都可以在需要时寻求帮助。当然,首先应确保任务所有者能够胜任这项工作。

Relevant

每个任务应该是有相关性的,共同为了完成眼前的故事。为了方便开发人员需要将故事分解成一些任务,但客户仍然可以期望每个任务都能被解释清楚和说明理由。

Time-Based

任务应该是限定时间的:即限制在特定的时间范围内,不需要以小时或天为单位进行正式估算,但应该有一个期望值,以便人们知道何时应该寻求帮助。 如果一个任务比预期更困难,团队需要知道他们必须拆分任务,更换玩家或做些有助于完成任务(和故事)的事情。

04 最后

当讨论故事,写卡片和拆分故事时,INVEST可以帮助我们记住好故事的特征。在创建任务计划时,应用SMART可以优化我们的任务。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

error: Content is protected !!