需求分析师经常抱怨说:我太难了,自认为对需求已经非常清楚了,但交付软件时用户却说:这不是他想要的!软件行业从事需求分析师的人经常会提到下面的一些有代表性的现象
■现象1.认真听取了用户需求、并且用界面原型向用户进行了需求确认,费尽了千辛万苦把软件开发出来后,用户一试却说“这不是我想要的东西!”,这样的结果让我感到崩溃,不是确认好的吗?!这说明编码之前需求工程师与用户双方对用原型表达的需求认知是一致的(如不一致是不会开始编码的),相信很多需求分析师都经历过,这个问题一旦发生了就会带来开发返工、成本超支、延迟罚款,甚至后双方不欢而散。
■现象2.开发工程师总是抱怨说需求分析师的资料看不懂、表达不清晰,有时为了搞清楚一个问题(在一张A4纸上用文字说明)可能需要打3~4天的电话沟通。久而久之就造成了产品经理、开发工程师对需求分析师的不信任,形成了需求分析师水平低的印象。
■现象3.对完成的分析与设计结果正确与否判断不清楚(或没有判断方法)。老手的需求分析师可以通过积累的知识和经验来做出判断,对新手的需求分析师来说因为没有积累可以利用,常常面对完成的分析与设计结果不知道用什么方法来判断它的正确与否,交给开发之后总是提心吊胆怕什么地方出错误。
这种现象在其他行业则很少会出现,比如IT行业经常会用建筑与软件的设计制造过程做比较,但由于建筑物是具象的,看到设计图形马上能联系起你所有的经验记忆,在大脑中建立起一个具体的形象。描绘建筑物是用几何图形、位置关系和物理尺寸来表达的,比如:用与实际相似的图形来表达建筑物的外观,还可以将建筑物分解为窗、门、柱、梁、板等构件,同样用完全相似的图形来表达,建筑物从里到外都可以地给出构件之间的衔接关系,看了建筑设计图之后,投资业主、建筑设计师和施工公司三方都不会对图形有认知上的歧义。
那么软件行业为什么会出现前述的现象呢?主要是因为软件产品的需求和交付物都比较“抽象”,很难用“具象”的图形表达出来,对同一个软件需求不同的人有不同的理解和表达,没有公知的、唯一的和定量的表达方式,这个难题对提需求的用户、分析需求和开发的软件工程师来说都是一样的,这就容易造成交流时出现理解和认知上的误差。