AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

确定非功能需求

  • 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:323310
用户头像

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

关注

评论

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

Java中高级核心知识全面解析——常用框架(Spring中-Bean-的作用域与生命周期)

爱好编程进阶

Java 面试 后端开发

在Redis中使用Pipelining提升查询速度

CRMEB

IndexedDB 代码封装、性能摸索以及多标签支持

网易云信

JavaScript 数据库

服务可用性成险企智能运维关键破局能力,博睿数据APM下场助力

博睿数据

Java Shutdown Hook 场景使用和源码分析

爱好编程进阶

Java 面试 后端开发

JavaOOP面试题50题(含答案)

爱好编程进阶

Java 面试 后端开发

Java基础 - Eclipse,API,Object常用方法

爱好编程进阶

Java 面试 后端开发

Java基础知识点总结

爱好编程进阶

Java 面试 后端开发

Java并发之Condition详解

爱好编程进阶

Java 面试 后端开发

Java树结构实际应用(平衡二叉树-AVL树)

爱好编程进阶

Java 面试 后端开发

Java-进阶:Java-File-&-IO—1

爱好编程进阶

Java 面试 后端开发

Java面试题总结(附答案)

爱好编程进阶

Java 面试 后端开发

啃论文俱乐部的团队之道和成长之路

PaperResearch

开源 OpenHarmony 啃论文俱乐部 技术自由

旺链周 | 我们的价值观,我们来代言

旺链科技

区块链 活动 价值观

Java之Java特点

爱好编程进阶

Java 面试 后端开发

Java流程控制语句-分支结构(选择结构)

爱好编程进阶

Java 面试 后端开发

确定还不来看看?这样管理你的代码库既方便又省心!

Jianmu

开源 持续集成 工作流 代码管理 workflow

银行应构建主动式客户体验管理体系,助力客户价值增长

易观分析

银行 客户体验管理

高层次人才一站式服务平台开发 人才综合服务平台系统

a13823115807

极致体验,揭秘抖音背后的音视频技术

字节跳动视频云技术团队

音视频开发 视频云

JDK、JRE、JIT

爱好编程进阶

Java 面试 后端开发

Go能实现AOP吗?

捉虫大师

Java Go aop 4月月更

FTP指的是什么协议?由什么组成?有什么作用?

行云管家

运维 网络协议 服务器 ftp

Java8的这些集合骚操作,你掌握了嘛?

爱好编程进阶

Java 面试 后端开发

【二级等保】二级等保需要做日志审计吗?

行云管家

等保 日志审计 等保2.0 二级等保

蕉下招股书里提了26次的DTC,到底是啥?

易观分析

DTC

车联网通信安全之 SSL/TLS 协议|车联网系列专题 06

EMQ映云科技

车联网 物联网 IoT ssl emq

Java中IO字符流、File类

爱好编程进阶

Java 面试 后端开发

数字化赋能塑化产业,B2B电商模式引领企业增长新引擎

数商云

产业互联网 数字化转型

打基础丨Python图像处理入门知识详解

华为云开发者联盟

Python OpenCV 图像处理 图像 二值图像

InfoQ 公开课开放报名,融云场景化低代码平台探究

融云 RongCloud

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