敏捷开发中,User Stories最佳实践

【软考】敏捷开发领域中Epic和UserStory之间的区别 在敏捷开发领域中,Epic和UserStory是两个重要的概念,它们之间存在着紧密的关联关系。通过有效地运用Epic和UserStory,开发团队可以更好地组织项目、跟踪进度、评估工作量、制定发布计划,从而提升项目的整体效率和质量。本文将深入探讨这些关联关系,并阐述如何在敏捷开发过程中有效地运用Epic和UserStory。 阅读详情
敏捷开发中,User Stories最佳实践

在本文中,讨论User Stories创建、计划和编写User Stories相关的代码的最佳方式,以及回答一些最常见的问题。

敏捷开发中,User Stories最佳实践

许多团队开始使用“用户故事(User Stories)”这个术语,因为他们转向了敏捷。用户故事是一种收集客户需求的简单而优雅的技术。然而,使用用户故事来构建优秀的软件需要一定的理解和实践。

让我们仔细看看用户故事(User Stories)是什么,以及如何在项目中成功使用这种技术。

什么是用户故事?

用户故事是一个简短而简单的功能描述,它为用户或客户带来价值,并且团队可以在迭代中交付这些功能。

用户故事应该回答三个问题:

我们为谁实现它?——期望<用户>的类型

我们实现是什么功能?——我希望<功能>

我们为什么要实现它?——<价值,和好处>

在此之后,用户故事的典型格式是:

作为一个<某种类型用户>,我想要<功能>,以便<好处>。

用户故事的例子:作为注册用户,我希望能够将我的照片下载到我的个人资料中,以便其他用户可以看到我的样子。

有创建用户故事的过程吗?

没有创建用户故事的正式过程。然而,应该遵循一个指导方针来创建一个好的用户故事。它叫做3c,是由极限编程的创始人之一Ron Jeffries提出的。

卡片是用户故事的书面描述。它没有捕获应该构建的所有细节。相反,它是一个提醒,一个必须进行后续沟通的承诺。

对话用于讨论用户故事的细节。它可以通过一些文档来补充。

由用户验收测试来进行确认,以确保用户故事满足用户/客户的验收标准。

如何编写高质量的用户故事

要确保用户故事具有适当的质量,一个好的做法是遵循比尔•韦克(Bill Wake)的“投资”(INVEST)首字母缩写的标准。INVEST还有助于确定用户故事是否被很好地理解并为开发团队开始工作做好了准备。

独立——用户故事不应该依赖于另一个用户故事,因此用户故事可以按照任何顺序开发。

可协商——用户故事的细节在产品所有者和开发团队之间的口头对话中协商。

有价值——用户故事应该为用户/客户带来所需的价值。

可评估——开发团队应该充分理解用户故事,以便对其进行评估。

小的-用户故事应该小到适合在一个迭代(1-3周)中。

可测试性——应该为用户故事编写适当的验收标准,以便对其进行验证。

什么不是用户故事?

让我们坦诚地告诉自己:用户故事的定义必须是从真正业务用户的角度,不可能是“技术用户(开发者本身)故事”,因为在这种情况下,它不会给用户/客户带来直接的价值。尽管如此,当许多团队需要完成诸如代码重构之类的技术任务时,他们还是喜欢创建用户故事。我建议将其他工作项用于此类任务,并与您的产品所有者就此类工作达成一致,以便他了解为什么有必要这样做。与非功能性需求任务、界面设计任务、复杂的用户交互任务或bug相关。

您可以自由地为这些任务创建其他工作项。例如,约束故事可以用来表示非功能需求。用户故事是捕获产品功能的一种很好的技术,但是我们没有义务将它用于所有目的。

用户是谁?

在编写用户故事之前,应该清楚地了解创建用户故事的用户是谁。有时,新接触用户故事技术的团队会忽略它,他们最终会创建具有不必要功能的软件。所以,做一个适当的用户调查,让所有的用户类型或用户角色或角色写下和描述。可以帮助您实现这一点的两种技术是用户角色建模和角色。

谁负责编写用户故事?

通常,客户代表(如产品所有者)负责用户故事。尽管如此,用户故事并不是高层给团队的规范,而是产品所有者和团队之间的协作技术。这就是为什么如果用户故事是合作编写的更好。一个好的方法是成立一个故事编写研讨会,由团队合作编写。

