haoxiaobo

从C到C++又到.net, 有一些心得, 和大家交流下...
posts - 64, comments - 635, trackbacks - 1, articles - 6
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

对于大型公司项目平台选择j2ee的几层认识(四)

Posted on 2010-06-01 15:13 HAL9000 阅读(...) 评论(...) 编辑 收藏
    刚刚第三篇的发布时,cnblog告诉我一个小时里不能发两次精华。可是我写一千来字都花不了一个小时。今天思路比较快一些,呵呵。
    
       
    最后,我再聊聊我新近观察的一个项目的运作,来分享一下我的第三层认识。
   
    在达到了第二层关于政治风险的认识水平之后,我保持了这个认识水平有一段时间。当然我也无法左右公司高层的选择,反正有钱就花吧!只是有些系统自己要用的,难用成那样实在不爽,有时候也不免发发牢骚。
   
    我有一个哥儿们混得挺好,他新近管着一个项目,这个项目也是由IBM指导实施的,但听说最初决定这个项目由谁来做时,也是某个领导一番沉思之后决定的,但那位领导不说什么理由, 只是思考之后做了这个决定而已。
   
    这个项目没有什么大的技术难题,技术实施的成功率是很高的,按道理不需要什么政治保险。一开始我那哥儿们在做方案时,也的确没有选择IBM,而是以他们的评估,选择了资质不错,但是价格是IBM五分之一的一个厂商做为给领导决策的推荐。
   
    有一点我们都没有多想,就是这个项目虽然没有技术风险,但整体上有一个政治风险。这个系统所要支持的一个业务模式很创新,公司里有很多人出于各种原因,对这个项目比较抵触。在项目立项时,这种反弹还没有表现出来,大家估计也都没有反应过来这个项目是在做什么。等做到一半时,很多人开始明白过来了,回过味来了,发现这个项目再做下去,可能会出一些对自己“不利”的情况。
   
    这个说是“不利”,其实也没有什么“不利”,无非是高层的注意力会有一些转移、政策优惠会有一些转移、资源的倾斜会有一些转移什么的,业务上的竞争与冲击还远远说不上,但如同郭德纲的那句话一样,对于很多中国人来讲,只要自己不得益就算是吃了亏了。
   
    于是这个项目就受到了冲击,一会儿停下了,一会儿继续了,一会儿又被人重新设计目标了,反正摇摇欲坠,挺危险的。
   
    最后,这个项目还是挺住了,继续!为什么?因为有IBM在!
   
    当项目因为上述问题出现方向争论、资源争抢时,这个项目自然就延期了。项目一延期,而且看劲头甲方一帮人还要继续这么乱下去,IBM不干了,第一、他们的工程师、咨询师天天白瞎在这里,那工钱是按小时出的,流水一样。第二、IBM做的项目,怎么能做烂掉?以后让业界说起来,“某某某公司的某某平台是IBM做的,做烂了!”这IBM的脸往哪里放?IBM也是个官老爷公司,能力固然是很强的,但是内部政治也很复杂,说不定比我们更复杂,他们可丢不起这人。第三,IBM已经在财务计划里把每期工钱的应收预算做好了,你又延误了,不交支票了,这可不行!
   
    于是,IBM通过自己长期已经建立的人脉对甲方开展了攻势,突然之间,上上下下都有IBM的营销团队在活动,这个项目的责任人正好得到助力,项目目标很快确定,争论平息,项目继续。
   
    后来我们聊天时,都对这位项目负责人的高明手法佩服无比,他早看到这个项目未来的风险所在,于是就采用了与大厂商绑在一条船上的策略,在危机出现时,借力向公司的决策层加压,最后才得险胜。而如果一开始就决定另一个较小的公司来做,出现这种事情时,小乙方只能闭嘴苦等,听人发配的份儿了。
   
    虽然请IBM而支付了5倍的费用,但项目毕竟可以继续,多出的那部分,就算是“管理成本”好了。
   
    最后总结第三层认识:
    * 如果一个项目有技术风险而无政治风险,那么从项目决策都角度上出发,一定要用看起来最HIGH的配置,因为技术实施困难导致的政治风险,可以通过不等式的传递性而推脱:“乙方如此强大,还没有办法, 因此此项目确实超出我们的、以及现在业界的技术能力”。
    * 如果一个项目有政治风险而无技术风险,而自己又没有信心独自搞定这些问题的话,不妨拉上大厂商,接用他们的力量来在关键时候做推动。
    * 只在有项目即没有技术风险,又没有政治风险的情况下,才可以考虑采用一家务实进取的小公司来做,快速小成本地用“低端方案”搞定。
   
   
    说到最后,大家应该明白我说的意思了:在很多企业里,项目技术的选择已经基本上与J2EE和.net技术本身没有什么关系了。这两个技术只是两大阵营碰巧选择的武器而已,可能会有一些小小的优劣差异,但是根本不重要。MS和反MS这两大阵营各自采用不不同定位,因而各自占据了市场的两端,谁是高端谁是低端,并不能说明这两种技术本身哪种就“高级”了,而哪种就是“低级”技术。
   
    当然,客观上为了迎合两端不同客户的需要,这两类平台都发明了相应的附加品。比如Java,就发明了J2ee这种相当有点阳春白雪的东西,还有很多无比抽象复杂的实现模式,而.net则发明了服务器控件、viewstat和数据绑定这类速成工具。
   
   
    这篇的目的,一方面是为了把自己的想法和大家交流,另一方面,也是想劝劝大家,不必太介意技术那点小小的差异,目前大家遇上的项目,大多都没有什么技术困难迫使得你必须要选用什么平台,或是不能选择什么平台。因此,技术平台的选择往俗了说是一个政治问题,往好听了讲,是策略问题。策略选择的原则,我也在“第三层认识”里总结过了,只要选择得当,就可以使项目更容易成功——那才是我们这些人的目标。
   
    -- the end --