Asp.NET Tutorials
Home > 其他 > 学会对客户说“不”!
学会对客户说“不”!
Author:Tony Qu
From:Cnblogs:
本文内容仅代表个人观点,欢迎大家拍砖!


今天有一个朋友在msn上问我这样一个问题:
客户要求可以自定义报表的格式,如果自己去写一个报表设计器,太复杂了,请问你有没有什么好办法?

于是我就问:什么叫自定义报表格式?(我一开始还以为是指定报表的导出格式。)朋友说:就是客户要自己来设计报表,而且要求尽量简单,能够让只会Office的人来用(昏哦。。。)

我马上觉得比较纳闷,怎么会有这种需求,那岂不是要做一个Crystal Report出来?!怎么会有这种客户?那他干嘛不去买一套国外的报表设计系统呢?怎么可能有只会Office的人用的报表系统?微软的Excel也需要大量的培训才能让使用者作出报表来。一个又一个问题从我脑海里蹦了出来(还好没有buffer overflow,呵呵)

我很明确的告诉他:这做不到的,否则要开发人员干吗?!之后我还建议他说服客户,突出开发成本和后期维护成本之后,还有就是人员培训成本!举个很简单的例子,微软的Excel算够简单了吧,微软花费了大量的人力来开发这套产品,但到目前为止,有多少人能够在从来没有使用过Excel的情况下马上用Excel做出一个报表来,我相信大家也看到过外面有很多Office培训,还不是教人们如何使用Word和Excel,这样优秀简单的软件培训成本都如此之高,更何况自己做的报表设计系统呢?退一步讲,就算可以做,就算把这样的系统中做出来了,又有多少普通用户能够用这样的系统做报表,我相信这绝对不是大部分受培训者!

所以这个需求完全是不合理的,可以被认定为客户的无理要求,必须在一开始就枪毙掉,不要给客户任何希望,否则最后苦的是程序员们。其实加班在很多情况下就是这样引起的,项目经理或者架构师错误的评估了技术可行性以及人工,导致开发人员不得不遵循一个本来就没有可能在规定时间内完成的计划,到最后工期越来越紧,老板则要求程序员加班,这些加班就是这样出来的!当然我们不排除一些开发人员效率低的情况,但我相信这绝对是少数。如果team里面有10个人,有2个人经常加班,那么我们可以说可能这两个人的效率有待提高;但如果10个人每个人每天都要加班,那么就是管理或者计划的问题了!虽然很多时候,作为开发人员也只能忍气吞声!

作为领导或者项目经理,应该时刻做换位思考,如果你是程序员你能完成多少?以你所知道的技术能不能做到?否则即使生意谈成了,接下来只会有一连串的问题:程序员会骂你垃圾领导、根本不懂得管理;程序员只能无奈地加班,同时你的成本也上去了(当然,那些黑心老板除外,我最讨厌那种加班不给加班费的老板!);程序员的埋怨必然影响代码的质量以及进度,这只会形成一个恶性的循环;一旦无法在规定时间内完成,客户会抱怨,甚至可能要求公司赔偿损失,对于公司来说,这样的损失是很严重的!

虽然我们时常说:客户就是上帝!但回过来想想,这些上帝把我们当成什么呢?上帝做不出来的东西让我们帮他们做,难道我们是上帝他爹?当然不是!其实应该说,客户把我们当成上帝了,他们总认为任何的需求对于我们这些开发人员来说只是小菜一碟,我们在他们眼里无所不能,只要他们提出来的需求我们肯定能做到,这就像我原来在某公司的技术支持中心做开发技术支持一样,客户经常会说“你不是微软的吗?怎么会有不知道的东西?快点帮我解决了!”要不是因为最后有survey,我们真的很想对客户说:我们又不是神!我们不是万能的!你们做不出来不等于我们就一定能做出来或者马上能做出来,总要给我们点时间吧。

很多老板或项目经理会说,如果我对客户说“不”,那不就没有生意做了吗?!我的业绩怎么办?!其实不是的,说“不”有很多技巧,并不是让你一上来就帮客户说:你的需求太无理取闹了,我们做不来!其实通常情况下,我们可以帮客户说理,为什么这个需求我们实现不了?我们的改动对贵公司的成本有多大的影响?以后的维护和培训又会是怎样的。我相信大部分的人听到这样有理有据的分析之后,会改变他的看法,毕竟作为客户最关心的无非是软件质量和成本。当然如果遇到少数无聊客户,那我觉得也没有太大必要谈下去了,说起来我们也是仁至义尽了!

Feedback

# re: 学会对客户说“不”!  回复  更多评论   

2007-04-22 12:44 by aspnetx
微软的Excel算够简单了吧,微软花费了大量的人力来开发这套产品,但到目前为止,有多少人能够在从来没有使用过Excel的情况下马上用Excel做出一个报表来,我相信大家也看到过外面有很多Office培训,还不是教人们如何使用Word和Excel,这样优秀简单的软件培训成本都如此之高,更何况自己做的报表设计系统呢?

