50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

确定非功能需求

  • 2011-07-01
  • 本文字数:1289 字

    阅读完需:约 4 分钟

非功能需求一般和系统的状态有关而与系统需要提供的功能无关。通常是系统的“ ilities”功能,比如可扩展性(scalability)、互操作性(interoperability)、可维护性(maintainability)、移植性(portability)、性能和安全性都包括在此类。敏捷团队经常纠结于定义和估算项目的非功能需求。

Mike Cohn 建议几乎所有的非功能需求都能以用户故事表述。他给出了几个例子展示非功能需求能够适用标准的用户故事模板

幸运的是约束 / 非功能需求能很容易的按用户故事处理。这里给出几个例子:

  • 作为客户,我要在从 Windows 95 之后的所有版本的 Windows 上运行产品。
  • 作为 CTO,我要(新)系统使用我们已有的订单数据库而不是创建新数据库,这样我们就不用再多维护一个数据库了。
  • 作为用户,我要网站在 99.999% 的时间是可访问的,这样我就不会感到沮丧并找其它的网站来用。

然而,Mike 也警告说用户故事模板只是用来作为一个思考工具。不应该用一个固定的模板来记录所有的非功能需求。

Jason 建议不要试图在用户故事级别记录非功能需求,团队应该把它们作为(项目)大图景的一部分。按照 Jason 所说,在他的团队,他们尝试过在每个单独的用户故事级别记录非功能需求,但是没起到作用。他提到,

我喜欢把这些非功能需求(NFR)用户故事写在墙上并在工作区都能看到,这样可以提醒团队在给出估算时考虑这些约束的因素。

Mike 还提出一种明确的方法来估算非功能需求。按他所说,非功能需求与两个成本相关联

  • 初始遵循(非功能需求)成本——团队满足非功能需求所用的工作量。比如,在 sprint 5 花在性能测试上的工作量。
  • 持续遵循(非功能需求)成本——在以后的 sprint 中满足非功能需求的工作量。

一旦团队接受非功能需求作为项目的一部分(就像我们团队在 sprint 5 中做的),他们需要把持续达到非功能需求作为项目的提示。我认为这种成本就像上税。进行性能测试(或者说遵从任何非功能需求)产生了一些额外的开支(税)。这种开支,或者说税,是必须定期付出的。

为了估算,Mike 认为这两种成本需要单独考虑。初始遵循成本应该和任何其它的用户故事或产品 backlog 中的任务一样被估算。持续遵循成本,团队和 product owner 需要决定多久要进行一次遵循验证工作。

例如,假设团队和 product owner 同意每四个两周的 sprint 中进行一次性能测试。团队估算每次第四个 sprint 有六个点的工作要做。那就是大约每个 sprint1.5 点。如果团队的速度(velocity)是 30 个点,1.5 点可以认为是大约 5% 的税。

Nick Xldis 对遵循成本进行了一次非常有意思的观察。据 Nick 所说,

如果这种税持续增长,那你的架构或流程上就有问题了,需要格外关注。这是对于技术债的很好的晴雨表。

Scott Ambler 通过提升一个独立测试团队的能力分享了管理非功能需求的想法。

Kassab、Olga、Maya 和 Alain 介绍了 NFR 大小测量方法(NFSM)来减少估算非功能需求中的不确定性。

因此,处理非功能需求可能不是痛苦的挣扎。关键是尽早处理它们并关注持续成本。

注意:关于非功能需求这一术语的使用有很多想法和争论。Mike Cohn 称其为约束而 Tom Glib 强烈建议称之为质量需求

查看英文原文: Nailing Down Non-Functional Requirements

2011-07-01 08:323440
用户头像

发布了 32 篇内容, 共 10.0 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

一种播放远程TS格式媒体文件的新方案

Changing Lin

12月日更

Flutter 应用程序中使用 GridTile 小部件

坚果

28天写作 12月日更

三年磨一剑,高德体验优化总结

阿里巴巴终端技术

ios android 性能优化 移动开发 客户端

国家质量基础设施(NQI)一站式服务平台,NQI云服务平台建设

a13823115807

质量基础设施一站式服务 一站式服务平台开发

高质量的缺陷分析:让自己少写 bug

阿里技术

技术管理 技术人生 内容合集

恒源云(GPUSHARE)_文本数据扩增时,哪些单词 (不) 应该被选择?

恒源云

深度学习 语音识别 语义

PMI 的野望

Franklin 许峰

DevOps 敏捷 Lean 规范敏捷 PMI

飞桨中国行——生产制造专场

百度大脑

人工智能

计算机网络体系结构

淡泊明志、宁静致远

TCP 网络结构

EMQ X 企业版 v4.4.0 发布:新增三项集成支持、增强异常诊断能力

EMQ映云科技

云原生 物联网 IoT mqtt 规则引擎

热门招聘丨 XTransfer史上最全产品技术岗位公开招聘

XTransfer技术

产品 技术 招聘 XTransfer

Flutter 高性能、多功能的全场景滚动容器原理与实践

阿里巴巴终端技术

flutter 移动开发 客户端

阿里技术 技术人成长| 内容合集

阿里技术

技术管理 技术人生 技术专题合集

【12月日更】浅谈Golang两种线程安全的map

小梁编程汇

golang 缓存 高性能 并发 多线程安全

多行内容超出...显示的终极解决方案

CRMEB

Python爬虫实战,pymysql模块,Python实现抓取音乐评论

Java全栈架构师

Python MySQL 数据库 程序员 面试

安装TortoiseGit教程 手把手教学

Z.

git 工具 安装 Tortoisegit

联想企业科技集团与京东耀弘签订战略合作协议 实现合作发展新跨越

科技大数据

第七模块总结

张靖

#架构实战营

如何写好代码?

阿里技术

技术管理 技术人生 内容合集

架构实战 - 模块七

唐敏

架构实战营

技术三板斧:关于技术规划、管理、架构的思考

阿里技术

技术管理 技术人生 内容合集

百度API接口智能化测试探索与实践

百度开发者中心

自动化测试 API测试 智能化测试

技术人如何自我成长?

阿里技术

技术管理 技术人生 内容合集

让“美”势不可挡,DataPipeline助力全球知名化妆品企业数字化营销再提速

DataPipeline数见科技

大数据 中间件 数据融合 数据迁移 数据管理

如何优雅的关闭 Java 线程池

淡泊明志、宁静致远

线程池

王者荣耀商城异地多活架构设计

张靖

#架构实战营

2021年SASE融合战略路线图(一)

devpoint

SD-WAN sase 12月日更

揭开神秘面纱,如何组织一次分布式压测

博睿数据

区块链数字版权,区块链数字藏品交易系统开发

a13823115807

#区块链# 区块链技术应用 区块链数字藏品

百度翻译十周年:核心技术持续领先,日翻译量超千亿字符

科技热闻

确定非功能需求_研发效能_Vikas Hazrati_InfoQ精选文章