[项目管理]工程与产品开发的差异——一个老项目的经典问题

来源:互联网 发布:搜狐网络大厦有食堂吗 编辑:程序博客网 时间:2024/03/29 19:25

1、背景

2001年我在tp成都中央研究院参加了CMM3的全过程,然后开始对tp陷入彻底失望,2002年初和华为谈判后我拒绝了华为恶心的人力资源的恶心的薪资判定标准,然后到了tp上海研究院,准备随时辞职走人。
在上海贺国华手下帮他完成了tp内部的所谓erp系统的竞争性开发,7月初刚结束,就接到了南京的电话,原tp中央研究院院长给我打来电话,问我是否可以去南京支持,本来都已经在和下家进行面试了,结果没抗住这个院长的近乎祈求的语气,就去了南京,支援这个南京地税金力四期工程的需求阶段开发。
tp软件在2001年参加了这个项目的投标,投标结束后,南京地税有钱,就想了一个方式,来一个竞争性需求开发,也就是南京地税拿出220万,两家公司参与这个项目的需求开发,各做各的,谁做的好,后续的就交给他,做得不好的拿到这220万退出。
从2002年11月开始,tp软件就从中研和其他股份公司借人参与这个项目的开发,因为当时我还在cmm3评估中,所以第一批我没去,评估后,我一直力争建立自己规划了7个月的一个项目,一直拒绝过去。
tp软件前后把中央研究院的所有高程B甚至C以上的技术人员(包括集团主要做技术的五个职称为系统分析员的)都拉到了南京参与这个项目,平时人数一般在五六十人以上,最多曾经有一百人左右在南京进行开发。
8月份这个项目的需求阶段结束,客户方要进行双方的评定,决定谁拿下下一阶段的项目,谁退出,所以,原来的院长特别着急,因为需求还没有全部做完,就打来了电话。
而这个时候,我刚刚连续封闭了两个多月完成了tp erp的开发,正准备休假,然后跳槽,因为感觉做了这个项目也算对得起贺老大了,毕竟对这家公司已经死心了。

2、开发过程

2.1、竞争方

公司名字我忘记了。好像是深圳还是北京的一家公司。据说花高薪从北京/深圳拉了一批人十几个,上手就开始编码,不讲究过程和内容,完全把这10个月当作一个项目进行开发。

2.2、tp中研

组织了多达百人的团队进行开发,全过程采用了RUP的内容进行实施。

3、评定内容

用户宣称除了看需求文档和资料外,还要看系统原型开发的效果。于是,本来拉我过去是做这个系统的设计(在CMM3中我是分析设计组的组长),结果,一看到这个就让我来做系统原型开发,人员就是我从上海研究院带来的5个弟兄,加上一个成都给我们配的美工。时间没有具体要求,让我们尽快完成,条件是:目前已经完成的系统设计基础上进行。
我的开发方式和过程在我那本书和blog中有过比较详细的描述,这个原型的开发过程后来成了我那本书最早在程序员杂志上发表的内容,这里不多写了,只描述一下结果:
事实验证,tp中央研究院组织的人中因为很多人没有参加过系统的UML培训,使得大部分的系统设计都不可使用,也就是说无法导出代码,设计的内容也完全不符合java的开发需求,不少设计人员甚至从来没有做过java开发——这个成了我后来多次强调的,不了解一种语言,不要逞能去做这个语言的系统设计,你做需求可以,别丢人来做设计,那会让你/你的公司死无全尸的!
我的开发小组直接和需求人员配合,完成税务网上营业厅缴税、银行扣款和查验检索的全部功能,从设计开始进行,一共7天不到的时间,我们六个人完成了全部内容(界面设计开发、系统设计、代码实现、测试等),而且全部通过了测试,测试中也只发现了少量(少于十个)的bug。
最后

4、tp失去了后续的合同。

虽然它提交的需求文档无论从规范性还是数量都远远超过对手!
最跟本的原因是因为可以展现的功能模块和效果远远少于竞争对手。

5、结论

后来我们分析认为:
tp搞错了什么是工程项目什么是产品开发,tp技术架构负责人盲目崇拜rup,妄图在客户不成熟不加限定的情况下通过过程模型来获得合同定单,却忘记了工程自身要求的是竞争性,时间性,而不是你的rup可以等待的时间。
没有搞清楚工程和产品的区别,加上中国客户对项目的短视性,是这个项目失败的根本原因。
中国的软件产品到现在来看,很少有做了很多年还能不断延续的,绝大部分都是工程,做了就扔,来了重做的方式在不断重复进行着。这样的过程大概在2004-2006年间开始发生了一次大的变化,此后的过程是,网络上的廉价代码交易迫使很多小公司不断倒闭,后续的就不展开说了。
最重要的一句话总结:
产品开发和工程开发偏重的内容是不同的,产品要求延续性,而工程要求的就是时间和效果,中间的过程对于工程来说都是客户不怎么care的内容,即使客户对你说他们也很介意中间的内容,但是,最终他们还是会被结果所引导,而不是被你的中间过程内容所吸引,结果的重要性往往超过了他们自己对结果的重要性的想象和考虑。
关于产品和工程的差别,我的blog中有多篇文字对比,在我的书中也有很详细的阐述,这里不再赘述,链接如下:
 [技术讨论]“软件工程”中的“工程”如何理解
http://blog.csdn.net/qingrun/archive/2010/01/25/5250450.aspx
[技术讨论]软件的产品、技术、标准对话
http://blog.csdn.net/qingrun/archive/2009/12/19/5028945.aspx

原创粉丝点击