现存在一个软件需求,该软件实现的真正目的如下图右下角的椭圆形所示。有些时候软件需求提出人员并非把软件真正目的告诉软件开发人员,而是把他(她)所认为的要达到这个目的所需的环节步骤作为需求提出。
比如上图中,需求人员直接告诉研发人员,你需要实现一个软件,即首先做环节A,然后再做环节B,最后做环节C(但实际上,要达到这个目的合理环节步骤应当为环节H -> 环节I)。至于这个软件的真正目的只字不提。
如果研发人员只是纯粹应付的话,那么可能很容易地严格按照这个需求将软件实现,但这样做可能会导致很多问题。
下面对问题的产生做一下分析。
首先,需求人员不是很专业,这种情况在好多公司企业都存在,对于小型企业尤为严重。由于不专业,导致看待问题比较片面,所以他(她)所认为的要实现真正目的所需要采取的环节步骤不一定合理。
其次,在实际业务中,可能业务逻辑非常复杂,因此即使需求人员很是专业,但由于业务的复杂性,有时也不太确定自己真正的需求。那么如果按照他提供的这种如何做的需求做出的软件,未必是合理的。
对于此种情况,我们研发人员应与需求人员反复交流,不断地对需求信息进行收集、整理、分析、修剪,然后根据目前的需求进行原型开发,等软件原型出来后,针对软件原型再与需求人员反复沟通、确认,通过软件原型引导需求方把自己的真正需求描述清楚,这样反复几次基本上都可弄清楚软件真正的需求,从而做出更合理、更有效地软件。
因此,软件需求人员在提需求时,千万不可把自以为如何做的步骤当做真正的需求提供给软件研发人员。同时,软件研发人员要积极引导需求方,逐步确定软件的真正需求,只有弄清楚软件的真正需求,我们才可做出合理、有效的软件。同时大大节约了人力和物力。