1、正确
需求规格说明书应当正确地反映用户的真实意图,正确是《产品需求规格说明书》最重要的属性。如果“不正确”仅仅是由于错别字造成的,那么多检查几遍文档就能解决问题。真正的困难是开发者和用户自己都不明白用户究竟“想要什么”和“不要什么”。为确保需求是正确的,开发方和用户必须对《需求规格说明书》进行确认。
2、清楚
清楚的需求让人易读易懂。清楚的反义词是难读、难理解。可以采用反问的方式来判断需求文档是否清楚:文档的结构、段落是否乱七八糟?上下文是否不连贯?文档的语句是否含糊其词、罗里罗嗦?看了半天是否还不明白需求究竟是什么?
3、无二义性
无二义性是指每个需求只有唯一的含义。如果一个人说的话,不同的人可能有不同的理解,那么这句话就有二义性。如果需求存在二义性,将会导致人们误解需求而开发出偏离需求的产品。为了使需求无二义性,人们在写《产品需求规格说明书》时措词应当准确,切勿模棱两可。
4、一致性
一致是指《产品需求规格说明书》中各个需求之间不会发生矛盾。矛盾常常潜伏在需求文档的上下文中。
5、必要性
《产品需求规格说明书》中的各项需求对用户而言应当都是必要的。可以把“必要”比喻为雪中送炭。“必要”往前一步,要么是画蛇添足要么是锦上添花。画蛇添足显然是坏事,会导致开发人员多干一些吃力不讨好的工作。所以要尽量剔除需求规格说明书中画蛇添足的那些需求。锦上添花是好事,可能会让用户获得比期望更多的喜悦,但是眼前用户不会为此多付钱。开发者应当集中精力先完成必要的需求,如果条件允许则再做锦上添花的需求。为了避免主次颠倒,应当在《产品需求规格说明书》中将那些锦上添花的需求设置为较低的优先级。
6、完备性
完备是指《产品需求规格说明书》中没有遗漏一些必要的需求。人们往往倾向于关注系统的特色功能,而忽视了其它一些不起眼的但却是必需的功能。不完备的《产品需求规格说明书》将导致产生功能不完整的软件,用户在使用该软件时可能无法完成预期的任务。
7、可实现性
《产品需求规格说明书》中的各项需求对开发方而言应当都是可实现的。可实现意味着在技术上是可行的,并且满足时间、费用、质量等约束。营销人员和用户谈生意时,为了能拿到单子,他们往往对用户提出的需求来者不拒。吹牛皮虽然不犯法,但是《产品需求规格说明书》可是白纸黑字啊。经过双方确认的《产品需求规格说明书》相当于商业合同,如果开发方不能够实现《产品需求规格说明书》中的内容,那就是违约。对于合同项目,如果开发方不能确信某些需求是否可实现,则应事先与用户协商,达成一致的处理意见,避免将来发生商业纠纷。
8、可验证性
《产品需求规格说明书》中的各项需求对用户方而言应当都是可验证的。如果需求是不可验证的,那么用户就无法验收产品。 例如,摩天大楼的一项需求是“抗十二级台风”,这个需求看起来堂而皇之,但是如何验证呢?当摩天大楼完工后验收时,用户又不是巫师,他怎能造个十二级台风来试验?如果双方都认可“采用计算机模拟十二级台风”等效于实际测试,那么这项需求就是“可验证”的。
9、确定优先级
为什么要确定需求的优先级? 理论上讲,所有需求都应当被实现。但是在现实之中,项目存在进度、费用、人力资源等限制。在项目刚开始的时候,开发方和客户比较乐观,什么都要做,可是做着做着,常常会面临进度延误、费用超支、人员不足等问题,这时就乱套了。不过可以采用取舍的办法:先做优先级高的需求,后做(甚至放弃)优先级低的需求,这样可以将风险降到最低。需求的优先级其实就是需求轻重缓急的分级表述,例如划分为“高、中、低”三级。一般地,由用户和开发方共同确定需求的优先级。
10、阐述“做什么”而不是“怎么做”
《产品需求规格说明书》的重点是阐述“做什么”,而不是阐述“怎么做”。“怎么做”是系统设计和实现阶段的事情。 很多开发人员常常身兼数职,可能把需求开发、系统设计、编程等工作从头做到尾。所以他们在调查、分析、定义需求时,自然会想到“怎么做”,这并没有什么过错。如果在调查、定义需求时想好了“怎么做”,当然应该写下来,否则岂不浪费!关键是不要将“怎么做”写到需求规格说明书里面,记录在其它文档里就行了。
本文链接:http://www.mobileui.cn/how-to-write-product-prd.html本文标签: 产品需求