本文内容仅代表个人观点,欢迎大家拍砖!
今天有一个朋友在msn上问我这样一个问题:
客户要求可以自定义报表的格式,如果自己去写一个报表设计器,太复杂了,请问你有没有什么好办法?
于是我就问:什么叫自定义报表格式?(我一开始还以为是指定报表的导出格式。)朋友说:就是客户要自己来设计报表,而且要求尽量简单,能够让只会Office的人来用(昏哦。。。)
我马上觉得比较纳闷,怎么会有这种需求,那岂不是要做一个Crystal Report出来?!怎么会有这种客户?那他干嘛不去买一套国外的报表设计系统呢?怎么可能有只会Office的人用的报表系统?微软的Excel也需要大量的培训才能让使用者作出报表来。一个又一个问题从我脑海里蹦了出来(还好没有buffer overflow,呵呵)
我很明确的告诉他:这做不到的,否则要开发人员干吗?!之后我还建议他说服客户,突出开发成本和后期维护成本之后,还有就是人员培训成本!举个很简单的例子,微软的Excel算够简单了吧,微软花费了大量的人力来开发这套产品,但到目前为止,有多少人能够在从来没有使用过Excel的情况下马上用Excel做出一个报表来,我相信大家也看到过外面有很多Office培训,还不是教人们如何使用Word和Excel,这样优秀简单的软件培训成本都如此之高,更何况自己做的报表设计系统呢?退一步讲,就算可以做,就算把这样的系统中做出来了,又有多少普通用户能够用这样的系统做报表,我相信这绝对不是大部分受培训者!
所以这个需求完全是不合理的,可以被认定为客户的无理要求,必须在一开始就枪毙掉,不要给客户任何希望,否则最后苦的是程序员们。其实加班在很多情况下就是这样引起的,项目经理或者架构师错误的评估了技术可行性以及人工,导致开发人员不得不遵循一个本来就没有可能在规定时间内完成的计划,到最后工期越来越紧,老板则要求程序员加班,这些加班就是这样出来的!当然我们不排除一些开发人员效率低的情况,但我相信这绝对是少数。如果team里面有10个人,有2个人经常加班,那么我们可以说可能这两个人的效率有待提高;但如果10个人每个人每天都要加班,那么就是管理或者计划的问题了!虽然很多时候,作为开发人员也只能忍气吞声!
作为领导或者项目经理,应该时刻做换位思考,如果你是程序员你能完成多少?以你所知道的技术能不能做到?否则即使生意谈成了,接下来只会有一连串的问题:程序员会骂你垃圾领导、根本不懂得管理;程序员只能无奈地加班,同时你的成本也上去了(当然,那些黑心老板除外,我最讨厌那种加班不给加班费的老板!);程序员的埋怨必然影响代码的质量以及进度,这只会形成一个恶性的循环;一旦无法在规定时间内完成,客户会抱怨,甚至可能要求公司赔偿损失,对于公司来说,这样的损失是很严重的!
虽然我们时常说:客户就是上帝!但回过来想想,这些上帝把我们当成什么呢?上帝做不出来的东西让我们帮他们做,难道我们是上帝他爹?当然不是!其实应该说,客户把我们当成上帝了,他们总认为任何的需求对于我们这些开发人员来说只是小菜一碟,我们在他们眼里无所不能,只要他们提出来的需求我们肯定能做到,这就像我原来在某公司的技术支持中心做开发技术支持一样,客户经常会说“你不是微软的吗?怎么会有不知道的东西?快点帮我解决了!”要不是因为最后有survey,我们真的很想对客户说:我们又不是神!我们不是万能的!你们做不出来不等于我们就一定能做出来或者马上能做出来,总要给我们点时间吧。
很多老板或项目经理会说,如果我对客户说“不”,那不就没有生意做了吗?!我的业绩怎么办?!其实不是的,说“不”有很多技巧,并不是让你一上来就帮客户说:你的需求太无理取闹了,我们做不来!其实通常情况下,我们可以帮客户说理,为什么这个需求我们实现不了?我们的改动对贵公司的成本有多大的影响?以后的维护和培训又会是怎样的。我相信大部分的人听到这样有理有据的分析之后,会改变他的看法,毕竟作为客户最关心的无非是软件质量和成本。当然如果遇到少数无聊客户,那我觉得也没有太大必要谈下去了,说起来我们也是仁至义尽了!
posted @ 2007-04-22 12:13
Tony Qu 阅读(3722)
评论(42) 编辑 收藏
发表评论
微软的Excel算够简单了吧,微软花费了大量的人力来开发这套产品,但到目前为止,有多少人能够在从来没有使用过Excel的情况下马上用Excel做出一个报表来,我相信大家也看到过外面有很多Office培训,还不是教人们如何使用Word和Excel,这样优秀简单的软件培训成本都如此之高,更何况自己做的报表设计系统呢?
说的好,怎么我感觉用户对于这种报表需求这么高啊,我们遇到的更离谱,叫什么自定义报表,实际在BI项目里的含义还不一样,用户要的就是可以自己拖摘来省城复杂的我们以前工程人员用reportingservice才能做出的报表,毕竟涉及到很复杂的业务,所以建模的话难度非常大,但又不是不可能,但谁都知道BI这样的项目客户不配合,啥都白扯.
所以这个需求完全是不合理的,可以被认定为客户.........
这段更是说到开发人员的心里去了
毕竟,现在所谓的项目经理与架构师当中,很多连正规的代码都没写过,这决不是夸张和讽刺.在国内考试风气日益败坏的情况下,想要从考试中筛选出人才已经是很困难的事了.
另外关于"不"的说法,也是很有学问的,如楼主所说,生硬的和客户说不确实很难接下什么单子,但是有时候类似what about,how about这样的方法就值得被我们推荐.这个时候,多少还要看销售以及很多非开发人员,他们的工作做得如何了,不说别的,现在很多销售都喜欢用忽悠的方法把单子接下来,然后黑锅让开发人员去背,所以作为开发人员我们也需要和上层领导有一个比较好的沟通.
我曾写过一个文章<程序员,不要让自己做兔子>,虽然写了快半年了,不过多少表达了我的一些想法.
@ZergTant
呵呵
是话都有好几种说法的,关键就看会不会说了
学会对客户说“不”,决不是楼主讲的这么简单。理论上,轮不到开发人员说“不”,如果你的商务人员已经承诺了实现的功能,到开发人员这里才说“不”,那就是欺诈嫌疑。所以说,说“不”不是开发人员的权利,而是销售人员或者是需求调研人员。很多销售人员习惯于大包大揽,信口承诺,但是一旦合同签下来就不能赖帐。如果某个系统的某个核心功能实现起来有一定的难度,你一句“不”,岂不是对客户不公平?
另外,楼主的例子也不够恰当。报表设计器在中国有特别的意义,报表的格式和内容不断变化,对于某些特定用户群的软件提供商必须进行报表方面的技术储备。据我所知,FastReport所提供的报表设计器就非常优秀,园子里好象也有的同学在这报表方面也有独到研究。
客户是不是上帝我不知道,但我知道他们是我们的衣食父母。除非我放弃这个项目,否则我永远不会说不。如果客户的要求难以满足,我更倾向于向客户推荐一些更现实更成本低廉价的方案,并且客户能够接受。
@双鱼座
大体上认同,但对于
"另外,楼主的例子也不够恰当。报表设计器在中国有特别的意义,报表的格式和内容不断变化,对于某些特定用户群的软件提供商必须进行报表方面的技术储备。据我所知,FastReport所提供的报表设计器就非常优秀,园子里好象也有的同学在这报表方面也有独到研究。 "
这个报表的问题,只有遇到过才知道.报表不是很简单的事,没有业务基础出来的数字根本就不准确,有些流程连开发人员都可能还没明白的,做出来后就让客户去用.
另外还是我想强调的,大家要相信说话是门艺术,就像写程序一样.同样一句话会有好多种说法,就看会不会说.厉害的家伙,会把意思表达得很清楚,即使是在表达不得意思也会让客户心里很舒服甚至反而让客户觉得不要这个是让他们赚了,当然这也有忽悠得嫌疑.
@双鱼座
谢谢你提出的质疑,我不是很认同。
"如果你的商务人员已经承诺了实现的功能,到开发人员这里才说“不”"
这是沟通的问题,为什么不能在承诺之前,先与开发人员沟通一下呢?!开发人员处于被动情况,而商务人员处于主动,不充分沟通很容易出问题。毕竟商务人员不是技术专家,出现疑问应该尽早沟通,而不是之后去和客户解释。所以我说一定要在一开始和客户说清楚!否则之后,客户会觉得你在推托责任,甚至是在欺骗。
正如aspnetx所说,说“不”也是一种艺术,我们要学会婉转的和客户说“不”,而不是一而再再而三的强调“就是不能做”,知道客户认同这样的观点(即确实不能做)时,我们才可以说”所以我觉得不能做“,这个时候客户自然会点头。这就是softskill,当然做技术的好像hardskill比softskill强很多:)
是的一定要对这样的客户说“不”,这也太无理要求了吧,再说这个工作合作我想并没有太大的直接关系。
那个客户提出这样的要求,我猜想有两个原因:1,客户无理取闹,随心所欲。 2,客户以前使用过自定义报表,在Deliph中好像就有一个什么第三方的报表组件,就可以自定义报表的格式,比如:报表标题等什么的。
不过这个客户的要求从某种程度上来说确实是不合理的,至少让开发人员为难。
@Tony Qu
是的,按ISO9000要求,是需要在合同签署前进行需求评审的,所以这不仅仅是软件行业的问题而是一个普遍的问题。但这不能成为开发人员向客户说“不”的合佐证。
关于报表,如果有VFP/Access开发经历的人大体上都知道,在这些平台上都可以开发自定义报表的。当然,FastReport上的实现更强一点。让客户自定义报表并不是那么恐怖。总之,单纯从开发难易程度来评价客户需求是否合理肯定是不对的。举个例子,我所服务的公司刚刚才交付的一个项目中,在需要调研会上,有客户提出来要自定义报表。最后我明白他所谓的自定义报表只是可以重排表格中的列位置和隐藏表格列。我当然立即表示支持,事实上我们公司对类似的需求都有成熟的解决方案。
@双鱼座
关于自定义报表,其实我们遇到的主要有两大问题,一是效率问题,正常思路写下的报表要走1个小时甚至更长的数据,这决不夸张,二就是业务流程很难确定,有些流程连开发人员他们自己都不清楚,就让报表人员去做,这个确实为难人.
不过还是您说得对:
"他所谓的自定义报表只是可以重排表格中的列位置和隐藏表格列"
不过希望客户也是这么理解的,不过,我们所面对的不是
呵呵,好像有点跑题了
自定义报表功能可大可小. 如果只是简单的版面格式重排.应该也不算是无理要求.
@wd900
是,忘记说了,那个客户有几千个客户,每个客户的需求都不一样,所以要自定义,不过要满足各种各样的需求不太可能!
本来就是
客户有时候的想法也是,试探性
他能有这样的需求证明他对计算机,软件不是很了解
这就需要你说服他了。
还没说,给你一个 电话让你做出一个操作系统来 就好
哈哈
是要对客户说不。
但也要理解客户,客户毕竟是不懂这方面的东西,在你说不的同时其实可以清楚的想客户说明原因。
希望搞需求的以及签合同的经理们,能在拿到需求后跟真正的程序人员多沟通,知道什么是可能什么是不可能(当然我不是说搞需求的就不懂程序,而是说在多沟通)
重点在沟通啊, 其实你认为的那种自定义可能并不是客户认为的.
自定义可大可小,如果你的客户自己还有1000多个客户使用这个报表系统,
那么自定义的要求也不过分, 只是需要重新评估需求和开发成本了.
还是沟通.
所以签合同前做需求时就要有技术人员参与进去,知道什么能做什么不能做。
同意博主,这种“自定义报表格式”的情况遇到过太多次了,客户都是用使用excel的经验来要求很复杂的报表
在說"不"之前,要全面評估一下
有時客戶的需求難度的確會很高,但可以通過一些其他方法去接近或達到他們的需求,這不僅僅是對我們自身技術的一種提升,也是系統功能得到提升
之前對我的客戶也有過一些需求,可靜下心來分析或者給一個婉轉的答復比說"不"更有成效
客户不懂技术,难免提出各种不合理的需求.而且他们是甲方,总希望花很少的钱办很多的事.现在做的一个项目,是b/s架构下的,其中用到owc作图.项目都开发基本结束了,客户说你们的图太难看,还拿那种桌面系统的作图软件比较,说我们就要达到那个效果~..~
我看到的情况是绝大部分开发人员或者开发人员出身的,对客户需求有严重的抵触心理,不经过仔细的分析就对客户说不而且态度非常坚决。能够以平和的心理冷静客观的分析、对待客户需求的研发人员非常少。
当然对搂主说的这种情况我们的解决方案是不提供报表工具,而是用项目结案后的客户服务来解决。
看了搂主的回复,上千个客户,格式要求都可能不一样,那只能建议几个专业的报表工具给客户了,跟客户确认这个项目的目标,不能走偏了导致项目失败。
文章写的不错的,所以一般来说都是要懂技术的带技术团队,呵呵,这样的问题会相对来说少了很多。技术性团队的Leader必须有很强的技术,哈,不然带不了这样的团队的
其实,你的文章对客户需求这块写的还是挺好的,如果能够更加深刻一些,我想会更好的。
但是作为一个项目经理或架构设计师,我个人认为他是不可能不知道项目大致会需要多少时间的。即使他项目经理不懂技术,他也不会自己来评估时间的。只是他们会考虑得更多,不会只停留在技术这个层面上。
希望多交流。
客户有时候提出这样的需求,是他们没有明确自己的需求,只好打霰弹,把所有可能的东西都提出来。
开发者应该帮助客户明确自己的需要,尤其是这种报表性质的东西,开发者经常觉得他很简单,无非是把数据展示一下,实际上是有很多业务知识的。很多程序员连最基本的业务原理都不明白,就把报表设计出来了。需求在这些人眼里就是简单的数据表CURD,客户面对这样的报表经常是不知道说什么好,自己关心的数据看不到,或者查起来很麻烦。久而久之就形成了这样的习惯:反正说了也是白说,不如什么都做,然后我自己配置好了。
设计的时候耐下心来,做到用户的座位上,缠着用户,帮他做几项日常做的工作,这样简单的方法,有几个软件设计者做的到呢?
其实怎么说服客户的话有很多办法~
不过说起来,实质问题还是钱~~~
钱给的多,就只有做~
没钱什么都做不了`~如果客户愿意为这个自定义报表花个10W左右,估计BOSS会要求你做,往死里做~~~
商业嘛~~
好文章,我们现在开发也遇到了这种情况,基本变成了天天加班,好不容易熬到了项目的最后阶段,客户还在不断提出新的需求,以前的代码都没有时间Debug了。
恩, 商业谈判就是要让公司不花太多的投资,获得最大的收益。
当然,不能太过分,否则可能被客户认为欺骗
这篇文章我看了:我个人的理解方式就是;写这篇文章的人士在发牢骚;而不是在提出问题的解决方法;
很多人看了之后可能觉得很过瘾;作者也提出了“换位思考”!但是他远远没有做够;他没有站在技术主管和老板的角度看问题!
所以说!个人认为;发牢骚写得不错!对很多人没有学习的必要!看看就行!千万不要被里面的“所以然”所引导
<不> 其实可以换种说法的,老板们也是这个意思,老板们不是傻瓜,
她也知道那个需求做不到,但是她不会很明白的告诉你,说<不> :),自己体会
吧,其实办法很多的,别太老实了。。。会吃亏的。。。
比如你最后发的那封email.
说得不错,是应该说“不”
但是的确需要方法,最好就是让客户觉得你是在为他着想,至少要说这个有多困难,时间会多长多长之类的,但是这些话不是开发人员去说的,应该是第一个跟客户谈这个问题的人去说,比如销售或者PM或者其他管事的人,只有这些人说了才算数的,不然说了跟没说一样
还有,这样的问题要看是谁提出的,客户不是只有一个人,最下面的小兵提出的话,非常容易拒绝(当然不是黑着脸跟人家讲“不干”),如果是老大级的任务讲的,那么就要讲方法了,但是这样的情况几乎是无论如何都可以解决掉的,具体的差别可以自己亲身体会一下
如果自己的老板说,不行,一定要做,那么证明这样的老板有问题,公司也肯定是没有前途的,因为这样的无理需求是要增加开发成本的
另外,单单以报表来说的话,首先我们要明确什么叫自定义,一听到自定义就冒冷汗肯定不行的,如果就是要在外部开发一个报表,然后由系统填写数据的话,其实也不一定很难,但是要跟客户讲明白,可能需要增加开发费用或者放到下一期中之类的
我个人感觉,客户提需求很多时候也是没有经过大脑的,只要你一忽悠,很多事情,说不定就搞定了
在我们开发团队,也碰到过类似的问题,刚开始我们确实吃了很多亏。
开发人员辛辛苦苦把报表做出来了,客户看了居然说这些报表一点用都没有,上面收集的并不是他们要的数据,我们狂晕~~
但是要给客户自已随意定义的报表,似乎难度有点大,而且也没有这样的必要。
最后双方讨论下来,客户提供给我们他们使用的一些固定报表格式,我们就照这些固定报表格式给客户做格式固定的报表,这样我们做起来也简单,客户用的也实在,达到了双赢。
其实说穿了,客户使用的报表也就那么几种,你给客户开发的自由度再高,灵活度再大的报表格式,在他们眼里根本不算什么,反而他还说你的不直观。