在审查需求规范(包括功能性、非功能性需求、约束等)时,无论大小,作者所犯的“致命罪”是什么?
请列出不超过 7 件最重要的事情(按严重性递减顺序)在需求规范中完成(或未完成)会对软件产品的质量产生不利影响。小于 7 完全没问题。
在审查需求规范(包括功能性、非功能性需求、约束等)时,无论大小,作者所犯的“致命罪”是什么?
请列出不超过 7 件最重要的事情(按严重性递减顺序)在需求规范中完成(或未完成)会对软件产品的质量产生不利影响。小于 7 完全没问题。
OK,这已经不止7个了,不过好的需求有以下属性:
一个体面的需求跟踪工具可以自动化/强制执行上述一些,如可识别、优先级、分类,但只有团队审查才能检查其余部分。关键是在这些属性方面对您的团队进行培训,通过阅读需求的好坏示例来让他们练习,并建立一个有效的审查流程,在您的生命周期中尽早检查需求,以便对下游活动产生影响。
缺少要求 - 更难捕捉。将需求分成清晰的部分(例如安全性、性能、样式等)可以使这一点更容易被发现。
功能、时间、质量 - 选择任何两个。确保要求不会将这三个要求都强加给您的团队。
推回试图控制您的流程的要求。
从一开始就要求明确的优先级。
坚持为每个要求制定明确的验收标准。
需求必须具体且明确地说明需要什么,但在如何满足需求方面不应该如此。
做出假设 - 仔细检查任何看起来像假设的东西实际上已经得到验证。
包含多个要求的措辞不佳的句子。将它们分开在某个地方,使它们更清晰,更容易在完成后打勾。
不容易验证是否满足的要求 - 更改为在审核时更容易标记为满足或未满足的表单。
该要求没有具体说明谁/做什么。
"The invoice is reconciled to the purchase order."
这是否意味着系统做某事,或用户?
我在一个我为之编码的项目中见过的最糟糕的一个:-
The system shall interface to SAP as required.
首先,带有“根据需要”的要求是愚蠢的。那一条线一定要花费 40 万美元。顾客不停地指着它说它说你要在那里做废话,废话,废话。
过于严格 - 如果可能,请指定相关公差。
模棱两可的要求是不好的。
无法验证和无法量化的需求加倍。
当然,这一切都取决于你得到什么样的要求。我习惯于典型的 Gui 或 Web 应用程序、批处理和
我还给审稿人一个建议:了解你的主题
您必须非常详细地了解需求的上下文、特定客户的需求、技术环境,或许还有最重要的需求将针对谁,以及他们对全球的了解程度如何。
我在项目中获得了非常糟糕的经验,因为他们的个人知识非常浅薄,很多人都在审查规范。您会在同一水平上获得反馈,主要是正式的更正,但规范的严重缺乏只会在项目中最近才被发现。
避免使用“狡猾的词”——任何可以从上下文中分离出来并且听起来很糟糕的语言都是糟糕的。
确保一切都非常清楚:模糊 == 坏事(tm)
我的建议以及在新项目之前我总是做的事情是仔细检查史蒂夫麦康奈尔代码完成第 42,43 页上的检查清单
无所不知的维基百科有一个很好的需求概要 - http://en.wikipedia.org/wiki/Requirement#Good_requirements。我想说的是,在这些方面,缺乏可验证性是最常见的。了解大局在生活中很重要,但是,您需要在需求中明确说明,例如。系统应快速响应。相反,系统应在 2 秒内响应所有请求。