不要和你的客户谈方法

我有这样的一个经验,当你拿着你的proposal去和你的客户洽谈,希望通过超强的技术拿下这个项目时,往往不能如你所愿。诚然,当你炒出一大堆概念,例如面向对象设计、设计模式、AOP、敏捷或者SOA,客户的谈判代表往往会为你口若悬河的一番谈吐而佩服得五体投地,甚至于晕晕乎乎,但客户总能把握自己最后的底线,“咬定青山不松口”。终究说来,要去洽谈项目,除了要看公司的实力、项目经验以及业务人员的关系之外,客户最关注的还是你的WBS和报价,以及项目或产品的交付时间。

所以谈方法,可以让客户佩服你,却不能让客户认同你。

那么在项目开发过程中呢?不管是什么项目,项目要取得最后的成功,判断标准是客户。因而,在项目开发过程中,与客户的交流就显得至为关键。甚至可以这么说,客户的参与程度直接制约了项目的成败。敏捷软件开发正是将客户放到第一位置,重视与客户的交流,通过与现场客户或者ProductOwner的讨论,排定用户故事(Product Backlog或者特征Feature),以及它们的优先级。然后通过迭代(Sprint)的方式,定期交付可以工作的产品,供客户使用,以期判断出开发人员的实现是否符合客户的需求。无疑,这是敏捷软件开发取得成功的要素之一。

然而,在真实项目中,我们很难找到方法中提到的理想客户。如果客户是领域专家,我们或许要省去很多事情,然而这种事情固然是可遇而不可求,除此之外,很难排除领域专家会对项目开发的横加干涉。我们无法保护自己的项目成员,不会受到这样强势的客户的干扰。如果客户仅仅熟悉传统领域的业务需求,那么很不幸,我们还要担负引导客户的责任。最重要的,我们要制定一套双方都认可的交流标准,这样才可以降低歧义的大面积产生。如果一个项目存在多个客户时,那么,你将面对的不再是问题,而是毁天灭地的灾难!在客户都没有能够统一自己的需求时,又哪里能够谈得上软件开发呢?项目经理会淹没在客户方的文山会海中的。何况,还有无穷无尽的需求变更在等着你。

最为普遍的是,我们的客户往往并不了解软件技术。此时,你愿意不厌其烦地和他们大谈特谈方法吗?反过来,客户又愿意耐下心来聆听你的布道吗?

错!错!错!客户并不希望经历一次项目之后就能成为软件专家,也不希望一大堆苍白无力,毫无意义的名词堆砌在自己的脑海里。什么敏捷,什么领域驱动模式,什么架构设计,统统见鬼去吧!我们需要的是看得见,摸得着的产品!是那种通过鼠标操作就能够看到结果的Windwos界面,那才是神奇的魔术。对于客户,就是这么简单。

Ron Jeffries在一个关于敏捷的讨论小组中提到:我们的客户不应该在意敏捷开发。我们的客户只对业务负责任,但并不仅仅只限于软件开发。他们应该感兴趣的是:
    -- 得到真正需要的软件;
    -- 能可靠工作的软件;
    -- 尽快交付的软件;
    -- 对他们的影响尽可能地小;
    -- 软件以其最容易最自然的方式运行。

其实与客户进行交流,就是技术与技术之间的碰撞。领域技术是开发人员所不具备的,但却是我们必须关注的。我曾经为一家生产液晶显示器的企业开发过CIMS系统,对于与生产线相关的一大堆概念畏之如虎。我们强烈需要那些精通领域知识的开发人员,在这个项目中,我们幸而拥有,因此项目取得成功。然而在大多数项目中,我们无法拥有这种幸运。

为什么要采用敏捷?不是因为我们可以敏捷,而是客户要求我们敏捷。很难想象,一个项目在闭关数月的时间里,客户还能够忍耐那些案牍文档。我经历过这样闭门造车的项目,结果失败了。其实,并非敏捷比其他项目开发方法要好,而是我们必须把握敏捷的精神,在于我们重视与客户的交流,在于我们的团队是自组织的,在于我们能够在定期时间内交付可以工作的产品。

客户希望看到的不正是这样吗?然而,我们一定要切忌收住那张夸谈技术的嘴巴。客户不希望听到什么方法,什么技术。项目是否采用敏捷与他无关,即使采用瀑布式软件开发,只要成功,客户也会认可。因此,不管是何种方法,只要能够定期高质量的交付产品,就是好的方法。唯一不同的是,成功实施敏捷或许能够有助于消除客户的误解,增加客户的信心。

我的外婆常常教导我:“不要做说话的巨人,行动的矮子!”诚哉斯言!

posted on 2008-03-21 17:02 张逸 阅读(4088) 评论(22)  编辑 收藏 网摘 所属分类: 项目管理

评论

#1楼 2008-03-21 17:06 二嘎      

金玉良言~   回复  引用  查看    

#2楼 2008-03-21 17:21 Clark Zheng      

好文!   回复  引用  查看    

#3楼 2008-03-21 17:21 金色海洋(jyk)      

挺好的,有点像是给敏捷开发作广告,呵呵。   回复  引用  查看    

