我将通过一个例子给出答案。
假设您的团队已经实施了以下故事:
Scenario: User can log in to the website
Given I have entered my login credentials
When I submit these credentials
Then I get navigated to my home screen
回答问题 1) - 可以将非功能性需求指定为故事吗?
项目利益相关者给了你一个 NFR,内容如下:
对于所有网站操作,用户不应再等待 5 秒钟的响应。
您可以为此创建一个故事,如下所示:
Scenario: User can log in to the website in a timely fashion
Given I have entered my login credentials
When I submit these credentials
Then I get navigated to my home screen
And I should have to wait no longer than the maximum acceptable wait time
请注意,我没有强制指定“5”秒,而是将场景保持为声明性,而是指定“等待时间不超过最大可接受的等待时间”。
回答问题 2) - 是否应将非功能性需求指定为故事?
NFR绝对应该被指定为一个故事。
创建故事将允许估计此任务的复杂性(以便团队可以确定相对于过去的故事的难度),此外团队可以将故事分解为任务(可以以小时为单位进行估算,以便您可以确定团队是否可以在当前 sprint 中实施这个故事)。
因此,在我设计的示例中,团队可能已经实现了登录代码,但他们随后会确定如何实现登录时间不得超过 5 秒的要求。您还可以探索这个问题的反面,即如果登录时间超过 5 秒会发生什么?例如
Scenario: User encounters a delay when logging in to the website
Given I have entered my login credentials
When I submit these credentials
And I wait for over the the maximum acceptable wait time
Then the Production team is informed
And the problem is logged
And I get navigated to my home screen
最后,关于问题 3) - 故事会是什么样子?
我已经详细说明了答案 1) 和 2) 中的故事的样子