`
walkalone
  • 浏览: 1179 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
  • ggokind: iPhone不能进行迭代开发:),因为用户看到了就会导致商业泄 ...
    User Story Q&A

User Story Q&A

阅读更多

1. 什么是用户故事?
用户故事描述了对用户或客户有价值的功能。用户故事由以下三方面组成(3C):

  • 一份书面的故事描述,用来做计划和作为提示(Card)。
  • 有关故事的对话,用于具体化故事细节(Conversation)。
  • 测试,用于表达和编档故事细节且可用于确定故事何时完成(Confirmation)。

可以用故事卡来记录用户故事,在故事卡的正面记录故事的简短描述,背面则记录测试要点。

2. 什么是优秀的用户故事?
优秀的用户故事应该具备以下6个特点(INVEST):

  • 独立的(Independent)。
  • 可讨论的(Negotiable)。
  • 对用户或客户有价值的(Valuable to users or customers)。
  • 可估计的(Estimatable)。
  • 小的(Small)。
  • 可测试的(Testable)。

3. 为什么使用用户故事?
使用用户故事能够带来下面好处:

  • 用户故事强调口头沟通。可以提供迅速的反馈周期,能够促成对需求的充分理解。
  • 用户故事更容易被人理解。
  • 用户故事的大小适合做计划。
  • 用户故事适合于迭代开发。可以很容易的从一个史诗故事入手,并在需要的时候将其分解成多个小故事。
  • 用户故事鼓励延迟细节。可以很快的写出大量用户故事,迅速的开展工作。
  • 用户故事鼓励随机应变的设计。团队能迅速的在高层及低层细节思考间切换。
  • 用户故事鼓励参与性设计。
  • 用户故事有利于传播隐性知识。

4. 用户故事有哪些不足?

  • 大型项目中,用户故事之间的关系可能错综复杂,难以组织好成千上万的用户故事。
  • 如果开发过程规定要有需求的可追溯性,需要额外的文档。
  • 在特大规模多团队的项目中,仅靠用户故事是不够的,不然难以保证信息在大型团队中充分共享。

要点:

  • 可以考虑使用其它补充需求说明或使用用例。

5. 怎样开始编写用户故事?
首先从识别关键用户角色开始。按以下步骤对用户角色建模(角色卡):

  • 通过头脑风暴,列出初始的用户角色集合。
  • 整理最初的用户角色集合,表明角色之间的关系。
  • 整合角色,合并完全重叠的角色,丢弃多余的和不太重要的角色。
  • 提炼角色,定义角色的特征,以便更清楚的了解不同角色的差异。

要点:

  • 用户角色代表的是单一用户。
  • 用户角色定义的是人,而不是其它外部系统。

6. 怎样发现和收集用户故事?
以下2种方法有助于发现和收集用户故事:

  • 用户访谈。
  • 故事编写研讨会(头脑风暴,简单原型)。

要点:

  • 使用开放式的,背景无关的提问。
  • 应该把重点放在故事的数量上而不是质量上。

7. 当不能或很难接触实际用户时该怎么办?
以下方法有助于解决问题:

  • 组建由用户代理领导的用户顾问团队(业务分析师和领域专家是较好的用户代理人选)。
  • 尽早的频繁的发布产品,以便尽快得到用户的真实反馈。

8. 怎样描述用户故事?
可以使用下面的格式描述用户故事:
作为一个(角色),我想要(功能),以便于(商业价值)

9. 怎样处理非功能需求?
使用约束卡片,如果需要也可以使用其它形式的补充需求说明。

10. 怎样估算用户故事?
用故事点估算方法估算故事。

要点:

  • 估算用户故事工作量的相对大小。
  • 团队估算

11. 怎样安排故事的优先级?
故事的客户价值和风险是安排故事优先级要考虑的重要因素。

12. 怎样将用户故事分配到发布计划?
按以下步骤分配用户故事到发布计划:

  • 确定客户预期的大致发布日期。
  • 确定迭代长度(一般2-4周)。
  • 估算用户故事(故事点估算)。
  • 估算团队初始速率(每个迭代完成的故事点)。
  • 安排故事优先级(按客户价值和风险等因素)。
  • 按故事优先级,故事点,团队速率分配故事到每轮迭代。

13. 怎样将用户故事分解为多个任务?
以下3方面是分解任务时要考虑的重要因素:

  • 有利于估算。
  • 有利于协作分工。
  • 有利于跟踪完成情况。

14. 怎样将任务分配到迭代计划?
按以下步骤分配任务到迭代计划:

  • 将用户故事分解为多个任务。
  • 团队成员认领任务。
  • 团队成员估算并确认他们自己的任务。

要点:

  • 团队分解任务
  • 个人估算任务(按小时)

15. 当用户界面设计不适合频繁变更时怎么办?
可以按下面步骤实现以使用为中心的设计:

  • 用户角色建模。
  • 捕获高层次的用户故事。
  • 排列故事优先级。
  • 精炼高优先级和中等优先级的故事。
  • 对故事整理分组。
  • 建立书面的原型。
  • 精炼该原型。
  • 开始编程。

16. 怎样基于用户故事监控团队速率和完成情况?
以下4种方法有助于监控速率和完成情况:

  • 速率图,用于展现每轮迭代的速率(每轮迭代完成故事点),以便于监测实际速率和计划速率的偏差。
  • 累计完成故事点图,用于展现每轮迭代完成的故事点,以便于监测累计的实际完成故事点和计划完成故事点的偏差。
  • 迭代燃尽图(发布燃尽图),用于展现每轮迭代末剩余的故事点,以便于把握项目整体的进展情况。
  • 每日燃尽图(Sprint燃尽图),用于展现一轮迭代中每日剩余工作的小时数,以便于把握每轮迭代的进展情况。
分享到:
评论
1 楼 ggokind 2011-04-18  
iPhone不能进行迭代开发:),因为用户看到了就会导致商业泄密,致使大量跟进者模仿。

上面说的“对于大型项目story的缺点”,还是比较中肯的,story最大缺点是没有逻辑性。用户一般很难有足够的耐性帮我们一个个澄清story和异常分支。
真正保证完整设计的,还是有经验的设计人员。

最重要的还是人:)

相关推荐

    敏捷测试中的User Story 详解

    "敏捷测试中的User Story详解" User Story 是敏捷开发过程中的重要工具和方法,它们可以节省时间、减少重复工作、并且能够做出更好的软件需求过程。Mike Cohn 在《User Stories Applied: For Agile Software ...

    《 User Interface Design & Implementation》

    此文档为MIT的 用户界面设计和实现(User Interface Design & Implementation)课程的官方讲义笔记,系统的介绍了用户界面设计的相关知识,并且其中结合多种例子进行分析,内容丰富且易于理解。

    user story

    ### 用户故事(User Story)在敏捷开发中的应用及重要性 #### 一、用户故事的基本概念 用户故事(User Story)是敏捷开发方法论中的一个重要组成部分,它被用来捕捉产品或软件的功能需求,从最终用户的视角描述产品...

    User Story Mapping

    ### User Story Mapping:掌握整体故事,构建正确产品 #### 一、引言 《User Story Mapping》这本书由杰夫·帕顿(Jeff Patton)撰写,是软件开发领域中关于敏捷方法论的重要参考资料之一。该书深入浅出地介绍了...

    user&&password

    用于“智能家居”的登录读取界面

    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编辑工具》 在软件开发领域,行为驱动开发(Behavior Driven Development, BDD)是一种强调以用户需求和行为为中心的开发方法。它通过使用自然语言描述的特性、...

    后台管理模块 User Story.xlsx

    后台管理模块 User Story.xlsx

    A deep learning model for estimating story points.pdf

    involved in implementing a user story or resolving an issue. In this paper, we offer for the first time a comprehensive dataset for story points-based estimation that contains 23,313 issues from 16 ...

    UserStory_MICROSAR_Classic_LegislativeDiagnosticsViaOBD.pdf

    UserStory_MICROSAR_Classic_LegislativeDiagnosticsViaOBD

    sid2user&user2sid

    在标题提到的"sid2user&user2sid"中,我们涉及了两个关键工具:sid2user和user2sid,它们是由Evgenii Rudnyi开发的,用于进行SID与用户名之间的转换。 sid2user工具的主要功能是从SID(安全标识符)查找对应的...

    全芯A64 datasheet && User Manual

    【全芯A64 datasheet && User Manual】是关于全志科技推出的A64处理器的重要技术文档,主要包括了A64的数据手册(Datasheet)和用户手册(User Manual)。这两个文档详细阐述了A64处理器的各项特性和使用方法,对于...

    telebot-chat-sbs:Q&A的逐步电报机器人

    使用框架制作: go get -u gopkg.in/tucnak/telebot.v2概述这个基于simpel 的电报演示机器人提供了逐步Q&A的通信。 在每个问题之后,机器人会等待一个答案,然后触发下一个问题。 支持不使用数据库进行并行处理。 ...

    UserStory:用户故事应用程序

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

    User-Agent Switcher and Manager 0.4.9 CRX for Chrome.crx用户代理切换器

    User-Agent Switcher and Manager 0.4.9 CRX for Chrome.crx 用户代理切换器和管理器0.4.9 CRX for Chrome.crx。这个Chrome扩展允许你可靠地欺骗你的浏览器“用户代理”字符串自定义一个。该扩展为不同的浏览器和...

    The user specified as a definer ('root'@'%') does not exist 解决方法

    mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法

    sid2user&user2sid(附源码)

    这个压缩包文件"sid2user&user2sid(附源码)"显然包含了一些工具或程序,旨在帮助转换或查询这些SID和用户ID之间的关系。 首先,我们要理解SID到用户ID(sid2user)的转换过程。当用户登录时,其用户名经过验证后,...

Global site tag (gtag.js) - Google Analytics