编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

了解客户的需求

在客户对你们团队的实力表示了认可后,你就可以趁热打铁与他详细谈需求了。你在与客户谈需求的同时,要对客户做一个大致的了解,比如他是真心外包项目还是只是想打听一下价格;他是发的原始包还是转包,他的经济状况如何——是有经济实力的公司还是个只是人或者学生;他是外包的新手还是已经外包多次的老手甚至就是外包界的同行。

俗话说得好:“知自知彼百战不殆”,这话用在外包谈判上也是无比正确的。另外在第一次谈的时候,就要有意识地留下客户的住址、电话号码、手机号码等等联系方式,一来方便下次继续沟通,二来可以依此判断客户外包的诚意。如果客户什么联系方式都不肯留下,这种客户就很值得怀疑了。

需求也是很不好谈的,因为客户如果不是行内人士,会经常谈不到关键的点子上。如果最初的需求没有明确,就开始着手开发,到最后可能会有很多东西需要修改,浪费大量的时间、精力和金钱。所以说,就要善于引导客户说出自己的真实需求,并因此了解客户的真正的目的。“能帮助客户正确提出需求”是团队的商务人员一个最重要的技能,只有完全掌握了这项技能,你才能帮助客户完善需求并且节省双方的时间和精力,才能较快地拿到项目。

这里我讲一个故事:有一个老太太要为怀孕的儿媳妇买李子吃,来到市场后遇到的了三个小贩。第一个小贩听说老太太要买李子,按照习惯性思维张口就说,我的李子又大又甜,包你满意,结果老太太听了扭头就走;第二个小贩说,我的李子有甜的有酸的,您要哪种?老太太试了一下酸的李子,觉得还是不够满意,犹豫了一下后买了半斤酸李子。

遇到的第三个小贩同样问,老太太买什么?(探寻基本需求)老太太说买李子。小贩接着问你买什么李子,老太太说要买酸李子。小贩问:别人都买又大又甜的李子,你为什么要买酸李子?(通过纵深提问挖掘需求)老太太说,我儿媳妇怀孕了,想吃酸的。小贩马上说,老太太,你对儿媳妇真好!儿媳妇想吃酸的,就说明她想给你生个孙子!老太太听了很高兴。小贩又问,那你知道不知道孕妇最需要的是什么样的营养?(激发出客户需求)老太太不懂科学,说不知道。

小贩说,其实孕妇最需要的是维生素,因为她需要供给这个胎儿营养。所以光吃酸的还不够,还要多补充维生素,这样才能生出一个健康的大胖小子。他接着问那你知不知道什么水果含维生素最丰富?(引导客户解决问题)老太太还是不知道。小贩说,水果之中,猕猴桃含维生素最丰富,所以你要是经常给儿媳妇买猕猴桃才行!这样的话,我保证你儿媳妇会生出一个漂亮健康的宝宝。老太太一听很高兴啊,马上买了几斤猕猴桃。当老太太要离开的时候,小贩说我天天在这里摆摊,每天进的水果都是最新鲜的,下次来就到我这里来买,还能给你优惠。从此以后,这个老太太此后每天在他这里买水果(临时性的一次性客户变成了长期的客户)。

在这个故事中,我们可以看到:第一个小贩急于推销自己的产品,根本没有探寻顾客的需求,自认为自己的产品多而全,结果什么也没有卖出去。第二个小贩有两个地方比第一个小贩聪明,一是他第一个问题问得比第一个小贩高明,是促成式提问;二是当他探寻出客户的基本需求后,并没有马上推荐商品,而是进一步纵深挖掘客户需求。当明确了客户的需求后,他推荐了对口的商品,很自然地取得了小的成功。

第三个小贩是一个销售专家。他的销售过程非常专业,他首先探寻出客户深层次需求,然后再激发客户解决需求的欲望,最后推荐合适的商品满足客户需求。他的销售过程主要分了六步:第一步:探寻客户基本需求;第二步:通过纵深提问挖掘需求背后的原因;第三步:激发客户需求;第四步:引导客户解决问题;第五步:抛出解决方案并顺便达成交易;第六步:成交之后与客户建立长期的关系。作为一个团队的商务人员,在与客户的谈判中也要遵循这六个步骤,首先是认真倾听客户的表述,让客户充分地表达自己的意思,从而了解客户的原始需求,然后才通过自己的分析,引导客户说出真正的需求,并给出一个完美的解决方案。

