另外,我们还需要掌握一种有效的分析方法——“深耕法”。下面是一个深耕法的例子:
问题--原因
今天早晨发生一起机床停工事故
因为机床的密封圈漏油了
密封圈为什么会漏油?
因为采购回来的密封圈质量不合格
为什么要采购质量不好的密封圈?
因为价格低10%
为什么这么小的差价还要采用质量不好的密封圈?
因为采购人员的绩效是按照采购成本来评定的。
所以,问题的根本是要改变采购人员的绩效评估标准!
通过一系列的“为什么?”,我们能够很有效的发现问题的背后的问题到底是什么。
“用户真正需要的是什么?”,每一个需求分析员在进行需求分析的过程中都应该不断的问自己,要记住一个事实,“事情往往比它看起来复杂”。只有真正的融入到用户当中,成为用户团体中的一员,才能发现问题背后的问题,才能做出真正让用户满意的产品来。
学得更快
不正确需求已经成为了导致软件开发失败的最大罪魁祸首,尤其是运用于非计算机行业的软件。需求分析员往往不是行业专家,在十天半个月的需求分析中,我们很难完全理解一个拥有十几年经验的行业专家。这是一个很残酷的现实,也是一个我们必须面对的事实。正是因为理解上的片面和偏差导致了很多软件项目以悲惨的结局收场。
一个有效的需求分析员应该是一个善于学习的人。只有学得更快才能让一个需求分析员能够在短暂的需求分析阶段成为一个“行家里手”,能够像一个行业专家那样思考、行动。但是学习能力也不是一朝一夕就能提高的,需求分析员要在日常的工作学习中不断的加强,尽可能的用更快的速度来学习。只要坚持不懈,一定会大有收获。
一个有效的需求分析员也应该乐于学习的人。当他面对一个全新行业的时候,他能够用超乎想象的热情和速度去学习,去理解,去融入,而不是排斥、厌恶,甚至诅咒。很多IT人都有一种不好的想法,就是对传统行业有一种近乎“天然”的排斥感,这种排斥感往往会导致需求分析员与用户之间的隔阂和矛盾,其结果可想而知。
用共同的语言进行交流
当IBM AS400发布的时候,IBM专门在众多的专家中找出一位既精通技术,又能够把晦涩难懂的技术术语“翻译”成易懂的口头语言的专家,结果这位专家在发布会上用平实的语言说出了AS400的所有优点,在场的所有记者都能够轻松的理解,从而使得发布会获得了前所未有的成功。
作为一个需求分析员,对技术应该是有相当的了解的,但是我们不能奢望我们的用户也能和我们一样对IT技术有同样精深的了解。用户可能不知道什么是“组件”,什么是“面向对象”,甚至搞不清楚“10M带宽网络和100M带宽网络有什么区别”。对于用户而言,他们更加熟悉的是他们所在行业的术语和标准。于是奇怪的现象出现了,用户和需求分析员用着互相不能理解的语言在交流,就好像是一个中国人和一个法国人各自用着自己的母语在交流,也许更多的是混乱,而不是共识。在这样的情况下面,我们能够奢望取得准确,全面的用户需求吗?
一个有效的需求分析员应该怎么解决这个问题呢?首先,应该努力的去熟悉用户的行业,学习用户使用的术语,标准,以便能够准确的理解用户。这就需要我们大量的阅读用户所在行业的资料、文章,尽量多选取一些整体性介绍的文章,这样可以在短时间内能够对该行业有一个全面的认识,这样我们就能够较好的和用户进行交流了。第二,应该尽量不使用IT行业的术语,而采用浅显易懂的口头语言来解释IT行业中高深莫测的术语,以便用户能够很好的理解。我们可以向用户这样解释10M带宽网络和100M带宽网络有什么区别:“10M带宽的网络就像是双车道的柏油路,容易堵车,而100M带宽的网络却是二十车道的高速公路,堵车的可能性非常小”。这样的解释用户就能够很好的理解了。但是,用平实的语言解释IT行业的术语并不是一件容易的事情。一方面它要求对该术语有透彻的理解,另一方面需要很好的表达能力。在平时的工作中,我们不妨试着把一些难懂的术语用平实的语言表达出来,甚至可以向一些不了解IT技术的人解释一些艰深的概念。只要能够坚持做下去,一定会有让我们惊喜的进步。
需求之所以难以捕获,是因为它们存在与用户的头脑中。有效的需求分析员必须用自己智慧、行动和真诚去发现需求、挖掘需求。好的方法和习惯能够让我们的需求分析更加有效,也会让我们成为一个有效的需求分析员!