用户故事(User Story)是从用户的角度出发来描述用户渴望获得的产品功能,而不是从现有资源或者流程出发用专家的视角来研发产品功能。
《人类简史》的作者就指出,人类历史其实是故事来构成的,我们更习惯于利用故事来进行思考和理解这个世界。另外,“Scrum之父”萨瑟兰博士在《敏捷革命》中,提倡要学会写“用户故事”,这种方法不仅仅可以用在产品设计上,也可以用在每一个人的工作中,它能帮你确定目标,完成意志、动机、决心的统一和实践,避免徒劳无功的浪费。

一个好的用户故事包括三个要素:
第一个要素是角色,就是故事的主角,谁来使用这个功能,他的用户画像是什么?产品经理要避免先入为主,为自己,而不是为真正的用户进行设计。
第二个要素是活动,也就是用户习惯于怎么样使用这个功能,而不是我们可以提供什么样的功能,从专家和用户,特别是小白用户的实际情况出发会发现差异非常大。
第三个要素是价值,也就是产品功能为用户创造什么样的价值,这是核心,伟大的公司都是以客户为中心,为客户创造价值为起点,用户故事当然也不例外。
例如设计一个用户进行汽车保养的故事,如果从产品经理从专业技师的角度出发,让用户自主选择配件,机油等,估计大多数用户都会因为复杂性而放弃;相反,如果从用户出发,让用户只需要输入自己的车型和行驶公里数,再根据用户画像,就给用户一个合适价位的保养套餐,大多用户就可以完成相应的操作,如果后续根据导航数据,还可以直接给出用户保养计划,然后利用节约的营销等成本和用户共享,就可以为用户创造更多价值,有机会实现共赢,从而获得忠实用户。
极限编程创始人Ron Jeffries利用3个C来描述用户故事:
第一是卡片,也就是用一张卡片来记录故事描述,工作量估计等。
第二是交谈,产品经理和用户的交流沟通细节。
第三是确认,通过验收测试来验证用户故事被正确完成。
好的用户故事符合INWEST原则,也就是Independent,Negotiable,Valuable,Estimable,Small,Testable。

独立性:一个用户故事尽可能独立于其他的用户故事,这样后续的估计会更加容易。
可协商性:故事内容是可以进行协商的,具体细节在沟通阶段产生,这也是敏捷研发的特点。
有价值:这个毋庸多言,是用户故事所必需的。
短小:一个好的故事尽可能短,在敏捷研发中可以在一个Sprint完成,当然,一个复杂的故事可以拆分为多个独立的故事。
可测试性:用户故事具有验证标准,可以确认完成情况。
从用户故事出发来进行产品设计,是以用户为中心的经营理念的具体实践。如果产品经理充分利用用户故事这个工具,让用户故事更加有效和完整,可以让敏捷研发的速度加快,让团队达到事半功倍的效果。