细节在哪里?

由于用户故事不是规范,所以细节以不同的方式表达:

在用户故事编写的3C原则中,第二个C是对话(Conversation)。会话是敏捷最重要的方面之一。因此,大部分细节都是通过客户代表和开发团队之间的口头交流来传达的。

第三个“C”是确认( Confirmation)。用户验收测试是确认用户故事满足用户/客户的验收标准,并作为正式的文档细节。BDD(行为驱动开发)是编写验收测试的一种很好的技术。

如果需要,一些用户故事可能包含额外的书面细节。

如何知道用户故事何时完成?

使用已“完成”技术的定义。简单地说,Done的定义是团队成员之间对完成工作的意义的共同理解。完成的定义通常以活动检查表的形式创建,该检查表展示了商定的价值(满足用户接受标准的用户接受测试)和质量(满足质量标准的用户接受测试)。

团队有时会忽略最后一个,什么会使用户故事在迭代结束时不能交付给客户。定义Done技术有助于避免这种情况。

参看下面定义的例子

完成时:

单元测试通过了

代码是同行评议

通过用户验收测试

集成测试是通过了

回归测试是通过了

用户指南更新了

如何开始定义产品范围?

在项目的开始,我们需要定义一个产品的粗略范围,以便对它有一个全局的看法。这可以用史诗(Epics)来完成。史诗是有一个共同目标的大量工作。可以将Epic视为稍后创建的更详细的用户故事的占位符。史诗通常需要多次迭代才能完成。

组织用户故事的最佳方式是什么?

使用杰夫·巴顿发明的故事映射技术。故事映射代表了对需求组织的自顶向下的方法,也是确定优先级和计划的好方法。

敏捷扩展BABOK® Guide v2 状态:

“故事映射提供了解决方案支持的活动序列的可视化和物理视图。它使用二维网格结构在水平维度上显示产品关键方面的序列和分组,在垂直维度上显示故事的细节和优先级。故事映射是一种分解技术,它允许从端到端视图开始对解决方案进行演化理解,并深入到详细的用户故事。”

故事映射的例子(由Steve Rogalsky创建):

敏捷开发中,User Stories最佳实践

50个BA分析工具第十五个-User Stories 工具名称: User Stories(用户故事) 工具介绍: User Stories,和Use case相比,它们一个是传统版,一个是敏捷版,而User Stories是敏捷版中用的,它展示了一个小的简略的展示,它的功能或者质量需求。User Stories它就是1段话去描述,1个需求,它有一个标准的句式: • as 一个什么样的角色 • I want 一个什么样的功能 • so that 有什么的结果这就是User Stories。 举例: “作为招聘网站注册用户,我想要查看最近 阅读详情

相关推荐

Example User Stories

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 aren’t. I’m providing the full set of them, though, as an indication of what I considered a suitable starting point product backlog for this site back then. In a couple of places I’ve added notes in brackets.

敏捷开发中如何写好用户故事?

什么是用户故事?在敏捷开发中如何写好用户故事?

minjiekaifa的博客 2835

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

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

一文读懂: 什么是用户故事?What is User Stories?

在软件开发和产品管理中,用户故事是对软件系统的一个或多个特征的非正式的自然语言描述。用户故事是敏捷软件开发中使用的工具,用于从最终用户的角度捕获软件功能的描述。用户故事描述了用户的类型,他们想要什么以及为什么。用户故事有助于创建需求的简化描述。 用户故事通常记录在索引卡,便利贴或项目管理软件中。根据项目,用户故事可能由各种利益相关者(如客户,用户,经理或开发团队成员)编写。 “用户故事是...

Warren Lynch 的博客 1万+

敏捷测试中的User Story 详解

User Story在敏捷开发过程中的应用 在这本书中,Mike Cohn提供了一种如何编写User Stories以及如何在软件开发生命周期中运用它们的详尽蓝图。

A_good_example_of_user_story

A_good_example_of_user_story

用户故事详解

