您一开始实施的故事可以随着时间的推移而完善。您不需要认为每个故事都必须是用户将要使用的最终版本。
例如,在最近的一个项目中,我们必须开发一个应用程序,该应用程序涉及对各种网站进行索引,并将它们与用户创建的过滤器进行匹配,最后提醒用户匹配项(类似于 google 类固醇警报)。
如果从一个角度来看,只有一个故事——“作为用户,我想从匹配的页面中获取警报”。但是从“我们想要减轻的风险是什么”的另一个角度来看待它。第一个风险是与谷歌警报相比,用户不会获得相关或更好的点击。第二个风险是学习构建它的技术。
所以我们的第一个用户故事只是“作为一个用户,我想要相关的点击”,然后我们只在一组硬编码的页面和硬编码的过滤器上为一些早期用户构建了命中匹配算法,并得到了他们的反馈。
实际上,这里可能会有一些来回,有多个较小的故事来捕捉学习,例如“作为用户,我希望更多地优先考虑 URL 中的匹配”等。这些故事来自我们迭代内容时的反馈早期用户考虑“相关点击”。
接下来,我们将其扩展为“作为用户,我希望来自特定网站的点击”,我们构建了索引架构来抓取用户指定的网站并在其上进行点击匹配。
第三个故事是“作为用户,我想定义自己的过滤器”,我们构建了系统的这一部分。
通过这种方式,我们能够逐个构建架构。通过大部分初始部分,只有早期用户可以使用系统,并且许多数据被硬编码等。
过了一段时间,早期用户就可以完全使用系统了。然后我们添加了允许新用户注册的故事并向公众开放。
长话短说,你首先实现的故事只能实现最终故事的一小部分,硬编码和搭建其他一切。然后你可以随着时间的推移对其进行迭代,直到你得到你可能真正向公众发布的故事。