`
yangzb
  • 浏览: 3500022 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

User Story 概览—承上启下的重要一环

    博客分类:
  • PM
阅读更多

软件开发是一个从捕获客户需求到编码实现的过程。在我们传统的印象中,需求是厚厚的软件 规格说明书,实现则是无穷无尽的bug产生器。需求是在实现之前写好的,客户签字确认的。实现是程序员拿着需求不断猜测这该怎么做,那该怎么做的重新发现 的过程。在需求与实现之间横亘着一个巨大的鸿沟,做需求的人和写代码的人总是互相推诿责任,到最后客户总是得不到自己想要的功能。

敏捷软件开发方法有一整套实践,来促进客户与开发团队之间的交流与反馈。而User Story则是这些实践中比较具有启发意义的一个主要实践,我认为它是承上启下的重要一环。因为在其上,它是具体用户角色完成具体目标的过程组成部分。而 在其下,它是编写验收标准(Acceptance Criteria)的具体上下文。它就像一条锁链一样,在需求与实现之间架起了一座危桥。

之所以称之为危桥,是因为一旦人们把User Story当做软件规格说明书一类的文档来看待的话,User Story很快就不能反映客户的需求,同时也无法指导实现的开发。我们必须要把它当做危桥一样来对待,经常去重新评估实现难度,根据给客户带来的价值排优 先级。当发现它所覆盖的内容不再准确或者过时了的时候,对于危桥我们就不用犹豫,该炸掉重来就炸掉重来。

不严格地说,敏捷开发从需求到实现的单向流程(反馈的路径未包括其中)大概是这样的:

这个过程没有暗示任何瀑布式的开发风格,其实这个过程是反复的,不断有反馈回顾。画出这么一个流程性的图只是为了表明User Story是如何承上启下的。

要知道它是如何承上启下,还是要知道它自身是什么样的。明确的答案是:User Story应该Small(小规模),Testable(可测试),Valuable(有价值)。

Valuable是说User Story能够给利益相关人员提供明确的商业价值。往往表现为满足了用户某方面的预期。

Testable是说User Story可以给验收标准提供明确的上下文。也就是说这个User Story能够对程序的外部行为产生影响,比如界面,日志文件等用户看得见摸得着的东西。

Small是说User Story应该足够小,在商业过程中也就一步或者相关联的几步。小的目的是更好地符合迭代式开发的风格,能够在一个迭代内完成。

这三个特性直接支撑了敏捷开发的一些核心价值:给客户提供价值(对应valuable),保证质量(对应testable)和快速响应变化(small)。

User Story与传统的Use Case有一些不同。某些Use Case的书籍中提倡写出不同层次的Use Case,有High Level的,有Medium Level的,也有Low Level的。从某种程度上来说,High Level相当于Goal,Medium Level相当于User Story,而Low Level相当于Acceptance Criteria。但是由于Use Case的写法缺乏统一的习惯和明确的指导。初学者在写Use Case的时候往往缺乏明确的目标,无法有效地把需求与实现贯穿起来。

因此,若把需求到实现看做从天空到湖底的话,User Story就恰好浮在水面上。可以说User Story是文档能够达到的最细节的层次,若在往下就陷入了实现的细节之中,与具体实现方式相关而且经常变动,维护起来非常困难。更重要的是,写出那样的 细节文档又不能执行,无法给客户带来价值,只是对代码的无味重复。

这里只是概览了User Story在整个开发过程中的位置和作用,以及其自身的的一些属性和它能提供的价值。具体使用User Story去实践敏捷开发可以参阅我同事李默所写的敏捷需求分析一文。他在文中以一个业务分析师的角度讲述了如何把User Story用在敏捷需求分析的过程中去。

标签:软件 用户 鼠标
分享到:
评论

相关推荐

    敏捷测试中的User Story 详解

    在敏捷开发过程中,User Story 是一种重要的需求分析工具和方法,它们可以帮助开发团队快速地获取用户需求,编写可测试的 User Story,组织和优先级它们,进行计划、管理和测试。 Mike Cohn 的《User Stories ...

    user story

    用户故事(User Story)是敏捷开发方法论中的一个重要组成部分,它被用来捕捉产品或软件的功能需求,从最终用户的视角描述产品的功能。简单来说,用户故事就是一种直观的表述方式,用来描述系统应该为用户做什么。 ...

    User Story Mapping

    《User Story Mapping》这本书由杰夫·帕顿(Jeff Patton)撰写,是软件开发领域中关于敏捷方法论的重要参考资料之一。该书深入浅出地介绍了用户故事地图的概念、应用场景以及实践方法,帮助读者更好地理解如何在...

    A_good_example_of_user_story

    用户故事(User Story)是一种敏捷开发方法中的需求描述方式,主要用于捕获最终用户的需求,并作为软件开发的基础。它以简短而明确的语言描述了用户期望的功能,使开发团队能够更好地理解用户的需求。 在本篇文档中,...

    story培训ppt

    为什么使用User Story? 什么是User Story? 好的User Story有哪些特点? User Story的生命周期是什么样的? 切分User Story的小技巧

    vanessa-bdd-editor, 具有BDD风格的Epics和 UserStory.zip

    vanessa-bdd-editor是一款专为BDD设计的工具,它支持Epics和User Stories的编写,使得整个开发过程更加结构化和直观。 Epics和User Stories是敏捷开发中的两个关键概念。Epics通常用来表示大型、复杂的功能或需求,...

    后台管理模块 User Story.xlsx

    后台管理模块 User Story.xlsx

    UserStory_MICROSAR_Classic_LegislativeDiagnosticsViaOBD.pdf

    UserStory_MICROSAR_Classic_LegislativeDiagnosticsViaOBD

    SRS -software requirement specification-user story

    用户故事(User Story)是敏捷软件开发中用来表达用户需求的一种简洁的方式,它通常被用来在敏捷开发框架中制定软件需求规格说明书(Software Requirement Specification,简称SRS)。用户故事关注点在于用户和系统...

    UserStory:用户故事应用程序

    在项目结构中,"UserStory-master"很可能代表了项目的主分支或源码目录,包含了所有必要的文件,如HTML、CSS、JavaScript、服务器端脚本、配置文件等。开发者可能按照模块化的方式组织代码,例如将用户认证、故事...

    人机交互+记事本设计+界面设计+需求设计+概念设计+userstory

    ### 人机交互+记事本设计+界面设计+需求设计+概念设计+UserStory #### 1. 人机交互原理与应用 在人机交互领域,用户体验和交互方式的设计至关重要。本案例中,结合了传统的物理工具(如记事本、日历和通讯录)的...

    user-story:发布故事。 获取功能

    用户故事介绍User Story的目标是设计和展示一个可扩展的后端基础设施,提供一个 Web 界面,允许用户以简单直观的方式请求新功能并提供反馈。 用户可以在他们的故事中附加文件来解释他们想要什么。 然后管理员可以...

    User Story在敏捷开发过程中的应用

    用户建模方法的使用,不是很全^_^;但关键部分很明确,是很好的用户为中心的设计的指导材料

    patton-user-story-mapping

    user stories,mainly for agile development

    User Story.NET-开源

    User Story.NET是一个专门为极限编程(XP)项目设计的跟踪与管理系统。这个开源工具的主要功能是追踪项目的用户故事,确保开发团队能够有效地管理需求并保持敏捷性。用户故事是敏捷开发中的一种重要概念,它们代表了...

Global site tag (gtag.js) - Google Analytics