#4楼[楼主] 2008-03-21 18:19 张逸      

@金色海洋(jyk)
即使是作广告,又未尝不可。
  回复  引用  查看    

#5楼 2008-03-21 18:40 王立斌      

<p>受教了。</p>   回复  引用  查看    

#6楼 2008-03-21 19:24 Q.Lee.lulu      

受教了。。。
看你的PETSHOP系列知道你的 ^_^
喜欢你.......
文字
  回复  引用  查看    

#7楼 2008-03-21 20:44 吉林哥163[未注册用户]

做项目面对的最大的问题就是100%都会有的几乎无休止的迭代过程。然而这却导致项目几乎是不赚钱的。即便如此,客户总会觉得贵。有好的解决办法吗?   回复  引用    

#8楼 2008-03-21 20:48 怪怪      

这篇文章不错, 谁要是找客户谈方法, 谁就是自找不痛快~   回复  引用  查看    

#9楼 2008-03-21 20:51 怪怪      

@吉林哥163
你说的这个问题其实也挺关键的。 所以对于定位于中小型客户市场, 总是一批公司倒下去, 一批公司进来,再倒下去。

在商言商, 这些问题, 应该是跟客户打交道的人或者部门去解决的, 在这方面能力缺失, 必然导致相似的结局。
  回复  引用  查看    

#10楼[楼主] 2008-03-21 22:02 张逸      

@吉林哥163
关键是在做项目之前,项目组与客户就项目目标和范围达成共识了吗?如果明确这一点,在辅以一定的谈判技巧与人际关系,就不至于无休止的迭代,至少,在初步达成目标之际,可以回收一些资金了。

不过,在国内,乙方总是处于弱势地位,确有你说的郁闷情况。
  回复  引用  查看    

#11楼 2008-03-21 22:30 TerryLee      

@张逸
明确项目范围确实很重要,否则后期经过无数次迭代,导致项目的质量下降,公司增加了成本,客户还认为没有做好,造成了“双输”的局面!
  回复  引用  查看    

#12楼 2008-03-21 22:56 ifire[未注册用户]

方法还是要谈的,至少你得让客户知道你大致的开发流程,交付计划,管理模式,沟通机制等等吧。只是不要谈太多客户不需要知道的细节罢了。

有些情况下,客户甚至就提出了一些方法上的约束,比如怎么划分开发阶段,在什么阶段交付什么制品,制品有啥具体要求等等。

在这种情况下,要不就接受客户的要求,采用符合客户要求的方法。要不就和客户沟通以便改进他们的要求。这时你都的谈方法。当然侧重点是这些东西能给客户带来什么好处,并且是能够被客户有效观察到的。对客户进行培训还是必要的。
  回复  引用    

#13楼 2008-03-21 23:01 ifire[未注册用户]

需求范围需不需要明确,这需要视合同类型来定。   回复  引用    

#14楼 2008-03-21 23:10 ifire[未注册用户]

刚忘了说了,写的不错,强烈支持。呵呵。   回复  引用    

#15楼 2008-03-21 23:50 酷勤网[未注册用户]

这个管理经验很有意义!   回复  引用    

#16楼 2008-03-21 23:56 ※ABeen※      

"客户的参与程度直接制约了项目的成败"
很有道理!
  回复  引用  查看    

#17楼 2008-03-22 01:04 江南白衣      

深有感触   回复  引用  查看    

#18楼 2008-03-22 04:39 beniao[未注册用户]

深化自己对其领域的了解

这对项目的成功尤其重要.

  回复  引用    

#19楼 2008-03-23 12:31 冬虫草      

读张先生的文章,总是让人如沐春风,却意犹未尽!
谢了
  回复  引用  查看    

#20楼 2008-03-24 11:02 黑*马      

在打广告的吧   回复  引用  查看    

#21楼 2008-03-24 16:05 成长的强强      

这回接了个项目,现在多半不行了,谈不下来,看了您的文章,感觉收获很大!   回复  引用  查看    

#22楼 2008-11-03 22:23 包建强      

包包简评:
原文对于项目实施比较实用,但是对于产品开发型公司来说,很少能够直接接触客户和用户,更多是survey公司或是产品经理,所以没办法提供什么内部版本给客户用。但是一样还是得要跟你的客户沟通,所以找stake holder来沟通就是很重要的了。
其实无论是方案实施型还是产品开发型的软件项目,如何给对你有所期望的人一个交代,实在是非常重要的事情。正如客户需求不是数百页的文档,客户需要的是尽快得到真正能用的软件;老板需求也不是每日汇报的邮件,老板需要的是不会受到进度变更影响的每日版本。
所以,学会与客户讨论他们想听到的东西,也要学会与老板讨论他/她想听到的东西。
  回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1116588




相关文章:

相关链接:

导航

公告

我的个人主页:
logo.gif
我的著作与译作

《软件设计精要与模式》

《WCF服务编程》

MVP_Horizontal_BlueOnly.png

From 03-03-2006
Counter: site stats
审批小组成员时,如有超过6个待审批成员,无法翻页察看。操作不便。

与我联系

搜索

 

常用链接

我参加的小组

我参与的团队

随笔分类(266)

随笔档案(258)

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