时间: 2021-07-30 09:41:35 人气: 7 评论: 0
“用户故事地图”以直观易变的方式进行项目的良好沟通,大多数人看重的是地图的形式部分,横向是讲述大故事的部分,纵向是逐步的细化。但是最关键的是产品的构思框架,让团队成员对想要做出的产品一目了然,大大提高了团队之间相互协作的默契度。
在公司推行敏捷开发的过程中,产品常常抱怨每次迭代就向需求池里添加本次迭代的需求,若干次迭代后,需求池便变得零碎而混乱,产品面临既无法理清各个需求间的逻辑关系,也很难清楚的知道每个用户故事被开发的程度。中间尝试过使用“需求分类”来将需求按功能模块归类,但效果欠佳。
反思后,认为问题出在:
为了解决上述问题,我了解到“用户故事地图”这一方法,并进行了一点研究。下面是对这个方法论的一个梳理,附带一些帮助组织和思考的小工具。
用户故事地图已经成为敏捷需求规划中的一个流行方法。用户故事地图可以将你的backlog变成一张二维地图,而不是传统的简单列表,用户故事地图可以解决以下问题:
只见树木不见林,重要的待办项容易淹没在各种细节中看不到全貌,因而难以排列优先级:
一般来说用户**按照从左到右的顺序来使用你的系统(用户故事地图)
橘色便签表示 用户行为(user activies),由一群相似的人在相似时间完成的任务组成,旨在达到特定的目标。当你阅读整个地图顶部的活动时**发 现,这些活动组成了一条叙事主线。
蓝色便签表示 用户任务(user tasks),是描述人们做什么事情的动词短语,用以表示用户如何使用软件来达成他们的目标。按照从左到右的顺序组织卡**的摆放形式,先发生的任务在左,后发生的在右。
**色便签表示 用户故事(user stories),**色便签在每个用户任务下自上而下排列,便于我们确定优先级。
最后,正如我们上文所言,为了缩短项目周期,我们要在“用户故事地图”上进行MVP的内容筛选,把最重要的内容放在前面。横向移动用户目标,纵向移动深挖出的细节,然后用胶带或其它工具做出分隔,以此划分不同版本。
“用户故事地图”以直观易变的方式进行项目的良好沟通,大多数人看重的是地图的形式部分,横向是讲述大故事的部分,纵向是逐步的细化。
但是最关键的是产品的构思框架,让团队成员对想要做出的产品一目了然,大大提高了团队之间相互协作的默契度。
要注意的一点就是,功能的开拓要适度,否则这幅用户地图永远都画不完。
在支持项目的过程中,初期**选择采用「故事编写工作坊」的形式来梳理产品的用户故事地图。
这个**议,就是让所有参与者一起用便签,一张一个动作,从左至右按照时间线,描绘用户在产品使用场景下所发生的所有用户行为。
重要流程分成四个步骤:产品定义——刻画用户画像——梳理骨干故事——深挖细节——划分发布计划。
下面简要介绍下这四步分别需要做哪些事情。
一般是在故事编写工作坊准备阶段,首先由PO主导产出,聚焦于具象化产品的机**:
将这些内容记录在黑板上,与大家讨论达成共识,最终确定产品定义。
可以从产品图景练习开始,采用电梯测试或者封面故事的形式,团队描述一下一年之后在杂志上看到自己的产品介绍是怎样的。这可以帮助我们识别团队对产品方向是否有一致的理解,或者团队是否需要作进一步的研究(比如进一步的用户访谈和原型测试等) 。
简单来说,需要明确「我们为什么要做这个?」以及「用户为什么要用这个?」明确业务诉求和用户诉求为之后的设计提供了指导,不仅可以在接下来讨论的过程中不易迷失方向,还可以避免陷入设计细节的纠结。
下面针对优先级最高的目标开始讨论,开始头脑风暴:
基于这些问题,罗列不同类型的用户,讨论他们能从中得到什么好处,使用的动机,需要的功能等。
精炼出若干类用户,制成“用户画像”卡**,卡**上的内容不用很详细,可以描述出基本特征即可,给每个类型的人群起一个人的名字,张三李四随意,目的是方便日后讨论,以后这个名字就代表这一类人群,再对每个用户做一下简单的诉求描述。
最后,把这些写着用户类型的卡**,按照优先级排好,重要的用户放在上面,贴在白板上。
从最重要的用户类型下手,这里依然使用头脑风暴,按照时间顺序挖掘,描述这个人在一天中如何使用产品的情景,“首先他**怎样,然后怎样,然后……“这些故事可以比较概括,如“用户注册”或“修改日程”,团队中安排专门的人负责记录把每一件事都写到一张便利贴中,按照时间顺序从左到右排好便利贴。
当有遗漏的故事被挖掘出来时,可以随时调整卡**顺序。在这个过程中,做到了团队成员对所要做的东西达成了一致,产品创意精彩的细节部分被所有人所消化。
为了方便大家理解,在这里举一个大家生活都**发生的例子。故事的整个范围:起点是起床——终点是到达公司。闭上眼睛,回想一下今天早上起床的过程。把这段故事分成这样几个阶段,起床——洗漱——穿衣——出门——上班途中——到达公司。
在真实做项目过程中,大家在这一步可能**写出不同颗粒度的故事,需要设计师把控故事的大小,这段故事可以再往下梳理一层颗粒度更小一点的故事。比如起床就可以再拆分为:闹铃响了——挣扎——关闹钟——下床。剩下的故事卡**都可以继续这样拆分归类。
这样我们骨干故事就有两层:一级故事和二级故事,故事的发生从左至右是一个叙事流。
注意点:
在完成上面的“大故事”后,“用户故事地图”的框架已经结束,下面要做的是深挖细节。
在刚刚梳理的每一个二级故事下面做停留,去拆分二级故事获取更多细节内容。如果二级故事是一个海平面的话,那二级故事以上就是海平面故事,那现在我们需要关注的是海平面以下更多不可见的故事。
一个海平面级别的任务,是指我们**连贯完成的任务,通常在完成之后才去做其他事情。比如“洗操”,就是一个海平面级别的任务,因为你不**在洗到一半的时候就转去打扫浴室。类似的任务“洗操”可以分解成很多小的子任务,如“ 调节水温”、“洗头发”,还**涉及诸如“用丝瓜瓢搓操去死皮”之类的事情。
请记住,人与人不同,你可以从他们做任务的方式中看出这种行为差异。 可以用“鱼”来表述这个级别的任务,因为它们在海平面之下。
项目组**围绕这个故事写出很多细节来。我们可以按照以下几个维度对细节进行归类,分别是:故事细节、想法、痛点、机**、情绪。其中情绪可以通过固定的问题获得,也可以通过用户想法、用户的痛点结合主观判断。
在这个过程中,先让大家在一定时间内按照自己的想法写出来,每一条写在一张卡**上,做到相互不干扰,然后每个人出声说出自己的卡**内容,让所有人了解并贴在墙上。
项目组人在写想法的时候,相当于脑暴的过程,这时可以通过一些问题来刺激大家脑暴出更多的内容,比如:
回到我们的例子,我们洗澡的时候有正常的流程,但当没有热水时这个流程就**发生变化。同样,在真实业务当中,这类情况将更普遍的发生,所以这一步我们将尽量多的关注到所有场景的故事。写下用户**做什么事情,并把它们添加到地图中。
细节、替代、变化和异常,做完这步,我们已经获取到了足够多的细节信息,整个项目组都**做到对产品又见森林又见树木的状态。
但同时,这里我们的故事已经变得很丰满,甚至变得臃肿,所以沟通确认变得极为重要。我们在这步需要花费相对多的时间,大家对内容进行对标、充足讨论,把公认的留下来,无用的剔除掉。
依次类推,当所有故事梳理完成之后,就完成了如下这样一张完整的用户故事地图了。
当全景图出现的时候,你再来合并掉同时的、无关的,你**看到在路线的关键节点上,哪些用户体验非常重要。从用户故事图景出发,来看自己的产品,**有一种豁然开朗的全局感。
注意点:
故事地图完成后,我们**发现,地图涵盖了多个用户故事和叙事主线,包含了项目人员所有的愿景,但是它太庞大了,如果同时研发这些功能点,项目日期几乎看不到头。
这时候需要问:“要达到XXX效果,我们需要用到所有的功能码?”也就是说,我们需要聚焦于系统外的预期成果来决定系统内需要什么功能,区分要做的故事细节的优先级。
比如写一张“在几分钟内出门”的卡**,贴在故事地图左边靠近顶部的位置。现在,想象有一条线从左到右划分整张故事地图,有点像一条彩带。然后,把“几分钟内出门”不需要做的卡**全部移到这条切分钱的下方。不要移动活动卡**,即使该活动下方没有任何任务卡**。没有任务卡**的活动卡**,提醒我们今天早晨不需要达成这个目标。
可以通过思考将不同的目标挂在左侧尝试这一招。就像“过一个最豪华的早晨”或“两周长假出行前的早晨”**发现叙事主线在这个过程中表现出相当好的延续性,只需要通过添加或删除任务,就可以帮助你达成不同的目标。
首先,我们要聚焦于最首要的一个目标成果,即进行MVP的内容筛选识,别出第一个发布要包含哪些内容,把最重要的内容放在前面。
其次,我们水平划分用户故事地图上的便签,在划分的每一个发布的左边贴上便签,上面写上少量文字描述预期能产生的成果。
再次,在各个发布之间移动卡**,尽可能匹配各个发布的成果预期。
最终,团队得出一个增量发布策略,可用于管理更新整个内容管理系统所渺及的工作,增量发布策略也使得团队能够在每一次发布之后得到实实在在的收益。在整个地图的左侧,是发布的名称列表,这些名称标识着目标成果。这就是发布路线图 。
聚焦于特定的目标成果,这是排定开发工作优先级的秘密。
这样,自上而下,我们可以划分出不同的Release;同时因为每个Release都是和时间线平行的,确保了在放入Release的过程中必须考虑故事的完整性。现在如果我们专注于从左到右完成第一行的**色便签,我们就可以确保很快发布一款包含了最最基本功能的系统。
这样我们就可以验证我们的系统整体架构可行。同时也可以帮助我们对系统的功能进行端到端的测试,确保我们可以从用户处获取到反馈,知道我们是否解决了它们的问题(提供了商业价值)。
随着软件的不断迭代,用户故事地图也**不断向下推移。此时,我们就完成了这个产品的发布路线图。
注意点:
首先,我们需要对大家写的所有卡**进行对标,排除无效故事。
其次,因为我们一般项目时间不够,开发资源紧张,不可能一口吃个胖子,所以把要做的事情达成共识排出优先级变得尤为重要。
最后,并不是所有的故事卡**都需要在同一时间细化,在真实业务中有些模块的故事是无法一开始就梳理清楚的,所以可以先写个占位符,待合适的时机再做拆分。
我们通过这种一目了然、格式一致的故事地图,让项目组所有人都获得足够的信息,让项目有一个明朗的开发流程。
上图中,橙色的卡**代表的是粗粒度的用户故事,可以理解为Epic-史诗故事,Jeff Patton称之为用户的活动(User Activity),这些用户的活动代表了产品的骨架,我们从左到右按照时间线来排列这些活动,排列好之后,系统的主要的业务流程就呈现出来了。
需要注意的是,为了找出这些用户活动,第一步要做的是做角色建模,把用户角色先提炼出来。在每个史诗故事下面,我们可以拆分出更细粒度的用户故事。这些用户故事加在一起就构成了产品需要做的主要功能,并且已经按照系统骨架组织好了。
在横向的纬度,我们使用橙色的虚线把这些卡**横切成了3个泳道,每个泳道代表一个发布。所以,从这个故事地图上看,横向代表的是系统的骨架,脉络,纵向代表的是重要性,优先级,发布顺序。
我们需要根据用户的价值来思考在这个业务流程上,哪些是最核心、最重要的,我们可以按照提炼MVP(最小可行产品)的思路把核心场景找出来,放到前面的发布中,把低优先级的放到后面的发布中。这样做的目的是做价值驱动,让我们从用户的视角产品核心价值,并且持续地、增量地交付。
故事地图六步法:
用“捕鱼”的比喻来理解:
我想强调一点,在复杂产品中,不要试图在项目开始就做一套保罗万象的决策。相反,故事是一直伴随着产品生产周期的,我们要把各个决策分散到项目过程中。为此我们要确保一个获取信息的过程方法,这就是一个良性的用户故事地图。
这里再做一个比喻,良性用户故事地图像一个捕鱼的过程。
首先,不同大小的网用来捕获不同大小的故事,第一遍我们可以用大网眼的渔网捞一遍故事池,以此得到所有大故事。通过大故事,形成对产品的整体感觉,接下来用网眼稍微小一些的渔网得到中等大小的故事,暂时还不用顾及那些小需求。最后才是最小的需求。
其次,捕鱼表达了另外一层含义,故事**像捕鱼一样,随着时间的推移**成长,**有新出生的鱼,也可能**死亡。有些需求在某一阶段不重要,但**像鱼一样成长,随着产品阶段的不同变的越来越重要,有些需求我们曾经认为很重要,但是**随着产品阶段不同逐渐变的重要性**降低,有时甚至降低到我们任务这些需求已经无效。
最后,正如捕鱼一样,不可能捕捉到这个区域所有的鱼,我们也不可能捕捉到所有的需求,另外,在捕鱼的时候也可能捞到一些废弃物和残骸,就是不是故事的故事。
从上面的比喻可以看出来,项目前期是不可能正确的捕捉并写出所有的需求所有故事的,用户故事地图这个方法也不可能在单一阶段捕获出所有的用户故事。用户故事不是二维的产物,应该是三维的,需加上时间这个维度,随着时间的推移以及产品不同阶段加入产品新的用户故事。捕捉故事的渔网网眼也**一直变化。
参考资料:
《用户故事地图》,Jeff Patton,清华大学出版社
《如何做好用户故事地图?来看蚂蚁金服的实战案例!》
《使用Leangoo玩转故事地图》
本文由 @扶木桑 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议