用户故事和敏捷方法 读书摘要

UDAD 用户故事驱动的敏捷开发 – 演讲实录 敏捷发展到今天已经在软件行业得到了广泛认可,但大多数敏捷方法都是为了解决某一特定问题而总结出来的特定方法或实践,一直缺乏一个可以将整个开发过程串接起来的成体系的方法。用户故事驱动的敏捷开发(User Story Driving Agile Development – UDAD)就是这样一套方法和实践,希望能够在软件开发的各个过程都提供最有效的方法让希望采用敏捷的团队能够有一个整体的方法论作为指导。 阅读详情

1 编写故事

这一章只列出了好故事的特点INVEST:独立的、可讨论、对用户有价值、开发人员可评估、小的、可测试的。

2 用户角色建模

这一章只列出了如何获得用户角色的方法,但并没有给出何种划分为好的依据。具体方法是一种精化的过程。

  •  大家头脑风暴找出所有可能的角色 
  •  初步整理,查看相关性 
  •  对相关的角色进行合并及移除 
  •  抽象出用户角色。

此外这一章给出了虚拟角色、极端人士两种考虑分类以保证我们考虑的齐全。

3 搜集故事

本章指出搜集需求与捕鱼的相似性,指出需求收集是一个由粗到精,先大后小,逐步精练的过程,并且需要掌握一定的技巧。

敏捷的用户故事推崇延迟细节,对于当前需要做的故事进行细化,而未来的故事则可以比较大,作为点位符,等到时机合适的时候才考虑。

作者列出了一些搜索故事的方法:用户访谈。观察、问卷、故事编写工作室。

在用户访谈时要通过开放式和背景无关的问题来从用户那里获取更多客观的信息。

在故事编写工作室中要先有一人原型,由系统的高层组件构成,针对每个角色都走一遍原型以发现用户故事。在运用原型时,最好利用深度优先的方法,把一条线上的故事都发掘出来,再切换其他的功能线。为了帮助发现故事,通过回答下面的问题可以为我们获取灵感。

  •  用户接下来最可能做什么
  •  用户会在这里犯什么错误
  •  在这里,用户会有什么困惑
  •  用户需要什么额外的信息

同时作者建议,在这个阶段,故事的数量比质量更重要。

4 与用户代理合作

本章列举了一些可能作为用户代理的群体,并给出了对应群体作为用户代理的问题,指出若不能和真实用户打成一片,最好以多个用户代理群体合作以获得软件的成功。并以最快速度发布软件,让用户使用,一旦软件发布就可以直接获得一线用户的反馈。

  •  用户经理:用户经理可能并不真正使用软件,或更关注软件的管理功能。但用户经理在软件应用结果上有一定话语权上,因此要和经理搞好关系并接触真正的用户。
  •  开发经理:开发经理也不真正使用软件,他们更关注技术先进性,除非开发经理和用户目的一致,否则开发经理用用户代理是最危险的选择之一。
  •  销售人员:销售人员更关注特性的数量,而非质量,并过分关注订单的丢失,可能导致技术线失去长远战略。
  •  领域专家:领域专家在领域软件开发中十分重要,但他们可能从专家的角度来使用软件,可能与普通用户的需求不一致。
  •  营销人员:类似与销售人员
  •  客户:决定用户是否能使用软件的人,其与使用用户的目的也可能不同,必须小心使用他们作为代理。
  •  培训师与技术支持:使用他们可能让系统最终成为培训软件或技术支持软件。
  •  业务分析师和系统分析师:很好的用户代理之一,问题是他们可能在用户问题上分析的时间过长,想的过多,而不是做调查。

5 验收测试

作者建议客户编写验收测试来判断故事是否完成,这些测试需要在开发人员写代码之前来确定,这可以让开发人员在开发时写出更完善的程序,验收测试是开发的一部分,测试用例用来 向开发团队说明故事的意图,而开发人员仍需要编写单元测试来发现验收测试之外的问题。

作者建议使用Fitness这个验收测试工作。

6 如何编写优秀的用户故事

本章是第1节的方法论,讲述怎么写出符合INVEST特性的故事。其中许多规则与编写有效用例的规则是一致的。

  •  作者建议从目标故事开发,采用纵向切分的方式切蛋糕,每个故事都能贯穿系统架构的各层。
  •  故事是独立封闭的,每个故事对用户而都完成一个完整的功能,让用户觉得有意义。
  •  故事里包含用户角色,可以使用模板:我作为(角色),想要(功能),为此(商业价值)
  •  虽然我们可以为一类用户编写故事,但从单个用户角度考虑故事,有些问题会变得更清楚
  •  以用户为主语来编写故事。
  •  为约束编写卡片,对于非功能需求,但系统必须遵守的规则可以写为约束卡。
  •  不要过早在故事中涉及用户界面
  •  虽然故事是敏捷中很好的分析需求的方法,但其他任务可以用来说明需求细节的技术都可以使用,如界面图,接口文档等。同时作者强调故事只是作为团队之间沟通的线索,故事并不能包含所有细节,但里面可以记录相关线索以供沟通时考虑,包含验收测试。

7 估算用户故事

 敏捷中以故事点来估算用户故事,不同的团队可以定义不同的点含义,1点可以是理想的1人天,也可以完成故事的难度评估,只要团队成员以一致的方法来评估即可。

 在敏捷团队中,故事是由团队评估的,而不是个人来评估的,这要求团队成员对于项目而言,技能差别不太大。

 估算的方法就是一群人坐在一起评估一个故事需要多少点,对于故事的细节,开发人员需要向客户进行详细的了解,以做出合理的评估,若大家的评估不一致,则需要相互沟通以消除这些不一致。

 对于评估出来的一组故事,需要进行三角测量。可以按点数对故事分类,检查故事点数为2的故事是否是故事点1的工作的2倍,以此类推。

 每个迭代中团队完成的故事点可以作为团队的开发速率,以在后续的迭代来作基准参考。需要注意的是,速率取的点为评估的点,而不是后来进行过校正的点数。

 作者认为对与大的点数,相差1点并不算误差,团队成员没有必要为1点之差进行讨论,因而作者建议了一个故事点的取值集合:1 2 3 5 8 13 20 40 80

8 发布计划

产品开发需要有一个路线图,它描述了产品的重点功能列表。从一份路线图上,发布计划取决于两点:发布时间和故事优先级,有了这两点,再结合团队的开发速度,就可以创建发面计划。

理想情况下,发布日期是一个时间范围,而不是一个具体的日期。而故事优先级需要由用户来排序,按照MoSCoW规则来进行排序,考虑故事未完成的风险、故事完成的价值、推迟一个故事的影响。

 必须有(MUST)  应该有(SHOULD)  可以有(COULD) 不会有(WON'T)

此外故事需要按明确的顺序排序,如第1,第2等,而不是非常高、中等等模糊顺序的分组

即使如何客户仍需要开发人员的时间评估方可进行有效的排序。因为高成本可能改变故事的优先级,相应的高风险、架构变更级别的故事都可能影响故事的优先级。当然如果用户在评估后仍然坚持选择了高成本和高风险的故事,那开发团队就需要满足客户的需要。

在计划时需要考虑一个因素是迭代长度,短迭代意味着更灵活的变更和透明性,但它会带来一些消耗。长迭代相反。不论如何迭代长度需要稳定而不能随意变化。

团队的初始速率有三种方法来获得:历史值、猜测、试运行两个迭代

9 迭代计划

本章主要讲述迭代计划会的组成内容:

  •  讨论故事
  •  从故事中分解任务
  •  开发人员评估并承担任务
  •  讨论所有故事,评估承担任务,以避免作出过于乐观的承诺

10 测量并监控速率

 注意每次迭代完成的点数不能包含部分完成的任务。

  •  通过记录多个迭代中计划点数和实际完成点数而画图,可以评估团队的评估水平和实际完成水平的变化趋势
  •  通过记录多个迭代中累积计划点和累积实际完成点而画图,可以评估团队的是否可以按计划完成发布
  •  迭代燃尽图记录了每轮迭代后团队还未完成的点数,在任务变化不大的情况下,也可以较好的预测团队的完成计划是否满足预期。
  •  迭代内的燃尽图显示了每日中还未完成的任务点数,可以帮助我们预测一个迭代的完成情况。这需要团队成员随时保持白板为最新。

 11 故事的其他讨论

 作者先将故事与IEEE 830软件需求规范进行了对比,指出830过于乏味不易理解,费时,不易管理变化。

 然后又将故事与用例进行了对比,指出二者在生存期、需求范围、完整性、目的上的不同点。

 以我的经验,用例是瀑布中需求的结果,比较重。但用例分析方法与故事分析法可以说是一样的,都以用户角色为出发点,以用户完成有价值的功能为核心。可以把故事看成用例的一种轻量级表示和应用。在软件过程中,用例可以用来组织故事,可以通过用例分析获取多个故事,在后期可以把故事组织成用例,生成文档以组织故事之间的关系。

 12 用户故事的优势

 故事比较小,且强调沟通,因而易于理解,适合计划和评估,鼓励延迟细节,支持随机应变的开发,便于传播隐性知识。适合迭代开发的轻量级的需求分析工作。

 当然故事也不是万能的,大型项目若依靠人与人之间的沟通则显得过于复杂,大量故事之间的关系也难以组织和管理,考虑到需求的可追溯性,仍需要进行一定的额外工作。

13 用户故事不良症状

  •  故事太小
  •  故事相互依赖
  •  为故事完成了额外的功能或完成了额外的故事
  •  细节过多
  •  过早考虑UI
  •  想的太远
  •  用户很难排列优先级:一般是故事过大,需要拆分
  •  用户不愿意写故事,也不愿意排列优先级

14 Scrum与故事

 本章介绍了一些Scrum的基础知识,不在此记录,用用Scrum works两天就能理解上面提到的概念与Scrum的对应。

整体来说,当你用Scrum运行个几个迭代之后,这本书里的许多知识你基本上已经掌握了,读这本书无非是把经验整理成理论,方便未使用过Scrum的同学入门,对于成熟的Scrum团队,这本书用处不太大。











[2018高清PDF]用户故事与敏捷方法 OCR.rar ) [2018高清PDF]用户故事与敏捷方法 OCR.rar )[2018高清PDF]用户故事与敏捷方法 OCR.rar ) 立即下载

相关推荐

用户故事示例

适用于软件工程课程编写用户故事时使用此示例,完整的描述用户故事。

产品读书《用户故事与敏捷方法》

废话连篇:        前段时间连着看了许多有关提高工作效率的书籍(我管它叫工具书),比如说《金字塔原理》《刻意练习》《番茄工作法图解》《麦肯锡方法》《麦肯锡工作法:麦肯锡精英的39个工作习惯》《麦肯锡工作法:个人竞争力提升50%的7堂课》等,主要是觉得自己在工作效率方面有待提升,再往之前看了一些有关数据分析基础以及和运营方面的书籍比如《谁说菜鸟不会数据分析系列》《SQL必知必会》《精益...

女王の专属领地 6391

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2134

用户故事与敏捷方法

用户故事,延迟决策

助力开发者进阶为高效技术管理者,记录沉淀打造可复用的工程方法论体系 301

计算机组成原理课程设计_微程序控制的简单模型机设计

微程序控制的简单模型机设计 要求 基本要求 完成一个简单主机的设计,模型机应具备如下能力:在自行设计的指令集基础上,运行自行编写的简单用户程序,实现特定运算功能。 弹性要求 在此基础上,完成必要的扩展,实现模型机的功能扩展设计,包括:实现多种运算功能(指令集的扩充)、支持更为丰富的寻址方式、有更为完善的微程序设计等。 实验软件和硬件环境 QuartusII, FPGA计算机组...

sailist的记录站 3万+

Qt5+OSG实战:如何用osgQOpenGLWidget在窗口中加载3D模型(附完整代码)

本文详细解析了如何在Qt5中使用osgQOpenGLWidget加载和渲染3D模型,涵盖环境配置、核心架构、性能优化及高级技巧。通过实战案例和完整代码,帮助开发者实现工业级3D模型渲染,提升Qt与OSG的整合效率。

weixin_42741930的博客 263

搜集用户故事

一、传统方法与敏捷方法的区别:        传统方法的特征是过分强调在项目早期正确地获取并写出所有的需求;        敏捷项目的特征是没有一种理想的方法可以在一个单一阶段获取到所有的用户需求。二、项目开始时用户故事整理到什么程度:        四个字,够用就行。可以也要在项目开始前尽可能多的写出用户故事,但并不是要在项目开始前要花费几个月的时间去写用户故事,相反,它要求

卢建文的专栏 1034

0基础学习diffusion_model扩散模型【易理解的公式推导】Denoising Diffusion Probabilistic Models

去噪扩散概率模型。本文是笔者在学习扩散模型时的一些笔记与心得,在公式推导过程中能够保证自己是一步一步去推导并且理解了的。概述是我认为比较重要的部分能够帮助理解公式的推导,具体的公式推导在每一小节中进行。1、扩散过程:如上图所示,扩散过程为从右到左X0→XTX0​→XT​的过程,表示对图片逐渐加噪,且Xt1X_{t+1}Xt1​是在XtX_{t}Xt​加躁得到的,其只受XtX_{t}Xt​的影响,因此扩散过程是一个马尔科夫过程。X0X_0。

zik的博客 2397

敏捷的重要工具——用户故事

敏捷最重要的思想是关注交付价值,如何确定价值?需要沟通,需要新软件的人必需和开发新软件的人充分沟通,一个合适的工具“用户故事”、应运而生。(客户在项目整个过程中全程参与)

u011906276的博客 2990

借助生成式 AI 加快创作速度,通过快速构建 Omniverse 扩展程序,您可以直接在 USD Composer 中连接首选的生成式 AI 智能体并与之交互。或者,您也可以使用由 LLM 提供支持的

通过快速构建 Omniverse 扩展程序,您可以直接在 USD Composer 中连接首选的生成式 AI 智能体并与之交互。或者,您也可以使用由 LLM 提供支持的 OpenUSD 开发方法,为您的工作流程提供强劲助力。

pvmsmfchcs的博客 683

YOLOv8【第十章:多任务扩展深度篇·第19节】YOLOv8 与 DeepLabV3+ 对比——实时性与精度的权衡!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1万+

读书笔记:《用户故事与敏捷方法》

用户故事:从客户角度出发描述功能

Rolei的博客 2511

STM32入门教程:WiFi通信

第四步:初始化串口 在生成的代码中,您可以找到一个名为 "USARTx_Init" 的函数,其中 "x" 是您选择的串口号。然后,我们使用 "AT+CIPSEND" 命令发送UDP数据,接收到服务器的回复,并在终端上显示收到的数据。在配置向导中,您可以选择启用USART串口功能,并根据您的硬件连接,将串口设置为与WiFi模块连接的串口。在上述代码中,我们使用了 "HAL_UART_Receive" 函数来接收串口数据,并使用 printf 来在终端上显示收到的数据。如果有任何问题,请随时向我提问。

2401_85258012的博客 1073

《用户故事与敏捷方法》读书笔记

第一章:概览 用户故事是对话,需求文档是描述,用户故事可以确保人人都阅读到。 用户故事面向客户,可以减少理解偏差,有助于跨职能团队互相理解和内外部的沟通。 用户故事由研发团队确定故事点大小和优先级,但是排序的时候由客户方确定,因为sprint优先级是以价值为主而不是以任务为主。 暂不开发的部分可以先以史诗占位,等到了这一步骤再开始分解成具体的用户故事,因为故事也可以迭代。 测试应尽快在迭...

o2121212的博客 557

SPICE仿真软件:PSpice_(10).噪声分析

噪声分析是电路设计和优化中的一个重要工具,特别是在低噪声放大器、传感器电路和通信电路中。通过准确设置噪声源和仿真参数,合理选择频率范围,并验证仿真结果,可以有效地评估和优化电路的噪声性能。PSpice提供的噪声分析功能强大且灵活,能够帮助工程师和研究人员在多种应用场景下进行详细的噪声分析。

kkchenjj的博客 1535

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

《用户故事和敏捷方法》读书笔记

在网上看到说这个是讲用户故事非常经典的一本, 本着"张口闭口谈敏捷而不知道user story的程序人生是不完整的"的想法, 于是搜了来看看.以前从没有接触过user story, 知道user case. 看过书之后, 绝大大部分情况下, 可以将二者等同起来看, 不过作者也讲到为什么user story不是user case, 指出了二者的不同, 不过可以将user story看成...

aibiba0894的博客 213

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

《用户故事与敏捷方法》 笔记

最近想学习下项目管理方面的方法论,找PMO借了一本书《用户故事与敏捷方法》 。两天看完,觉得有些内容还是挺有用的,虽然参与敏捷开发模式有两年多时间,实操和业务流程都会,但再回过头看一些理论,会有一些新的启发。特地做了一下笔记。 2019-8-21 第1章 概览 一个需求可被认为是故事(Story),如果一个故事很大,可称之为史诗故事(Epic) Epic>Story>Task ...

bfqs1988的专栏 578

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

读书笔记1——《用户故事与敏捷方法》

读《用户故事与敏捷方法》这本书有三天了,看了差不多快四分之一。惭愧的是看完后不能像大家那样有很多总结,很快能举一反三,有自己的想法等等,大概是看的书真的太少的缘故。不过目前对自己的要求也很明确,主要还是扫盲和快速入门。 流程:搜集需求,编写用户故事放入Backlog,计划会议将故事细化、确定验收标准,计划扑克估算故事的、讲故事分成小任务、估算工作时间、将故事放入Sprint Ba

lucialee8的博客 1201

《用户故事与敏捷方法》读书笔记——第二章

第 2 章 编写故事 优秀的故事的特点:(INVEST) 独立性(Independent) 可讨论的(Negotiable) 对用户或客户有价值的(Valuable to Purchasers or Users) 可估计的(Estimatable) 小的(Small) 可测试的(Testable) 一、独立的 我们要尽量避免故事间的相互依赖。 假如客户团队已经选择了一个高优先级的故事,但它对一...

wkh8011的博客 346

敏捷读书之用户故事:《用户故事与敏捷方法》解读

本期分享Mike Cohn《用户故事与敏捷方法》。精益思想五步:价值,价值流,流动,拉动,尽善尽美。用户故事是精益思想五步的核心载体。 首先,用户故事是价值载体,是承载用户价值的基本单元。用户故事要承载价值,而价值也要承载在用户故事这种归一化的载体中。其次,用户故事是节拍器。故事有节奏的流入流出。再次,故事是拉动器。拉动的含义是让用户按需要来拉动开发,而不是把用户不需要的功能推给用户。故事是拉动的...

GitChat 580

读书笔记:《用户故事地图》

用可视化的、全局化的角度看到用户需求

Rolei的博客 2663

《用户故事与敏捷方法》读书笔记——第一章

第一部分 起步 第一章 概览 什么是用户故事 用户故事描述了对用户、系统或软件购买者有价值的功能。 一份书面的故事描述,用来做计划和作为提示。(Card) 有关故事的对话,用于具体化故事细节。(Conversation) 测试,用户表达和编档故事细节且可用于确定故事何时完成。(Confirmation) 规划发布和迭代 假设开发团队每轮迭代的速率是13个故事点: 故事 故事点数 ...

wkh8011的博客 300
上一篇: memcached命令行参数说明
下一篇: Shell下curl的使用
zzulp
博客等级 码龄19年 464粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值