介绍 在敏捷开发中, 用户故事 (user stories) 是一种轻量级,更灵活的替代品指定软件需求的传统方法 - 软件需求规范,用例规格等。 实际上,可以说用户故事是最重要的敏捷开发 (Agile Development) 中的工件 (Artifacts),因为它是主要将值流传递给用户的容器,敏捷开发就是快速实现价值 (Value)。 用户故事也可以作为我们整个增量价值交付 (increm...

Warren Lynch 的博客 2万+

LabVIEW实战:基于DAQmx的实时正弦波生成、采集与波形图动态显示

本文详细介绍了如何使用LabVIEW和DAQmx驱动实现实时正弦波的生成、采集与动态显示。通过USB-6008数据采集卡,结合队列缓冲机制和动态波形图显示技术,构建了一个完整的信号处理系统。文章包含硬件连接、软件配置、任务设置及常见问题排查,适合LabVIEW初学者和硬件控制开发者参考。

weixin_30872337的博客 124

用户故事(User Story)

用户故事是描述对用户有价值的功能,好的用户故事应该包括角色、功能和商业价值三个要素。用户故事通常的格式为:作为一个<角色>, 我想要<功能>, 以便于<商业价值>。 一、什么是用户故事 用户故事描述了对用户、系统或软件购买者有价值的功能。一个好的用户故事包括三个要素: 1.角色:谁要使用这个功能。 2.功能:需要...

weixin_30384031的博客 590

DOSBOX 0.74模拟器安装Windows 95

DosBox本身带有5.0版的DOS系统,启动后虚拟一个Z盘存放有Dosbox特有的外部指令,如config.com、imgmount.com等,经测试,可以顺利安装各版本的windows 3.1系统,但是不能安装win95,需要用原版的dos镜像启动才能安装。1. 获取启动盘镜像文件 下载Win95启动软盘镜像文件,名为boot.img,放到DosBox 0.74的目录下。2. 制作硬盘镜像文件

xjnzhidao的博客 9309

deepin启动异常处理

修复的命令在执行时会输出大量的修复信息,正常情况下修复完之后输入exit命令回车后,即可正常启动系统。

whxxiang的博客 4370

[项目管理-37]:敏捷开发 - Scrum board、Kanban board、Task board、User-stories board、product 、Sprint backlog

这些不同类型的 Backlog 在项目管理中起着关键的作用,帮助团队有效地管理和跟踪需求、任务和问题,确保项目在正确的方向上顺利进行。在敏捷开发中,不仅 Scrum 方法中有 Product Backlog 和 Sprint Backlog,还有其他方法中的不同类型的 Backlog。需要注意的是,这些看板工具的名称、布局和使用方式可能在实际项目中有所不同,可以根据团队的需求进行定制化配置。Scrum 是一种敏捷开发方法,其中包含了特定的工作流程和活动,以促进团队的协作、迭代开发和持续改进。

文火冰糖(王文兵)的博客 2274

达梦慢sql和统计信息收集

各计划节点的执行顺序为:缩进越多的越先执行,同样缩进的上面的先执行,下面的后执行,上下的优先级高于内外。在建立索引的时候,要考虑索引的最左匹配原则(在使用 SQL 语句时,如果 where 部分的条件不符合最左匹配原则,可能导致索引失效,或者不能完全发挥建立的索引的功效);执行计划是 SQL 语句的执行方式,由查询优化器为语句设计的执行方式,交给执行器去执行。生产系统中,对于频繁变动的数据表,多次执行计划可能会出现不一致的问题,这往往是由于统计信息不准导致的,索引定期收集统计信息就很有必要了。

m0_37680131的博客 1714

User Stories - 最佳实践 (Best Practices)

在转向敏捷之后,很多团队开始使用“用户故事”一词。用户故事是一种简单而优雅的技术,可以收集客户需求。然而,它需要一定的理解和实践才能用User Stories构建出色的软件。 让我们仔细看看用户故事是什么以及如何使用这种技术取得成功。 什么是用户故事? 用户素材是对功能的简短描述,它为用户或客户带来价值,团队可以在迭代中提供这些功能。 用...

weixin_33890526的博客 193

ZYQN7000系列VxWorks驱动开发:VxWorks系统移植

文章目录ZYQN7000驱动开发:VxWorks系统移植1.硬件环境2.编译vsb和vip工程2.1修改设备树文件2.2添加调试打印组件3.选择uboot来启动VxWorks内核4.尝试在开发板上启动内核4.1 拷贝镜像和设备树至SD卡4.2开发板上电4.2.1 uboot成功启动4.2.2 启动VxWorks5.添加shell和cmd组件 ZYQN7000驱动开发:VxWorks系统移植 1.硬件环境 正点原子领航者开发板 2.编译vsb和vip工程 vsb和vip工程的编译过程可以参考之前的文章,htt

明故宫的记忆 5505

第3.1.3章 机器人第三方库实战总结:ROS 2 入门实战及和ROS1的对比,打通机器人开发的任督二脉

本文针对机器人SLAM开发中第三方库的学习痛点,重点介绍ROS 2在SLAM中的应用。文章首先对比ROS 1与ROS 2的核心差异,梳理ROS 2知识图谱,包括节点、话题、服务等核心概念。通过实战项目演示如何构建激光SLAM节点,结合代码详解运行流程。最后给出学习建议,强调动手实践的重要性,帮助开发者快速掌握ROS 2在SLAM开发中的关键应用。

行知SLAM 179

User Stories Applied读书笔记(第一章)

user stories仅仅列出用户关心的细节(例如产品采用何种语言实现,采用何种架构,哪种数据库等不应该包含在其中)user stories不应该太长太大,一个笼统的user story可以和一些作为补充的user stories联系起来只要一个user stories最终覆盖了所有需要的细节,那么它就不需要再进行分解,例如: "A user can view information

ggd5434phvjs的专栏 578

034、MLCA 多尺度局部上下文注意力的 YOLOv11 适配:轻量级金字塔式空间上下文聚合

本文介绍了一种将多尺度局部上下文注意力(MLCA)模块集成到YOLOv11模型中的方法,以解决小目标检测中空间信息丢失的问题。MLCA采用金字塔式局部上下文聚合策略,通过不重叠的网格划分实现轻量级空间注意力计算,相比全局注意力机制能更好地保留小目标特征。 作者详细记录了实现过程,包括模块定义、参数调优和训练技巧,特别指出避免使用BN而改用GroupNorm以提升训练稳定性。在VisDrone数据集上的实验表明,MLCA-YOLOv11在参数量和计算量基本不变的情况下,mAP提升2.5%,其中行人检测提升3.

sundong_81的博客 279

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

User Story 在敏捷开发过程中的应用 1 从这里开始 第一部分我们将快速浏览什么是user stories以及如何使用,然后将阐述如何编写User Stories;如何通过系统用户模型来定义Stories;当客户自己本身无法前来的时候,如何同那些能够充当客户角色的人一起工作;如何来编写测试用例,来证明你的Stories已经被成功编写的细节,最后将阐述几条编写好的Story的指导建议。 当你学完这部分之后,你就可以定义、编写、测试你的Stories,同时你应该准备去看如何通过User S

哈利路亚的收藏夹 1358

零基础学simulink仿真建模--基于Simulink进行近端策略优化(PPO)路径规划的仿真建模

特点高效性与稳定性:通过引入剪裁机制,在更新策略时限制步长,从而提高了训练过程的稳定性和效率。适用于多种动作空间:可以处理连续和离散的动作空间问题。无需模型:不需要预先知道环境的确切模型,适合复杂或未知环境。挑战收敛速度与稳定性:确保算法能够在合理的时间内找到近似最优解,并保持训练过程的稳定性。探索与利用平衡:在探索新路径和利用已知信息之间取得平衡。计算资源:对于大规模状态空间和动作空间,计算资源需求较高。首先明确要模拟的任务内容。目标(例如到达指定地点、避开障碍物等)。

amy_mhd的博客 249

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

一文学会编写用户故事 (User Stories)

敏捷中的用户故事是什么? 用户故事是对需求的简单描述,是捕获用户需求的流行敏捷方法。它可以作为团队关于用户需求的指南。用户故事是您将在敏捷项目管理课程中学习的众多敏捷技术或方法之一。 用户故事提供了预期的背景和清晰度,而不关注技术细节。过早定义技术细节可能会阻碍替代设计选项和变更。用户故事故意含糊不清,为创造力和口译提供了空间。 用户故事从最终用户的角度讲,并遵循以下格式: 作为........

Warren Lynch 的博客 3174

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 微软收购人工智能创业公司Bonsai
下一篇: 微信小游戏开发入门:示例代码介绍
codinghello
博客等级 码龄25年 47粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值