还在大学的时候就知道IT业的客户经常变更需求,然后随之而来的就是工程师们狂改代码。现在在公司接触到的第一个项目,客户是美国的企业,客户方有两个人,一个管技术,一个管业务。做了一个月,才知道美国人也经常换需求,而且有时候根本不知道自己到底需要什么,管技术的和管业务的互相没有太考虑对方,技术的不太懂业务,所以设计的架构满足不了业务的需求;业务的不懂技术,以为移个按钮改个逻辑就马上可以实现(面向过程语言)。结果就导致需求一变再变,架构也一变再变(-_-!)。私底下我已经开始将其称为变形金刚。
于是乎。。。。。。
while((next电话会议 != null) & (Project != Release)) {
在与变形金刚的电话会议中,我们往往会讨论因为上次的设计带来的issue。然后,变形金刚一般会针对你提成的问题解决你的问题,一般不会考虑对之前的设计带来什么影响,也不考虑future。于是这次电话会议结束之后,回去发现对过去和将来又会造成issue,于是下次的电话会议再问变形金刚怎么解决这些新issue。
}
其实变形金刚无处不在,美国有,中国也有。美国的变形金刚再怎么变,擎天柱可能始终是卡车,而中国的擎天柱就有可能在你不经意之间变成红蜘蛛战斗机。所以我们唯有减少抱怨,分析下遇到这种问题怎么办,因为要为遇到中国的变形金刚做准备。
变形金刚变形一般可能会出现一些特征(我目前遇到的):
1. 客户方不了解需求。
2. 电话会议不平等。
3. 只解决当前问题。
我目前遇到的主要这3个问题,其实这里面折射更多的问题,就不一一展开。
这3个问题都可以理解,毕竟对方是客户,customer is god。他给钱你就是因为他觉得麻烦,他认为你专业,所以想让你帮他承受麻烦。所以不能对客户要求太高,就像我们不能对上帝要求太高一样,如果他们的责任心做事和我们一样,那他们自己就做了。但是哲学告诉我们事物是互相影响的,生产力可以决定生产关系,生产关系也可以反作用于生产力。客户可以决定项目的工程师们,工程师们也可以反作用于客户。最直接的可以反映这一点的就是,任何需求变更都会带来时间成本,我们的客户恰好是按时间算钱的,所以客户更改需求不但要承受工期带来的延长成本,还有看得见的白花花的美元成本。
所以遇见客户需求的变更,我们也要Change with speed.
1. 技术方面
2. 电话会议前的准备。
3. 电话会议后的准备
4. Set the right expectation
这是取自于目前项目的体会,但不仅限于这个项目。
下面分享一个真实的小故事,我们的Director以前当Tech-Lead的时候经历的一件事:
当Director带领的团队用java构建客户的某个系统到最后快Release的时候,客户突然有一天对他说:“恩,微软的人找到我们,准备跟我们公司合作一起开创美好的未来,但是有个要求让我们的这个系统采用.Net平台,所以,所以,你们能不能换换?”-_-!

boluotou @ 新浪围脖