什么是故事 敏捷_那么,故事是什么?

什么是故事 敏捷

我不了解您,但是在撰写敏捷故事时总是感到有些紧张。 我经常担心我是否是写它们的最佳人选,以及我是否正确。 第一个担心的原因是敏捷福音说最好的故事是由客户编写的,而第二个担心的原因是我的故事将被包括项目利益相关者在内的许多人审查。 所有这些让我开始思考:写一个故事,这有多难? 因此,我环顾四周,看看其他人可以提供什么建议。

其中一些建议通常含糊不清,例如 James Shore和Shane Warden的书《敏捷发展的艺术》指出:

“故事代表了项目的独立要素。 它们往往对应于各个功能,通常代表一两天的工作

该书继续给出其他建议,例如故事“代表客户价值”并且应该具有“清晰的完成标准” ,这符合敏捷的宣言 ,但仍然很模糊。

现在,我想可以通过使用众所周知的“ as”,“ I”和“ so”约定来编写故事来克服这种模糊性,这种约定如下:

Title: <some title>
As a <role>
I want <to obtain some goal>
So that <I get some benefit>

Wikipedia将这一想法的发展归结于为广告服务器人员Connextra工作的Connextra团队 。 这种格式的想法是,它从用户的角度定义故事,定义用户想要做的事情以及预期的结果。

但是,我仍然很担心。 我的故事中应包含多少细节? 我的故事涵盖的工作范围应该是什么? 幸运的是,詹姆斯·肖尔斯(James Shores)在这里进行了救援。 请记住,故事也应用于估计目的,他说,
敏捷开发的艺术 ,故事需要大约1至2天才能实施。 我必须从用户的角度找到简短明了的单词形式,并提供足够的细节以提供一到两天的工作。 您觉得这有点矛盾吗?

然后我得到一个启示,如果您的故事没有足够的细节,无法实施或完全是错误的,那并没有太大关系。 故事的全部要点是,它们是一种交流工具,可以被讨论,评论,确定大小和估计,这意味着它们有望发展。 我想这就是为什么敏捷通常定义两种类型的故事:史诗和现成的故事。

史诗般的故事agilemodeling.com定义的故事,该故事“太大,无法在单个迭代中实施,因此需要分解为较小的用户故事”。

现成的故事是团队可以实施并且产品负责人可以优先考虑的故事

在我看来,这似乎过于简单了,因为在史诗般的故事与现成的故事之间,常常有五十种灰色阴影 ,这是另一种故事。

我以为我会尝试通过一个示例来说明一个故事的演变,并且在这个博客的悠久历史中,我的示例必须牵强和精心设计。 在此示例中,我将以Backwater Bank inc为例,这是一家老式传统银行,您的钱可以安全使用。 他们是如此传统,以至于没有互联网服务,那里有木制柜台,高高的天花板,人工柜员和支票簿。 想象贝德福德(Bedford)瀑布的建筑和贷款公司这是美好的生活 。 但是,这是21世纪,他们的新任首席执行官希望银行建立一个全新的网站,客户可以在不访问当地分行的情况下做他们需要做的一切。 新任首席执行官聘请了Agile Cowboys Inc来开发自己的网站, Agile Cowboys Inc的 CEO与该银行的CEO聚在一起,并提出了以下故事:

As a banker
I want my bank to give customers an online service
So that I can compete with the big city banks and maximise my profit

这个史诗般的故事定义了整个项目; 这是完全无法实现的,如果是这样,那么在您的待办事项列表中仅包含一个故事就不是非常敏捷。

敏捷牛仔公司的首席执行官发现这个故事存在问题,并组建了一个敏捷项目团队,将这个故事传给产品负责人,然后再去当之无愧的高尔夫比赛。 产品负责人与开发团队以及银行最杰出的一些职员(也就是利益相关者)举行了会议,他们开始整理一个故事的积压工作,提出了许多故事,包括:

Title: Create a New Customer Account
As a person in the street
I want to create my online account
So that I can become a customer of the bank
Title: Move Existing Customer Accounts Online
As a banker
I want to convert my customers' accounts into internet accounts
So that they can access them on line
Title: Paying Bills
As a customer
I want to access my online account
So that I can pay my bills
Title: Paying Bills
As a customer
I want to access my online account
So that I can view my statements
Title: Account Transfers
As a customer
I want to access my online account
So that I can transfer money between accounts
Title: Order Cheque Book
As a customer
I want to access my online account
So that I can order a new cheque book
Title: Sales of New Products
As the banker
I want to sell the customer more products
So that I can buy myself a new house in the country.
Title: Display Account Balance
As a customer
I want to access my online account
So that I can see the balance of my account(s)

这些只是Backwater Bank inc想到的一些网上银行故事,但它们仍然是史诗级的。 你怎么知道? 传统观点认为您应使用INVEST助记符 。 以“ Display Account Balance故事为例。 似乎很直接的编码明智的做法:从数据库中加载余额,然后将其显示在屏幕上; 但是,事情并不是那么简单。 它取决于“ Create a New Customer Account或“ Move Existing Customer Accounts Online故事,这些故事必须在此之前完成。 另外,还会想到很多问题:

  1. 那么安全性呢? 我们如何验证和授权客户查看其帐户余额?
  2. 我们是仅对一个帐户余额进行编码,还是客户将能够检查其任何帐户的余额?
  3. 数据访问呢? 我们是访问Backwater Bank Inc的现有数据库还是创建一个新数据库?
  4. 那么服务器技术呢? Java的? .NET?
  5. 我们是否必须支持所有浏览器,包括IE6?
  6. 今天的帐户交易如何? 由于某些支票尚未结清,它们是否包括在余额中?

好的,所以我在组合中添加了一些实现问题,毕竟我是开发人员,在估算事情之前,我必须知道我要处理的内容。 然而,回到故事,这些问题导致了新故事的产生:

Title: User Logs In
As the chief of internet security
I want the customer to login and be authenticated against those things he/she is allowed to see
So that the website is secure and a customer's data remains confidential.

这也可能导致对现有故事的修订/拆分。 在这种情况下,“以便我可以获取我的帐户余额”变为“以便我可以获取当前帐户的余额”:

Title: Display Account Balance
As a customer
I want to access my online account
So that I can see the balance of my current account

…以及待完成的另一个故事已添加到待办事项中:

Title: Display Balance of All Accounts
As a customer
I want to access my online account
So that I can see the balance of all my accounts

现在,假设“ Move Existing Customer Accounts Online故事已经完成,并且您选择了服务器技术,设置了开发环境并且对Backwater Bank's数据库有一定的了解,那么您是否可以实施“ Display Account Balance故事? 好了吗? 几乎……我们现在需要考虑接受标准,为此我们可以回溯到一些先前的问题。 例如:

Title: Display Account Balance
As a customer
I want to access my online account
So that I can see the balance of my current account

Acceptance Criteria

1) Will only need work using Chrome, behaviour on other browsers is undefined.
2) The balance will only consider transactions up to midnight of the previous day
3) Positive balances will be in black, for example $244.45
4) Overdrawn balances will be in red and use a '(nnn.nn)' format. For example:(134.87)

Display Account Balance准备就绪的最终标记是附加的估算值和待办事项列表中的优先级。 这是在积压细化会议(AKA产品整理会议)上完成的,该恶臭会议由产品所有者,利益相关者,开发团队和Scrum负责人等人组成。 在本次会议中,如果优先级足够高,它将被添加到下一个Scrum中,当它开始时,开发团队将变得很忙。

故事的结局是什么? 敏捷牛仔网上项目非常成功,银行的客户使用互联网访问了他们的帐户。 银行的员工没有那么多事情,他们花时间在次级市场上借钱并向自己支付巨额奖金。 2008年,这家银行因欠下数十亿美元而倒闭,只有您和我(纳税人)才得以保存。

对于我来说,也许我应该以对《 Connextra故事卡》的解释来结束:

Title: Writing Good Stories
As a developer
I want to know how to write good stories
So that I can submit cards to the planning game that are clear and will be accepted in the next iteration.

这是另一部史诗的开始吗?

参考: 那么,故事是什么? 来自我们的JCG合作伙伴 Roger Hughes,来自Captain Debug的Blog博客。

翻译自: https://www.javacodegeeks.com/2013/06/so-whats-in-a-story.html

什么是故事 敏捷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值