story应该尽量相互独立,如果确实两个story需要互相依赖,那么1)合并两个story;2)采用其他方案划分story
story card上只需要一个简单的描述,具体涉及到的细节应该在同用户的讨论中得出,以注释的方式记录到story card上(也许是背面),这些细节讨论出来后应该形成测试用户。注意注释不要太多,假如一个story拥有太多的注释,那么1)将注释中的内容抽取出来形成新的story;2)将此story拆分。
注意区分产品的购买者和实际使用者(两者通常是不同的自然人),我们的story是写给最终用户,最终用户不关心的一切技术方面的story都应该除去。写出好的user story最好的办法是把写user story的权利交给用户。
开发人员在对story做评估时通常会遇到三个问题:1)缺少相关领域的知识;2)缺少相关技术的知识;3)story太大。针对于前两种情况,可以采用学习和用户讨论的方式解决,最后一种情况,就需要对story进行细分。
可分解的story一般分为两种:compound story和complex story。对于前者,可以采用对方法和对数据划分的方式来细分story,例如“用户可以向网站提交和维护资料”这个compound story,按照对数据操作的方法,可以分为“上传”,“编辑”,“删除”等story,按照对数据本身的不同,可以分为“上传和维护帖子”,“上传和维护图片”,“上传和维护pdf文档”等。对于后者,通常比较复杂和难以划分,可以采用以下的形式来获得较为准确的评估时间,例如,一个complex的story是“A company can pay for a job posting with a credit card”,现在的问题是没有任何一个人知道如何进行网上支付,于是把这个story细分为两个,1)Investigate credit card processing over the web;2)A user can pay with a credit card。对于第一个story,指定一个时间段,从而可以较为容易的确定需要的时间和工作量。
有时候我们还会碰到这种情况,有一些story实在太过与小了,小到维护这个story的时间比实际开发他的时间还要多很多,这个时候我们就需要合并,将需要tiny story合并成为一个较大的,可以在半天或者一个星期内完成的story。
一个好的story必须是容易测试的,完全通过所有测试用例的story必然也是被完全开发的。
-
Ideally, stories are independent from one another. This isn't always possible but to the extent it is, stories should be written so that they can be developed in any order.
-
The details of a story are negotiated between the user and the developers.
-
Stories should be written so that their value to users or the customer is clear. The best way to achieve this is to have the customer write the stories.
-
Stories may be annotated with details, but too much detail obscures the meaning of the story and can give the impression that no conversation is necessary between the developers and the customer.
-
One of the best ways to annotate a story is to write test cases for the story.
-
If they are too big, compound and complex stories may be split into multiple smaller stories.
-
If they are too small, multiple tiny stories may be combined into one bigger story.
-
Stories need to be testable.
分享到:
相关推荐
User Stories Applied: For Agile Software Development <br>by Mike Cohn <br>Publisher: Addison-Wesley Professional (March 11, 2004) <br> Agile requirements: discovering what your users...
- **概念**: 用户故事(User Stories)作为敏捷开发方法中的一个核心组成部分,最初源于极限编程(Extreme Programming, XP)。它是一种轻量级的需求捕获技术,旨在通过简洁的语言来描述用户的期望功能。 - **起源**: ...
1. 敏捷软件开发(Agile Software Development):文件中提到的"User.Stories.Applied"是关于如何在敏捷软件开发中应用用户故事的一本书。敏捷开发是一种强调快速迭代、响应变化和用户参与的软件开发方法论。它的...
在众多敏捷实践和技术中,《用户故事应用于敏捷软件开发》(User Stories Applied: For Agile Software Development)一书深入探讨了如何有效地利用用户故事来指导敏捷项目。 #### 二、用户故事的概念及其重要性 #...
《用户故事与敏捷方法》详细介绍了用户故事与敏捷开发方法的结合,诠释了用户故事的重要价值,用户故事的实践过程,良好用户故事编写准则,如何搜集和整理用户故事,如何排列用户故事的优先级,进而澄清真正适合用户...
敏捷的用户故事方法人的大脑同时处理事物的能力是有限的,传统的产品PRD既要思考内容是否表述了产品的真实意图,还要想着符合公司对于格式、用词等等方面的要求,这是一件非常烦琐、心生厌烦的事情。...
Mike Cohn 在《User Stories Applied: For Agile Software Development》一书中提供了一种如何编写 User Stories 以及如何在软件开发生命周期中运用它们的详尽蓝图。 在这本书中,Mike Cohn 解释了如何编写一个好的...
《User Stories Applied for Agile Software Development》是敏捷软件开发领域的一本经典著作,由Mike Cohn撰写,Addison-Wesley出版于2004年3月。这本书主要探讨了如何在敏捷开发环境中有效地使用用户故事,以提升...
读书笔记:spring cloud微服务实战的user模块
例如,`pc_authenticate_user`方法可以用来验证用户凭据。如果用户身份有效,方法返回`true`;否则,返回`false`。在其他需要验证的方法中,我们需要先调用这个验证方法,若验证失败则抛出SOAP故障。 总的来说,本...
空间分析软件SGeMS配套书籍,Applied Geostatistics with SGeMS: A User's Guide(Chapter1-3)
蓝牙协议读书笔记 蓝牙协议是 Wireless Personal Area Network(WPAN)技术的一种,旨在提供一种低成本、低功耗、短距离的无线通信方式。下面是蓝牙协议的主要知识点: 拓扑结构 蓝牙协议支持三种拓扑结构:Point...
SQL> CREATE USER rman IDENTIFIED BY rman DEFAULT TABLESPACE man_ts; ``` 接下来授予该用户必要的权限: ```sql SQL> GRANT CONNECT, RESOURCE, RECOVERY_CATALOG_OWNER TO rman; ``` #### 3. 建立RMAN目录 接...
CCNA(Cisco Certified Network Associate)是思科认证网络助理工程师的简称,是IT行业内广泛认可的网络技术入门级证书。本笔记将详细解读CCNA的相关...希望这份CCNA中文读书笔记能为你的网络学习之路提供有力的支持。
The following example user stories were written to describe the functionality in an early version of the Scrum Alliance website. These stories were written in early 2004. Some stories are good, some ...
- 第20章 os:包含System、Environ、Process、Signal和User。 第三部分:扩展库 - 提到了mgo(MongoDB的Go语言驱动)和RichMON(网络监控工具)。 从更新记录来看,作者雨痕从2012年1月开始学习Go语言,并在学习...
《vanessa-bdd-editor:BDD风格的Epics与User Stories编辑工具》 在软件开发领域,行为驱动开发(Behavior Driven Development, BDD)是一种强调以用户需求和行为为中心的开发方法。它通过使用自然语言描述的特性、...
在本篇读书笔记中,我们将深入探讨《ORANGE’S:一个操作系统的实现》中的第二十七章节,主题聚焦于文件系统。文件系统是操作系统的核心组成部分,它负责管理和组织存储设备上的数据,为用户提供方便、高效的数据...