简述常见的需求定义错误。
参考答案:
在实践和研究过程中,人们发现关于需求定义的具体的错误主要有以下几种:
①需求并没有反映用户的真实需要。
实践表明,获取用户的真实需求是非常困难的。
原因之一是用户在表达自己的需要时,可能会在潜意识下进行一定的加工。为了发现用户的真实需求,需求工程师一定要进行问题分析,尽力发现问题背后的问题。
原因之二是在人际交流中,信息会发生自然的衰减,甚至扭曲,导致需求丁程师理解的并非是用户所表达的。解决方法是在需求传递给开发人员之前,请提出需求的用户进行仔细地检查和确认。
②模糊和歧义的需求。
在实践中,人们总是会有意和无意地写出模糊和歧义的需求定义。
无意中写出模糊和歧义的需求定义往往是因为选词造句不当,导致不同的人对同一项需求产生了不同的理解。解决方法是为项目中重要的词汇建立一个公共的可共同理解的词汇表,然后在词汇表的基础之上进行需求的定义。
有意产生的模糊和歧义的需求定义往往是为了应付对需求持有不同立场的用户,这些用户关于需求的目标互相冲突,需求工程师于是采用了模糊化的处理方法。正确解决方法是在项目前景的指导下,促进用户之间的协商解决。
③信息遗漏。
信息遗漏也是一类常见的问题,包括明显的信息遗漏和不明显的信息遗漏。
明显的信息遗漏,其主要原因在于项目的范围定义不当,可以通过加强对业务需求的处理得以解决。
不明显的信息遗漏,是因为相关信息难以发现,只能靠需求工程师的经验来加以避免。
④不必要的需求。
产生不必要需求的原因主要是:
其一是用户将一些不必要的需求作为和开发人员谈判的筹码,然后通过自己对不必要需求的要求而在和开发人员的谈判当中取得真正想要的利益,例如金钱。对此问题,唯一需要的就是开发人员代表的谈判技巧。
其二是用户在交流中,总是害怕信息有所遗漏,并因此产生不利后果,因此用户总是倾向于表达各种各样的需要。要解决这个问题,就需要开发人员在进行用户需求的获取之前,先定义明确的业务需求,然后根据业务需求进行用户需求的过滤和选择。
其三是需求开发人员“画蛇添足”,添加“用户肯定会喜欢”的功能,该类功能既会造成项目额外的耗费,又不会给用户带来更多的帮助。这就要求需求开发人员要保持以用户为中心。
⑤不切实际的期望。
不切实际的期望也是实践中常见的需求定义问题,而且它在很大程度上影响着项目的成败。
面对不切实际的期望,要求软件开发者提供可行性、成本等足够的技术参考信息,帮助用户对其进行取舍和调整。