用户故事的前世今生
“用户故事”(User story)是敏捷开发中产品需求方面一个重要实践方法,每一个参与敏捷开发的成员都需要了解、掌握用户故事。关于用户故事实践,本公众号会持续发布系列小文,与大家共同分享。
要想与人相处相知,“知根知底”是必要的,对于“用户故事”也是如此。所以,我们首先来了解一下用户故事的“前世今生”。
用户故事最早的概念来自于1996年Kent Beck提出的极限编程方法,但是当时的概念提法并不叫“用户故事”,而是“故事”(Story)。极限编程是一种轻量级的软件开发方法,与SCRUM和Kanban相对比更偏向于技术、工程方面。在极限编程中,提出了很多敏捷开发中的重要概念,“故事”就是其中之一。上图所示的就是描述极限编程方法的重要书籍:《Agile Development》(中译名:《敏捷开发的艺术》),在本书中关于“故事”,提出了很对基础性的描述,包括需要客户参与、卡片索引、故事的拆分、故事分类等,并且特别指出“故事以客户为中心, 以业务结果描述结果。 它们不是实现细节, 也不 是完整的需求规格。 “
2004年,敏捷大师Mike Cohn出版了用户故事的经典之作《User Stories Applied For Agile Software Development》(中译名:《用户故事与敏捷方法》 )。在这部书中,作者对“用户故事”的概念正式定义,从需求获取、分析过程和估算计划角度进行了阐述,并提供了实例化的操作。本书的出现,使用户故事真正成为敏捷开发中的一个独立实践,是用户故事的里程碑之作。
2005年,敏捷大师Mike Cohn出版了敏捷规划方面的大作《Agile Estimating and Planning》(中译名:《敏捷估计与规划》 )。在这本书中,作者从估算和规划的角度阐述了用户故事方法确切的说是用户故事点数的使用,可以说更加丰富了用户故事方法。
2014年,时隔用户故事实践成形十年之后,又一部著作横空出世:《User Story Mapping》(中译名:《用户故事地图》 )。这部书主要针对的是原有的用户故事实践在描述需求的过程中偏于离散的问题,希望通过以“地图”的方式全景式的串联起所有的用户故事。
以上,就是敏捷业界涉及到用户故事实践的主要著作,通过整个过程,我们可以看出用户故事与其他敏捷方法一样,一直是基于实践的不断演进中。在这个演进过程中,用户故事证明了其存在的价值,也不断暴露出不足,作为真实使用过用户故事的实践者,我会不断与大家持续分享,那么,今天用户故事的前世今生就讲到这里,用户故事系列的下一篇我们再见!