说的好,怎么我感觉用户对于这种报表需求这么高啊,我们遇到的更离谱,叫什么自定义报表,实际在BI项目里的含义还不一样,用户要的就是可以自己拖摘来省城复杂的我们以前工程人员用reportingservice才能做出的报表,毕竟涉及到很复杂的业务,所以建模的话难度非常大,但又不是不可能,但谁都知道BI这样的项目客户不配合,啥都白扯.

# re: 学会对客户说“不”!  回复  更多评论   

2007-04-22 12:51 by aspnetx
所以这个需求完全是不合理的,可以被认定为客户.........

这段更是说到开发人员的心里去了
毕竟,现在所谓的项目经理与架构师当中,很多连正规的代码都没写过,这决不是夸张和讽刺.在国内考试风气日益败坏的情况下,想要从考试中筛选出人才已经是很困难的事了.

另外关于"不"的说法,也是很有学问的,如楼主所说,生硬的和客户说不确实很难接下什么单子,但是有时候类似what about,how about这样的方法就值得被我们推荐.这个时候,多少还要看销售以及很多非开发人员,他们的工作做得如何了,不说别的,现在很多销售都喜欢用忽悠的方法把单子接下来,然后黑锅让开发人员去背,所以作为开发人员我们也需要和上层领导有一个比较好的沟通.

我曾写过一个文章<程序员,不要让自己做兔子>,虽然写了快半年了,不过多少表达了我的一些想法.

# re: 学会对客户说“不”![未登录]  回复  更多评论   

2007-04-22 13:01 by ZergTant
文章写得很好,但是有多少人敢这么说

# re: 学会对客户说“不”!  回复  更多评论   

2007-04-22 13:09 by aspnetx
@ZergTant
呵呵
是话都有好几种说法的,关键就看会不会说了

# re: 学会对客户说“不”!  回复  更多评论   

2007-04-22 13:21 by iCaca
...遇到过...
客户都是疯子,.,

# re: 学会对客户说“不”!  回复  更多评论   

2007-04-22 13:34 by 双鱼座
学会对客户说“不”,决不是楼主讲的这么简单。理论上,轮不到开发人员说“不”,如果你的商务人员已经承诺了实现的功能,到开发人员这里才说“不”,那就是欺诈嫌疑。所以说,说“不”不是开发人员的权利,而是销售人员或者是需求调研人员。很多销售人员习惯于大包大揽,信口承诺,但是一旦合同签下来就不能赖帐。如果某个系统的某个核心功能实现起来有一定的难度,你一句“不”,岂不是对客户不公平?
另外,楼主的例子也不够恰当。报表设计器在中国有特别的意义,报表的格式和内容不断变化,对于某些特定用户群的软件提供商必须进行报表方面的技术储备。据我所知,FastReport所提供的报表设计器就非常优秀,园子里好象也有的同学在这报表方面也有独到研究。
客户是不是上帝我不知道,但我知道他们是我们的衣食父母。除非我放弃这个项目,否则我永远不会说不。如果客户的要求难以满足,我更倾向于向客户推荐一些更现实更成本低廉价的方案,并且客户能够接受。

# re: 学会对客户说“不”!  回复  更多评论   

2007-04-22 14:22 by 乔疯
是应该说不,但要委婉点。

# re: 学会对客户说“不”!  回复  更多评论   

2007-04-22 14:30 by aspnetx
@双鱼座
大体上认同,但对于

"另外,楼主的例子也不够恰当。报表设计器在中国有特别的意义,报表的格式和内容不断变化,对于某些特定用户群的软件提供商必须进行报表方面的技术储备。据我所知,FastReport所提供的报表设计器就非常优秀,园子里好象也有的同学在这报表方面也有独到研究。 "

这个报表的问题,只有遇到过才知道.报表不是很简单的事,没有业务基础出来的数字根本就不准确,有些流程连开发人员都可能还没明白的,做出来后就让客户去用.


另外还是我想强调的,大家要相信说话是门艺术,就像写程序一样.同样一句话会有好多种说法,就看会不会说.厉害的家伙,会把意思表达得很清楚,即使是在表达不得意思也会让客户心里很舒服甚至反而让客户觉得不要这个是让他们赚了,当然这也有忽悠得嫌疑.

# re: 学会对客户说“不”!  回复  更多评论   

2007-04-22 14:39 by Tony Qu
@双鱼座
谢谢你提出的质疑,我不是很认同。

"如果你的商务人员已经承诺了实现的功能,到开发人员这里才说“不”"
这是沟通的问题,为什么不能在承诺之前,先与开发人员沟通一下呢?!开发人员处于被动情况,而商务人员处于主动,不充分沟通很容易出问题。毕竟商务人员不是技术专家,出现疑问应该尽早沟通,而不是之后去和客户解释。所以我说一定要在一开始和客户说清楚!否则之后,客户会觉得你在推托责任,甚至是在欺骗。

正如aspnetx所说,说“不”也是一种艺术,我们要学会婉转的和客户说“不”,而不是一而再再而三的强调“就是不能做”,知道客户认同这样的观点(即确实不能做)时,我们才可以说”所以我觉得不能做“,这个时候客户自然会点头。这就是softskill,当然做技术的好像hardskill比softskill强很多:)
Add by : Huobazi (2007-4-22:03:16)