【IT168 技术文章】
做过软件的人都听过这样的抱怨:需求变化太快,软件系统经常要修改,都连续加班几个星期了......
通常面对这样的问题,要如何解决呢?
首先,问题的根源是:需求不断变化。
很多人都有这样的经历,在捕获需求时,根据客户的阐述,做了记录,然后开发出了软件,客户却说很多地方不符合他们的意思,又要求修改。
我们分析一下捕获需求过程中存在的问题。
客户很可能对软件方面的知识知之甚少,他并不知道你需要知道什么。
比如说,一个业务流程,从业务逻辑到能转化成软件实现很可能会有问题。这就是所说的信息化过程中需要进行的业务改造,因为能输入计算机,并输出结果的一定是能进行形式化处理的内容,这也是很多企业员工抵制信息化的原因之一,因为信息化会导致人的因素会被相对削弱,他们的工作过程也会完全被透明化。
这样,我们就一定要让客户知道你要知道的是什么。如何做到呢?
对于产品类的项目,你的客户不是一个,那么就要广泛的去征求意见,需求调查问卷通常对全面了解客户需求有一定的作用。
对于特定客户,需要和他们直接沟通交流。
和客户交流要注意方式方法,不能盲目约见,下面是一些行之有效的方法。
一、 会面前做充分的准备
通常会面前的问题列表准备时间要远远多于会面的时间。通常客户在连续和你交谈2个小时之后,就会失去热情和耐心,这是大部分人的共同特点。所以充分的准备工作很重要。
如果你去客户那捕获需求,通常客户会说,我需要做一个什么样的系统,然后我可以用它来做这个,那个,还有那个......,然后就不知道该说什么了。这时,你一定要拿出事先准备的问题列表,针对每个大的功能的每一个功能点进行提问,一个都不能放过。对非功能的需求也同样不能放过,如客户需要的系统至少连续运行多少小时不出问题,系统在若干数量的访问者访问时的响应时间范围等。
如果你在会面前没有对客户提供的资料,表格等进行全面研究,对客户需求就不可能调查全面,你可能需要反复去约见他,这样你会给客户留下工作效率低的印象,他对你会逐渐的感到厌烦,对你未来的工作表现会失去信心。
二、让客户打开话匣子
对客户进行提问,引导客户说出他们的需求,是非常关键的,这里面的学问也是很大的。
有一些人通常会问这样的问题:“你们的工作流程是什么样的?”,这种问题是非常经典的无效问题。
当你向客户提出问题的时候,你可以先进行换位思考,如果有人问你这个问题你该怎么回答呢?是不是很好回答呢?如果连你也觉得这个问题并不好回答时,就需要考虑换个问法了。
通常人们在谈论自己很熟悉的东西时,都会有说不完的话,对于客户自己每天做的工作,他为什么没办法对你谈呢?
问恰当的问题,问能让客户打开话匣子的问题,你就胜利了。
这时你会面前的准备工作就显得尤为重要了,你要针对他们要做的软件的功能,一部分一部分的问,不能着急,要深入,并细致,对于他们如何处理这些事情的操作习惯等都要重视,因为要改变他们的习惯,让他们适应你的软件的一种新的操作方法通常是会降低客户满意度的,甚至他们会要求你进行修改。
对于你对某些功能的猜想和假设,也一定要问客户,是不是根本就不需要,客户有时会碍于情面不好意思说出你的想法是没有必要的或是错误的,这时你一定要足够敏感,并勇于否定自己,这样会减少不必要的开发工作,也会给客户留下你很尊重事实的良好印象。