锁定老帖子 主题:关于用户故事这件事
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-11-08
最进一直在研究用户故事,有些心得同大家交流下,欢迎排砖: 我认为用户故事同用例最大的区别在于: 使用的方式 用例被看作需求的主要成果,用来作为设计,实现,测试的前置条件。并且作为工件在项目中需要保留。 相反 用户故事作为获取需求的开始,起到提纲的作用,最初的用户故事,可看作将要满足的功能的站位符,提醒我们有这么回事。 在UP中你会看到:有特性和用例的区别。 在XP中只有用户故事。 这样用户故事势必会跨越更大的描述空间,也就是说它可以象特性那样粗,也可以象用例关注的那样细,这是通过epic做到的。 还有用户故事既然叫“用户故事”,那么它至少是用户能看得懂的故事。 也就是说对开发人员有用的故事,被排除在外。 用户故事可以描述非功能需求。 关于描述非功能需求的故事,我在user stories aplied书中找到一个示例: 系统必须支持峰值为50个用户的并发访问。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-11-08
用户故事以前也是在书上看到过.自己没有用过.
前几天帮忙设计一个网站.想好久都找不到合适的方法来表达需求. 于是虚构了一个人物,把这个人物在网站上的全部行为一步步的列了出来.也没有使用任何图表,纯粹的文字描述而已. 但是操作流程和网站所需要提供的功能出奇的清楚.用这种方法很自然的把前面忽略掉的内容全部都补上去了.(写故事之前,我已经先列出了网页,网站结构和功能表) 同时这个故事也提供了一个清晰的测试过程. 这些都是在编写用户故事之前没有想到的意外所得. 市场人员和其他非技术人员同样用这种方法来编写他们的所想的. |
|
返回顶楼 | |
发表时间:2005-11-08
jack 写道 用户故事以前也是在书上看到过.自己没有用过.
前几天帮忙设计一个网站.想好久都找不到合适的方法来表达需求. 于是虚构了一个人物,把这个人物在网站上的全部行为一步步的列了出来.也没有使用任何图表,纯粹的文字描述而已. 但是操作流程和网站所需要提供的功能出奇的清楚.用这种方法很自然的把前面忽略掉的内容全部都补上去了.(写故事之前,我已经先列出了网页,网站结构和功能表) 同时这个故事也提供了一个清晰的测试过程. 这些都是在编写用户故事之前没有想到的意外所得. 市场人员和其他非技术人员同样用这种方法来编写他们的所想的. 这就是传说中的“用户角色扮演” |
|
返回顶楼 | |
发表时间:2005-11-08
引用 用户故事是提纲 用户故事体现用户和购买方的价值 用户故事不体现对开发人员有价值的功能 大用户故事epic可以包含小用户故事 用户故事三要素:故事描述、通过交谈丰富内容、验证测试确认故事已完成 对于需要特别注意的地方可以注明 客户团队包括测试员、产品经理、实际用户、交互设计员 客户团队使用业务语言来写用户故事,这样就能划分优先级规划迭代和发布了,另外客户团队是描绘产品前景的最佳视角 用户故事可以在项目的任何时间写,最初的故事可以从一次集体讨论中得到 通过协商,客户团队和开发人员确定迭代的长度,很可能是1到4周 在迭代结束,开发人员提交完全可用的部分产品 在迭代中,客户团队同开发人员交谈,确认开发人员确实理解了需求,同时客户团队还会指定测试,同开发人员协作运行测试,测试可以是自动运行的,另外客户团队需要确认开发是朝着待开发产品的方向前进的 迭代周期一旦确定开发人员就可以估计一个迭代能完成多少工作了 用户故事按照优先级,根据迭代分堆排列,在迭代开始时可以根据实际开发的速度调整这些分堆 一个发布由一到多个迭代构成 从下面几个方面考虑优先级 大多数人涉及的特性 少部分人涉及但很重要的特性 故事之间的关联性 开发人员可以根据技术因素就用户故事优先级发表看法,客户团队聆听这些,但最终故事优先级还是以是否给目标组织带来最大化利益作为考量 故事在评估代价之前,不能划分优先级,所以对故事进行评估是划分优先级的要素之一,开发人员负责评估开发成本。每个故事使用故事点来量化,表明它的复杂性。故事点使用时间长度作为度量 开发人员声明自己的开发速度,一个迭代能完成多少个故事点,客户团队据此分配故事,累计的故事点,必须小于开发人员能够完成的故事点 尽可能早的找出验证测试,这样会对开发人员带来帮助 为什么要使用用户故事? 用户故事强调口头上的交流,而不是文档化的 客户团队和开发人员都能理解用户故事 用户故事的大小适合于制定计划 用户故事为迭代开发工作 用户故事鼓励推迟细化,直到你完全理解你真实的需要(使用了 精益过程 推荐的工具) 用户故事是在经常性的运行自动化验证测试后取得的,没有基于文档可能出现的二义性的问题 如果一个用户故事不能在一个迭代里完成,就需要把它分解 |
|
返回顶楼 | |
发表时间:2005-11-08
partech 写道 还有用户故事既然叫“用户故事”,那么它至少是用户能看得懂的故事。 也就是说对开发人员有用的故事,被排除在外。 你可能是将传统的需求分析套在用户故事上了。 实质上我认为用户故事编写过程中恐怕现场客户也要学点新名词,换句话说传统中的设计部分在用户故事中也有体现。 |
|
返回顶楼 | |
发表时间:2005-11-08
ddd 写道 partech 写道 还有用户故事既然叫“用户故事”,那么它至少是用户能看得懂的故事。 也就是说对开发人员有用的故事,被排除在外。 你可能是将传统的需求分析套在用户故事上了。 实质上我认为用户故事编写过程中恐怕现场客户也要学点新名词,换句话说传统中的设计部分在用户故事中也有体现。 是吗?愿闻其详 |
|
返回顶楼 | |
发表时间:2005-11-08
补充一下:
用户故事虽然叫“用户故事”,但因为开发人员需要根据它估算工作量,所以要求用户故事不能过于专业,开发人员也要看得懂 收集故事的提问,应该是不带假设条件的开放式问题 领域专家不宜作为用户代理。因为领域专家不一定使用系统,即便他使用,也可能同较少行业经验的人有不同的使用方式。另一个问题是对于专家满意的系统并不一定适合于所有的用户 客户指定,并详述测试,开发人员和测试人员协助他完成测试 在编码前详述测试,是同客户沟通设想的新功能有用和有效的方法,并且有益于开发人员深入领会故事的意图 如果开发人员对某个故事的故事点有分歧,那么他们需要继续讨论直到达成共识 速率 -- 就是一个迭代里团队能够完成故事点的多少 通过对比不同故事初步估计出来的故事点数,可进一步调整点数 不同项目间,故事点没有可比性 通过考察历史评价,猜,进行一次初始迭代可以确定初始速率 项目完成需要的时间 = 故事点总数 / 速率 * 迭代周期 |
|
返回顶楼 | |
发表时间:2005-11-08
我的实战告诉我:沟通的妙处就在于不事先规定内容,乱七八糟才好。
所以如果双方进入想做好这个软件的状态了,必然会混乱一团,没个什么确定的主题,这和内部开会不一样,内部开会只允许一定范围内的跑题。 在这种情况下必然要接触技术问题。并且从某种程度上说细节决定一切,设计决定需求,这样就无法先需求分析后设计了。 这种情况下必须让现场客户了解你的设计,才能达到沟通的目的。 btw:我的表达能力不算太好,因为我越来越不愿意拉条条了,更相信实战中的体会,感性的东西:),并且现在正在努力忘却掉以前认为优雅经典的一些条条框框,虽然这些条条框框都曾经是我的必经之路。 "双方进入想做好这个软件的状态"不太好获得,还是我以前说的话:在大陆大多数项目都是求来的,客户基本进入不了这种想做好的状态,越大的项目情况越糟糕,这种情况也许不适合xp,包括用户故事。 |
|
返回顶楼 | |
发表时间:2005-11-08
嗯,俺还没碰到过这样“好学习”的客户,会打探设计的咚咚。最多也只是带
有敬意的打听一下,不会像你说的这样强势。基本来说开发过程还是我们控制。 对于这种“畸形”的开发方式,确实很难保证用户故事里面没有设计。 |
|
返回顶楼 | |
发表时间:2005-11-09
partech 写道 嗯,俺还没碰到过这样“好学习”的客户,会打探设计的咚咚。最多也只是带
有敬意的打听一下,不会像你说的这样强势。基本来说开发过程还是我们控制。 对于这种“畸形”的开发方式,确实很难保证用户故事里面没有设计。 也许您的这个客户不是现场客户,或者即使在现场,也没发挥应有的反馈作用。有敬意的打听一下,这就是沟通不够。 或者就是你们的开发队伍没有向现场客户提供必要的信息。 很多设计方面的信息必须要给现场客户,否则单凭一句“满足你的需求”来打发现场客户是不负责任的。这样实质是切断了现场客户在第一时间反馈的渠道。 我推测你们和客户沟通的良好气氛根本就不存在,那么出现这种双方“相敬如宾”的情况也就正常了。 |
|
返回顶楼 | |