惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
有赞技术团队
有赞技术团队
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
The Cloudflare Blog
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
MyScale Blog
MyScale Blog
博客园_首页
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
罗磊的独立博客

博客园 - SuperBowl

新蛋(成都)急聘.net 高级软件工程师 NetTiers模板中各个选项的一些解释 敏捷实践--个人与过程 敏捷实践--持续集成工具CC.net配置 .net4.0 & VS2010 .Net 常用开发工具 敏捷实践--准备 敏捷实践--启航 敏捷软件开发之持续集成 6,Composite UI Application Block (CAB) WorkItem介绍 5,Composite UI Application Block (CAB) WorkSpace介绍 4,Composite UI Application Block (CAB) FormShellApplication介绍 (转)2007年IT薪资调查 IT人更关注职业前途 3,Composite UI Application Block (CAB) 结构介绍 2,Composite UI Application Block (CAB) 概念和术语 1,Composite UI Application Block (CAB) 介绍 很想提笔写点什么 读完“影响力” Hello ,Atlantic
敏捷实践--用户故事和用例的选择
SuperBowl · 2008-11-03 · via 博客园 - SuperBowl

    用户故事描述了对软件(或系统)用户或客户有价值的功能。用户故事包括三方面内容:书面描述(用于计划和备忘),交谈(细化故事细节),以及测试用例(验证故事实现)。用户故事描述的传统形式是手工书写的用户故事卡, Ron Jeffries称如上三方面内容为Card(卡片)Conversation(交谈)Confirmation(确认)。     

     用户故事一般包括3方面的要求:作为(系统的一个涉众),我想要(做一件事),从而(达到一个商业价值)。比如仓库管理中有这样一个想法:仓库操作人员想通过使用手持设备完成仓库的拣选商品的操作,以提升仓库工作人员的工作效率。其中受众是仓库操作人员,业务操作是使用手持设备进行商品的拣选,目的是提升仓库操作人员的效率,实现商业目标。

     开发者辅助客户编写故事,告诉客户所编写的故事是进一步讨论的引子,而不是详细的需求规范。在任何项目中,需要客户团队根据故事的重要性来安排开发者的工作,回答所有开发者的问题,编写所有的故事。客户团队包含多个成员(诸如测试人员、产品经理、真实用户、交互功能设计人员),确保软件满足目标用户的需求。

在编写故事之前应该建立用户角色模型,必须包含对项目成功至关重要的角色,尽量保证所有用户对系统完全满意。

如想创建优秀的故事,需要认真领会6个属性,分别是:独立性、可协商性、对用户或者客户有价值、可预测性、短小精悍,以及可测试性。Bill Wake使用缩写词INVEST表示6个属性:

1)独立性。尽可能避免故事之间存在依赖关系,故事间依赖关系会产生优先级和规划问题。

2)可协商性。故事是可协商的,不是必须实现的书面合同或者需求。

3)对用户或者客户有价值。确保每个故事对客户或用户有价值的最好方式是让用户编写故事。

4)可预测性。开发者应该能够预测(至少大致猜测)故事的规模,以及编码实现所需要的时间。

5)短小精悍。故事规模对实现有影响,何种故事规模最合适,取决于开发组规模、开发组的能力,以及技术实现等方面。

6)测试性。所编写的故事必须是可测试的。

      与用例的区别

     用例最早由Ivar Jacobson1992年提出,用例通常与统一软件过程相联系。用例描述系统和角色之间的交互。两者差别主要在于:

1)范围不同。二者都用来体现商业价值,但故事规模可以设定比较小(例如,10天完成),以便以此为单位安排工作。用例包含的范围可能比故事大得多。

2)完成程度不同。James Grenning曾指出:故事卡中的文字“加上验收测试用例就基本等同于用例”,这意味着故事对应于用例的基本流,而故事的测试要求对应于用例的备选流。

3)寿命不同。用例通常是持久的工作产品,在产品开发和维护时,用例一直存在。然而,故事通常只存在于实现该故事的迭代中。虽然故事卡可以存档,但是许多团队都将故事卡销毁。

4)编写目的不同。用例的目的是记录客户和开发团队的一致意见。故事是为了便于制定发布计划和迭代计划,并作为有关用户需求细节方面的交谈备忘录。 

这里我们将选择用户故事来驱动后续工作的进行。