敏捷开发之用户Story(一)

2023-10-19 10:50
文章标签 开发 用户 敏捷 story

本文主要是介绍敏捷开发之用户Story(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作为自己在工作的一种记录,因为我一直认为产品经理(Product Manager  简称PM)算是一种新行业、(都说PM始于宝洁,但是也可能更早之前就出现过做着PM做的事,但他是其他职位的人。)进入中国不超过15年。所以需要我们不断的与其他的PM或人进行讨论、实践、总结,再讨论、实践、总结。形成进步学习的闭环。

敏捷开发之用户Story

用户Story也叫用户故事只需要X度一下,全部都是相关的介绍和说明,我这里就不再过多的需求。他们每一篇的内容大致都是说用户故事需要遵守INVEST原则。

INVEST原则

Independent:独立性

用户故事之间应该具有独立性,不应该依赖于其他的用户故事。一般可以通过组合用户故事或者分割用户故事来减少用户故事间的相互依赖性。

Negotiable:可协商

用户故事是由客户或者PO同开发小组的成员共同协商制定的,用户故事代表了一个用户群体的需求,而这个需求是零散的,通过相关人员的沟通,协商经常可以丰富用户故事。

Valuable:有价值

用户故事对于最终的用户是有价值的,因此应该站在用户的角度去编写,描述的是一个一个的feature,而非一个一个的task。

Estimable:可评估

对于一个用户故事的划分需要足够的领域知识,使得在划分故事之时就能大致了解故事开发的周期,为了减少估算的不确定性,故事本身不能太大。

Small:短小

故事应该尽量的短小,当然也不是说越小越好。短小的故事可以减少分解过程中估算的误差,最好的故事是能够在一个迭代周期之内完成的。如果太大就应该考虑将其拆分为多个粒度更小的用户故事。

Testable:可测试

如果一个用户故事无法进行测试,那么也就无法判断该故事是否真的完成。所以,用户故事必须在定义了验收测试通过的标准后才能认为用户故事开发完毕。

来源:@百度www.baidu.com

下面我就说说我的看法吧。希望对各位和我都起着小黄鸭的作用吧:)。

用户Story

一、用户Story的作用

用户Story,我认为是在我经历过的项目中起一个特殊的地位。在开发中你可以不使用Story,你都可以完成整个流程的开发。这样的结果只是会被“锤脑壳”。。。至于原因嘛Emmmm...

除了减少“挨打”的次数,用户Story还是以简短的话语尽量还原”场景“下的用户需求。用户是在怎样的一个情况下提出这个需求的。

二、用户Story—基本要素

写用户Story的时候我们需要围绕三个基本要素来写。用户(角色)、需求(目的)、原因(好处)三点。

通过一定的需要修饰就组成了我们常见的Story语句。

来源http://thebside.ca/未商用侵必删

三、用户Story—用户(角色)

在写用户Story时我们最先写的就是用户(角色),作为Story的开头,用户(角色)十分的重要,因为我们产品出发点都是从用户(角色)出发,不同的用户(角色)他们的需求和原因都是大不相同的。不同用户(角色)之间,都会存在着相互矛盾、相互冲突的需求。(就像在居民楼里休息的上班族与居民楼外广场上跳舞的阿姨,他们就可能存在着冲突)所以我们在”创建用户“时一定要给他附带属性。如:学生、程序员、Coser等或者在这些属性前加上特殊字以便自己更好的确定用户属性。如:秃顶的程序员(疯狂暗示)、没钱的学生、富LuoLi等

来源:@百度 未商用侵必删

四、用户Story—需求(目的)

在前面明确了用户(角色)之后,我们就需要确定他的需求(目的),一方面可以从我们的商业价值来表述。另一方面也可以从用户需求来描述(其实我觉得他俩就是一个,能够解决用户需求的产品,能够解决的方式,方法也是他的商业价值)。

我们在描述需求(目的)的时候,我们需要尽可能地不要直接去描述功能(虽然知道是什么功能)。至于原因,我个人认为是为了更加偏向于”真实需求“。

举个例子:在是古代,人们只能骑马,从西藏到黑龙江需要几十年(瞎掰)。

这个时候有个传令官需要从西藏到黑龙江。这个传令官就是角色那个的需求是什么?按照我们现在的思维的话,他需要的飞机,直接飞过去。几个小时就可以达到。但是这个需求是真实的吗?肯定不是,那他的真实需求是什么? 他的真实需求可能只是能够更快的到达目的地(黑龙江)罢了。

把时间换成现代,马儿变成车,但是他的需求还是不是飞机这个”功能“还是只是能够更快的到达目的地(黑龙江)罢了。

这样在后期开发就尽量避免出现我只想要个指甲刀,结果你给我一把瑞士军刀,延长了开发周期和资源成本。

来源:@百度

五、用户Story—原因

最后一部分就是用户Story中的原因,是什么样的原因促使前面的用户(角色)产生了前面的需求(目的),是开发没有女朋友吗?是后端的纸片人没有更新吗?更或者是为了治疗秃顶?

原因其实很简单只需要从实际出发,而非凭空想象,即可。

六、常见的Story模板

一、我是(角色),我希望(功能),这样(好处)。

二、作为(角色),我想要(商业价值),以便(原因)。

三、作为(角色),我想(目标),以便(某种原因)。

在写Story的时候我们需要尽可能的保持刚刚好的详细,让用户Story有“笔直性”。避免增加过多的细节要求,让Story变得复杂。

      结尾大家也来试试写一些用户Story。

 

 

 

 

 

这篇关于敏捷开发之用户Story(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/239281

相关文章

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA