一百种简单整人方法_一种非常简单的用户故事方法

一百种简单整人方法

User stories are a great way to plan development work. In theory. But how do you avoid getting burned in practice? I propose a radically simple approach.

用户故事是计划开发工作的好方法。 理论上。 但是,如何避免在实践中被烫伤? 我提出了一种非常简单的方法。

Here's a popular template to describe a user story:

这是一个描述用户故事的流行模板:

Here's an example user story:

这是一个示例用户故事:

User stories look at software from a perspective of user value. After implementing a story, the developers can get feedback from users whether they're satisfied or if there's something they'd like changed. That's the core idea of agile development.

用户故事从用户价值的角度看待软件。 实施完故事后,开发人员可以从用户那里获得反馈,无论他们是否满意或是否需要更改。 这就是敏捷开发的核心思想。

Good user stories follow the three Cs: Card, Conversation, and Confirmation [1].

良好的用户故事遵循以下三个C: CardConversationConfirmation [1]。

Card means: user stories are short. They focus on the value provided to the user. You can write them on an index card, or a Post-it. Of course, a Post-it doesn't contain all the information necessary for development.

表示:用户故事很短。 他们专注于提供给用户的价值。 您可以将它们写在索引卡或便利贴上。 当然,便利贴并不包含开发所需的所有信息。

So the team developing the software has conversations about the stories. Input from users and business stakeholders is necessary, but developers bring their ideas to the table as well. It's important that everybody keeps an open mind in these discussions.

因此,开发软件的团队可以进行对话 关于故事。 用户和业务利益相关者的输入是必要的,但是开发人员也将他们的想法也摆在桌面上。 每个人在这些讨论中都要保持开放的态度,这一点很重要。

The team documents the results of the conversations as acceptance criteria. Checking the acceptance criteria later serves as confirmation that the team has implemented the story correctly.

团队将对话结果记录为接受标准。 稍后检查验收标准作为确认 团队正确实施了故事。

验收标准和投资 (Acceptance criteria and INVEST)

The acceptance criteria should answer questions like:

接受标准应回答以下问题:

  • What are the possible user inputs?

    可能的用户输入是什么?

    For example: "The payment options are MasterCard, Visa, [...] PayPal

    例如:“付款选项包括万事达卡,维萨卡,PayPal。

    ."

    。”

  • How does the system react to user input, or a business relevant event? Under which conditions?

    系统如何响应用户输入或与业务相关的事件? 在什么条件下?

    For example: "When the user enters a wrong credit card number, the system shows the following error message: [...]"

    例如:“当用户输入错误的信用卡号时,系统显示以下错误消息:[...]”

There are many ways to document acceptance criteria. Bullet points, sketches, examples, tables. Development starts a few days after the conversation about the story. So developers need just enough documentation to remember the conversation.

有很多方法可以记录接受标准。 项目符号,草图,示例,表格。 在谈论这个故事后的几天开始发展。 因此,开发人员仅需要足够的文档来记住对话。

How does a team check if a story has a good enough quality to start implementing it? The INVEST criteria define a quality checklist for each story [2]:

团队如何检查故事是否具有足够的质量来开始实施? 投资 标准为每个故事定义一个质量检查表[2]:

  • I for Independent. The story can be implemented independently of other stories. This facilitates priority changes.

    独立 。 故事可以独立于其他故事实施。 这有助于更改优先级。

  • N for Negotiated. The conversation between developers and stakeholders about the details of the story has happened.

    N代表协商 。 开发人员和利益相关者之间就故事的细节进行了对话。

  • V for Valuable. The story provides visible value for users. In contrast to implementation tasks like querying the database, for example.

    V表示有价值 。 故事为用户提供了可见的价值。 与诸如查询数据库之类的实现任务相反。

  • E for Estimable. The developers can estimate the story.

    E可估计的 。 开发人员可以估算故事。

  • S for Small. The story can be implemented quickly. In Scrum for example in a Sprint.

    小号的 S。 这个故事可以很快实现。 例如在Scrum中的Sprint中。

  • T for Testable. The story is so concrete that the team can derive test cases.

    T可测试的 。 这个故事非常具体,团队可以得出测试用例。

实践中的问题 (The problems in practice)

I like user stories. In product planning, they shift the focus from technical details to users and their needs. That's good.

我喜欢用户故事。 在产品计划中,他们将重点从技术细节转移到用户及其需求。 非常好。

And yet, in my work as an agile coach and trainer for agile approaches, I've started questioning the common way people deal with them.

然而,在我作为敏捷方法的敏捷教练和培训师的工作中,我开始质疑人们对付它们的常见方式。

I've seen backlogs with hundreds of stories that became extremely hard to manage. I've witnessed people use the terms "feature", "epic" and "business requirement" without sharing an understanding what that even means. I've heard endless discussions about detailed acceptance criteria, and how to slice stories based on them. It was frustrating.

我看到积压下来的数百个故事变得非常难以管理。 我目睹了人们使用“功能”,“史诗”和“业务需求”这两个术语,却没有达成共识,甚至意味着什么。 我听过无休止的讨论,涉及详细的接受标准以及如何根据这些标准对故事进行切片。 真令人沮丧。

I claim there is an alternative. A simple way to avoid all these traps. First, you need to understand that there are two fundamental levels of user stories.

我声称还有另一种选择。 避免所有这些陷阱的简单方法。 首先,您需要了解用户故事有两个基本级别。

目标带来价值,但无法实现 (Goals deliver value, but can't be implemented)

In one of my courses, I ask questions like: "What can you do with a web shop?"The typical answers are: "Buy a  product", or "Order products".

在我的一门课程中,我问一些问题,例如:“您可以在网上商店做什么? 典型的答案是:“购买产品”或“订购产品”。

What the participants talk about are goals. If we were a team developing a web shop, we might come up with the following user story:

参与者谈论的是目标。 如果我们是开发网上商店的团队,那么我们可能会想到以下用户案例:

Is this goal level story valuable to the user? Yes! It reflects the needs of the web shop customer.

这个目标水平的故事对用户有价值吗? 是! 它反映了网上商店客户的需求。

Can you implement this goal directly? No! In order to implement a goal, you need to derive steps to reach it first. For the story "Buy Product", the steps might look like these:

您可以直接实现这个目标吗? 没有! 为了实现目标,您需要采取步骤首先达到目标。 对于故事“购买产品”,步骤可能如下所示:

Each step could be documented with the user story template: "As a web shop customer, I want to enter the address so that the product is shipped to me."

每个步骤都可以用用户故事模板记录下来:“作为网上商店的客户,我想输入地址以便将产品运送给我。”

Can you implement this step level story directly? Yes! As soon as you have clarified the acceptance criteria. But is it valuable for the user? Without the other steps, no.

您可以直接实施此步骤故事吗? 是! 一旦您弄清了接受标准。 但这对用户有价值吗? 没有其他步骤,没有。

Value only emerges when the goal has been reached. Each step represents progress towards the goal. But independently, the step has no value. Does it make sense to use the story template for it then?

价值只有在达到目标时才会出现。 每个步骤代表朝着目标前进。 但是独立地,该步骤没有任何价值。 那么,使用故事模板是否有意义?

彻底简单的方法 (A radically simple approach)

The stories at the goal level are coarse grained. They can be used for long-term planning, without wasting effort on details:

目标级别的故事是粗粒度的。 它们可用于长期计划,而不会浪费细节:

You can often realize good user stories at the goal level independently of each other. And they deliver value. They are Independent, Negotiated, and Valuable. But they are not Small, easily Estimable and Testable. Because you cannot define acceptance criteria for them without talking about steps.

您通常可以彼此独立地在目标级别上实现良好的用户故事。 他们创造价值。 他们是 ndependent,N egotiated和V aluable。 但他们不是S商城,轻松ËstimableT estable。 因为您不能不讨论步骤就为他们定义验收标准。

The stories at the step level are Negotiated, Estimable, Small, and Testable. However, they are not Independent and do not provide Value alone.

在步骤级别故事是N egotiated,E stimable,S商场,和T estable。 然而,它们不是 ndependent,不提供值孤单。

How do you combine the two kinds of stories into one simple approach? Here's my proposal.

您如何将两种故事组合成一种简单的方法? 这是我的建议。

The team picks a goal, say "Buy product". The team then reflects: "What is the simplest way to reach the goal? And how can we reduce architectural risks early?"

团队选择了一个目标,说“购买产品”。 然后,团队反映:“实现目标的最简单方法是什么?我们如何尽早降低架构风险?”

Let's assume that the team sees the greatest risk in the communication with PayPal, because they've never implemented an interface to PayPal before.

让我们假设团队在与PayPal的通信中看到最大的风险,因为他们之前从未实现过与PayPal的接口。

So what does a simple way to get to the "Buy product" goal look like? The team puts goal level story, step level stories and acceptance criteria as stickie notes below each other:

那么,达到“购买产品”目标的简单方法是什么样的呢? 团队将目标级别的故事,步骤级别的故事和验收标准放在彼此下方的粘滞便笺上:

Here's what the acceptance criteria say (green stickies). There is only one fixed product that can be ordered. No search, no choice. The user interface is basic, and only allows users to pay with PayPal.

这是验收标准所说的(绿色胶粘物)。 只能订购一种固定产品。 没有搜索,没有选择。 用户界面是基本的,仅允许用户使用PayPal付款。

These are the first steps that the developers implement. Once the developers have implemented a step, they demonstrate it to company internal stakeholders. At latest when a goal is reached, the team involves users. Getting feedback and deriving insights for further iterations is crucial.

这些是开发人员实施的第一步。 开发人员实施步骤后,便会向公司内部利益相关者展示该步骤。 最迟在达到目标时,团队就会吸引用户。 获得反馈并获得进一步迭代的见解至关重要。

In later iterations, the team adds and changes stories. Examples include: more products, a search capability, and new payment methods. Or the team picks another story as a goal. Whatever is most valuable and makes sense at a given point in time.

在以后的迭代中,团队添加和更改故事。 示例包括:更多产品,搜索功能和新的付款方式。 或者团队选择另一个故事作为目标。 在给定的时间点上最有价值并有意义的事物。

摘要 (Summary)

You focus on a few goals to look further ahead. But you only discuss the acceptance criteria of the steps that you will implement in a few days. You implement the steps and gather feedback. You use the feedback to inform what you will develop in the future.

您专注于一些目标,以进一步展望未来。 但是,您仅讨论几天内将要执行的步骤的接受标准。 您执行这些步骤并收集反馈。 您可以使用反馈来告知您将来的发展。

That way, everybody has a clear idea of what happens in development. You avoid wasteful discussions. And you keep backlog management to a minimum.

这样,每个人都对开发中发生的事情有清晰的认识。 您避免浪费时间的讨论。 而且您可以将积压管理降至最低。

I've followed this approach many times. When everybody involved is on board, it works great. It makes development a joy.

我已经多次采用这种方法。 当每个人都参与其中时,它会发挥很大的作用。 它使发展充满欢乐。

And that's it.  

就是这样。

Sources:

资料来源:

[1] Ron Jeffries 3Cs: https://ronjeffries.com/articles/019-01ff/3cs-revisited/

[1] Ron Jeffries 3C: https : //ronjeffries.com/articles/019-01ff/3cs-revisited/

[2] Bill Wake on INVEST criteria: https://xp123.com/articles/invest-in-good-stories-and-smart-tasks/

[2] Bill Wake关于投资标准: https : //xp123.com/articles/invest-in-good-stories-and-smart-tasks/

To get the basics of agile software development right, visit my online course. If you want to keep up with what I'm doing or drop me a note, follow me on dev.to, LinkedIn or Twitter. Or visit my GitHub project.

要正确掌握敏捷软件开发的基础知识 ,请访问我的在线课程。 如果您想跟上我的工作进度或给我留言 ,请在dev.to , LinkedIn或Twitter上关注我。 或访问我的GitHub项目 。

翻译自: https://www.freecodecamp.org/news/a-radical-simple-approach-to-user-stories/

一百种简单整人方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/391267.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/391267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

COVID-19和世界幸福报告数据告诉我们什么?

For many people, the idea of ​​staying home actually sounded good at first. This process was really efficient for Netflix and Amazon. But then sad truths awaited us. What was boring was the number of dead and intubated patients one after the other. We al…

Python:self理解

Python类 class Student:# 类变量,可以通过类.类变量(Student.classroom)或者实例.类变量(a.classroom)方式调用classroom 火箭班def __init__(self, name, age):# self代表类的实例,self.name name表示当实例化Student时传入的name参数赋值给类的实例…

leetcode 633. 平方数之和(双指针)

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 b2 c 。 示例 1: 输入:c 5 输出:true 解释:1 * 1 2 * 2 5 示例 2: 输入:c 3 输出:false 示例 3&…

洛谷 P2919 [USACO08NOV]守护农场Guarding the Farm

题目描述 The farm has many hills upon which Farmer John would like to place guards to ensure the safety of his valuable milk-cows. He wonders how many guards he will need if he wishes to put one on top of each hill. He has a map supplied as a matrix of int…

iOS 开发一定要尝试的 Texture(ASDK)

原文链接 - iOS 开发一定要尝试的 Texture(ASDK)(排版正常, 包含视频) 前言 本篇所涉及的性能问题我都将根据滑动的流畅性来评判, 包括掉帧情况和一些实际体验 ASDK 已经改名为 Texture, 我习惯称作 ASDK 编译环境: MacOS 10.13.3, Xcode 9.2 参与测试机型: iPhone 6 10.3.3, i…

lisp语言是最好的语言_Lisp可能不是数据科学的最佳语言,但是我们仍然可以从中学到什么呢?...

lisp语言是最好的语言This article is in response to Emmet Boudreau’s article ‘Should We be Using Lisp for Data-Science’.本文是对 Emmet Boudreau的文章“我们应该将Lisp用于数据科学”的 回应 。 Below, unless otherwise stated, lisp refers to Common Lisp; in …

链接访问后刷新颜色回到初始_如何使链接可访问(提示:颜色不够)

链接访问后刷新颜色回到初始Link accessibility is one of the most important aspects of usability. However, designers often dont understand what it takes to make links accessible. Most frequently, they only distinguish links by color, which makes it hard for …

567

567 转载于:https://www.cnblogs.com/Forever77/p/11519678.html

leetcode 403. 青蛙过河(dp)

一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。 给你石子的位置列表 stones(用单元格序号 升序 表示&#xff…

static、volatile、synchronize

原子性(排他性):不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作!可见性:多个线程对同一份数据操作,thread1改变了某个变量的值,要保证thread2…

tensorflow基本教程

转载自 http://tensornews.cn/ 转载于:https://www.cnblogs.com/Chris-01/p/11523316.html

1.10-linux三剑客之sed命令详解及用法

内容:1.sed命令介绍2.语法格式,常用功能查询 增加 替换 批量修改文件名第1章 sed是什么字符流编辑器 Stream Editor第2章 sed功能与版本处理出文本文件,日志,配置文件等增加,删除,修改,查询sed --versionsed -i 修改文件内容第3章 语法格式3.1 语法格式sed [选项] [sed指令…

python pca主成分_超越“经典” PCA:功能主成分分析(FPCA)应用于使用Python的时间序列...

python pca主成分FPCA is traditionally implemented with R but the “FDASRSF” package from J. Derek Tucker will achieve similar (and even greater) results in Python.FPCA传统上是使用R实现的,但是J. Derek Tucker的“ FDASRSF ”软件包将在Python中获得相…

blender视图缩放_如何使用主视图类型缩放Elm视图

blender视图缩放A concept to help Elm Views scale as applications grow larger and more complicated.当应用程序变得更大和更复杂时,可帮助Elm Views扩展的概念。 In Elm, there are a lot of great ways to scale the Model, and update, but there is more c…

初探Golang(2)-常量和命名规范

1 命名规范 1.1 Go是一门区分大小写的语言。 命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。 Go语言从语法层面进行了以下限定:任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该以小写字母开头。 当命名&#xff08…

789

789 转载于:https://www.cnblogs.com/Forever77/p/11524161.html

sql的split()函数

ALTER function [dbo].[StrToList_Test](Str varchar(max), fg NVARCHAR(200)) returns table table(value nvarchar(max) ) as begindeclare tempStr nvarchar(max),len INT LEN(fg); --去除前后分割符 while substring(Str,1,len)fg beginset Strsubstring(Str,len1,len(S…

大数据平台构建_如何像产品一样构建数据平台

大数据平台构建重点 (Top highlight)Over the past few years, many companies have embraced data platforms as an effective way to aggregate, handle, and utilize data at scale. Despite the data platform’s rising popularity, however, little literature exists on…

初探Golang(3)-数据类型

Go语言拥有两大数据类型,基本数据类型和复合数据类型。 1. 数值类型 ##有符号整数 int8(-128 -> 127) int16(-32768 -> 32767) int32(-2,147,483,648 -> 2,147,483,647) int64&#x…

freecodecamp_freeCodeCamp的服务器到底发生了什么?

freecodecampUpdate at 17:00 California time: We have now fixed most of the problems. Were still working on a few known issues, but /learn is now fully operational.加利福尼亚时间17:00更新 :我们现在解决了大多数问题。 我们仍在处理一些已知问题&#…