这里要明确一点,我们的引导不是牵着客户的鼻子走,甚至于替客户决定如何来做系统。那样的话,往往会导致客户抱怨:你们做的系统不是我想要的,根本就不好用!其根本的原因就在于:我们不是客户!我们和客户对业务知识的掌握不一样。我们所熟悉及掌握的是计算机及软件编程知识,而客户的业务知识就是他所从事的行业的知识,比方说对于一个保险公司的业务人员来说,他们的业务知识就是与保单、代理人、承保、理赔、保全相关的各种内容,而对于贸易型企业来说,他们的业务知识就是与采购、销售、产品、订单等相关的内容。如果我们对相关的行业不熟悉的话,那么我们的业务知识就很差。

这也正是为什么好多团队努力做出的一种行业软件,却得不到该行业人士认可的原因。既然行业的背景不同,那么我们想要从客户的角度出发,从客户的行业背景考虑,这样做出的东西才是给客户用的,而不是给我们程序员用的。想要达到这个目的,我们在了解客户需求的同时就要认真向客户咨询其行业的专业知识,要有不耻下问的精神,千万不要觉得自己是做IT的,就高人一等,看不起其他行业的人员。只有在充分了解客户的行业知识的基础上,我们才能给客户一个完美的解决方案。

在了解了客户的需求后,我们还需要对这个需求进行分析,把用户需求归类分解为计算机可以实现的子系统和功能模块,用设计语言描述和解释用户的需求,以达到可以指导程序设计的目的。一般来说,我们可以把需求归纳为以下几个:

业务需求 - 反映了组织机构或客户对系统、产品高层次的目标要求,通常在项目定义与范围 文档中予以说明。用户需求—描述了用户使用产品必须要完成的任务,这在使用实例或方案脚本中 予以说明。

功能需求—定义了开发人员必须实现的软件功能,使用户利用系统能够完成他们的任务,从而满足了业务需求。非功能性的需求—描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和约束,操作界面的具体细节和构造上的限制。

需求分析报告—报告所说明的功能需求充分描述了软件系统所应具有的外部行为。“需求分析报告”在开发、测试、质量保证、项目管理以及相关项目功能中起着重要作用。

业务需求一般是我由我们软件开发人员来搜集的,是企业自身在顾问等引到下自己所作的工作。我们只是去从他们那里直接的拿来就可以了。比如为了配合企业生产改造,为了加强库存管理,为了建立企业电子化运行平台,这些都是业务需求。这些东西的建模还是留给咨询顾问吧,我们没有拿那份企业流程重组的钱,也就不用费这个力气。

用户需求是用户为实现器业务需求而提出的基于实际情况的具体目标。比如我的系统要可以查看库存中的零件数量,我需要可以由计算机给出投料方案,计算工资总额。

功能需求就是要去解决这些具体的用户需求所产生的解决方案。这个就是我们平常说的需求说明。要得到这个就需要对用户需求作具体的分析,提出具体的实施方法。而评估则是对于这个方法和其所代表的用户需求的评估,比如实现这个需求所耗费的成本是不是小于其带来的收益,我们作的风险评估也是针对这个作的风险评估。

我们提交的解决方案不见得能马上就能得到客户的认同。如何说服他们接受我们的方案?只有 站得高,看得远才能有很好的说服力,客户才会认同和接受。具体到实际的谈判过程中,首先,在 编写方案前,要经常与客户沟通交流,倾听他们的声音,了解客户的行业情况及他们的要求或想法; 其次,分析客户的要求或想法,理出客户想法中存在的疏漏和没有考虑到的情况;最后,根据实际 情况结合自身编程经验,提出解决方案,并整理方案中与客户想法中差异,分析优缺点;最后,与 客户确认最终方案。收集 的信息越多,各种方案的优缺点分析得越透彻,就越有说服力。

同样的程序,从客户角度,他们关注的侧重点是完全不同的。依据我的开发经验,客户基本上不关注系统采用的技术架构,哪怕你说得天花乱坠,那最多只是谈价格的一点小资本而已。他们关注的是系统功能,能否设计出他们认为最快捷、最安全、最实用的系统。“落后”的技术,同样有广阔的生存空间。因为对于客户,适用的就是最好的。请记住:技术不是越新越好,而是越适用于项目越好,越熟悉的技术越好。

如果没有深入了解客户的真实想法或者客户话语背后的意思,没有深入分析方案和客户想法之间的差异与比较它们之间优劣,将会很难说服客户接受我们的方案,而且工作起来就很被动,只能是客户说什么,我们就做什么了。那样的话,编出来的东西要么就是在技术上根本无法实现,或者编出来以后也不能解决实际问题,只能反复地修改,不但要延误工期和增加费用,还会造成客户对团队的不满。

未经允许不得转载: 技术文章 » 项目管理 » 了解客户的需求