[译] Story mapping , 一种可视化构建需求池的方法
通过协作来收集需求,是项目开始时的关键目标之一。不过,多数情况下,从哪开始,重心在哪里是很难决定的。Story mapping 是提高了参与性,通过一面墙,每个人都能够将自己对产品的想法粘上去,之前写的100多页的需求文档简直弱爆了。
Chirag Doshi 将 Jeff Patton 发明的 Story mapping 介绍给我,然后我就发现这是一个在初始阶段用来记录需求的非常有效并且有用的工具。
创建 Story map
Story mapping 是一种树形的自上而下的需求规划方法。先从全局构想出发。通过制定目标来实现构想。而目标是通过完成activities来实现的。若要完成一个activity,用户需要去执行任务。这些个认为可以被转换为用于软件开发的user stories。
Story Map 结构:**目标 > 活动 > 任务 > 故事**
举个栗子,假设我们要做一个在线应用商店,其中的一个目标是“查找产品”,我们来创建一个分支来更好的理解它
有很多方法可以达到这个目标,例如“通过浏览栏目树来查找”,“全文检索”,“推荐产品”等。来,我们用“通过浏览栏目树来查找”来构建Story map。
通过行动来找到需要的产品,用户需要进行一系列任务,
这些任务就可以变成用于软件开发的的User Stories了,
就这样深入到每一个目标分支,创建完整的Story map。根据我的经验,基于项目的大小和复杂度,创建Story map可能会需要3天甚至2周的时间。
以下是一个真实项目的Story map分支,仅供参考,
5天后,完整的Story map是这个样子,
好啦,现在我们都学会了如何创建Story map,再来看看他到底有什么优势。
优点
1. 可视化的展示,能够让所有的Stakeholder对产品的容量和复杂度达成共识。并且间接地知道了项目的大小。
2. 培养了团队的协作及分享能力。
3. 初始阶段通常都是要有规定完成时间的,所以有助于深入并且仅关注重要的功能。在深入规划的阶段把标有“可以有”的功能排除出去,能节省不少时间。
4. 有趣的是,把所有的stories都粘在墙上有助于快速比较stories的大小。
5. Story map 的结构有助于排优先级,方便划分发布版本,划分出MVP。可以横向划,或者纵向划,可以有很多MVP功能也可以很少。
6. Story map 可以作为产品的backlog被转化成敏捷项目管理工具,例如Mingle。
用更多的信息来充实Story map
通常,越多的信息被记录下来越好。“可以有”的stories,需要跟进的问题,替代方案等。用大量的信息来完善Story map。以下是一些实际用例,
1. 用不同的颜色来代表不同的级别,例如,橙色代表Goals,蓝色代表Features,绿色代表Epics,黄色代表Stories。
2. 把线框图放在相关的区域。
3. 使用圆形或者星形标签作为特殊记号:
a. 标出需要达成共识的重要功能。
b. 确定出NB的用户体验和低成本替代方案。
4. 使用小的贴纸来记录备注,假设,后续跟进和疑问。
构建Story map的可行方案
在创建Story map时,定义好一个结构是很重要的,然后根据需要来完善。客观的说,可以在脑海中先构建一种结构然后在进一步深化。通常需要2–3个迭代来得到完善的结构。
“User Journeys” 就是一种可行的方案。通过用户驱动来帮助明确需求。例如,买方,卖方,管理员等。结构就会是 User > Goals > User Journeys > Actions > Stories。
再来介绍另一种可行方案,对于非功能性需求非常有用:NFR > Requirement > Story
大一点的项目可能需要有6个层级。小点的,3个层级就够了。
准备练习
现在,你已经被迫使用Story map来进行下一场表演,下面我们再来看看你需要做的准备工作:
1. 一个有足够多面墙壁的大会议室。
2. 不同颜色的贴纸。
3. 马克笔。要足够的粗,能从很远的看清楚写的是什么。
4. 特殊形状的贴纸(圆形,星形)。
5. 也可以使用白班来粘贴纸。
6. 一台照相机。
收获
当我在创建Story map时,我遇到了一些挑战,并且寻找方法来解决。以下就是一些小技巧,帮助你避免一些陷阱,成功搭建好Story map。
1. 创建 Story map 是处在产品需求探索阶段,始终避免过长时间的讨论,记录所有方案。
2. 频繁的去评估优先级,以避免在无关紧要的事情上花费时间。
3. 在Story map 变得过大之前,经常清理并且重新排序,否则就会变得很难管理。留有足够的走动的空间,看看刚才的照片 :-)
4. 在使用贴纸的时候,仔细点,别让他们折起来,一直牢牢地粘在墙上,拍过照片之后能够很容易辨认。
结论
创建Story map,是一种创建产品Backlog的有效方法,很可视化。参与者能够互相了解,跨越鸿沟,分辨依赖关系,形成大小合适的story。更进一步的是,它能让切割产品发布activities更简单。