软件“构造”艺术(石宏峰)

2003-6-5 9:54:41【作者】 畅享网 【进入论坛】
广告

引言:以前的应用软件,基本上都是先有一套管理理论,然后基于这套理论去开发软件,流程、业务都是在软件中设定义好了的,很难变化。

软件“构造”艺术

石宏峰

从开发软件到构造软件

以前的应用软件,基本上都是先有一套管理理论,然后基于这套理论去开发软件,流程、业务都是在软件中设定义好了的,很难变化。所以卖软件的时候,软件公司都会和客户讲,我的流程是最先进的,最合理的,你的流程不好,应该改成我这个样子,改了以后会给你带来多少多少好处。 其实管理对于一个企业来讲,特别是一个大企业来说,是千变万化的,每个企业都有自己的特性。特征太多了, 再好的软件也只能捡其中一种或者几种来实现, 对大部分企业来说这并不能满足他们个性化的需求。

但在个性化需求日益攀升的网络时代, 很多东西实现个性化定制是必然趋势。 比如, 你可以自己做一个音乐CD,从网上把你喜欢的音乐一首一首dwon下来, 而不需为了喜欢某张光盘中的一首歌,就把这个光盘买下来; 定制出来的东西不多不少, 合算正好。 这种定制的思想给软件发展带来很大的启发。 软件要满足更多人的更复杂的需求, 就更应该注重产品本身的可塑性,柔性。而对企业流程的再造和管理方式的提升和改进,可以让给专业的咨询公司去做。不管他想为客户塑造成什么样子,你的软件都可以根据他的流程重新构造,支持他的理论。也许企业现有的流程你觉得根本不先进, 但是能切实解决他的问题,那么就是合理的. 比如, 你不可能要求一个中国的大企业去完全按照国外的大企业一样去设置机构,所以我们以前做项目的时候,强迫客户改掉的,往往很多是人家最有效率的部分。. 为什么以前的ERP系统实施成功率低,很大程度是因为, 固化的系统拿到企业去,很多模块根本不能用, 要花很大的力气二次开发,一点一点地改,如果软件公司不愿花力气去改而用户又不愿改变早已习惯的做法,那项目就只有失败。

以前的软件生产就像是最原始的手工作坊,师傅带徒弟,跟着经验走,不断的训练,年头长了,就是一个很好的工人了。但是到了后来,人们开始把大软件, 拆成一个一个的小零件, 让每个软件工人都生产一个小的零件,可能对这个工人的要求就会降低,但是对整个产品设计的复杂度就加大了. 比如说为什么螺丝螺母要分开来生产,为什么不把螺丝直接焊在螺母上面?焊在上面就没法拆卸了,但有些东西却必须要结合在一起,不能做成两个零件. 这时候, 设计能力是最关键的。 这是一种工业化的生产.最终我们的软件一定会从手工作坊走向流水线生产, 再走向按照用户的要求定义和构造. 这个时候, 某一个业务工作可能会分拆成更多更小的逻辑,每个小的业务逻辑都可以自己形成一个独立的零件,然后我们再按照装配和流程串在一起,一起工作,就实现了一个完整的业务功能。只有做到这个程度,才有更多的灵活性,比如螺丝,可以用在汽车上面,也可以用在空调上面,还可以用在电视上。

再比如各种汽车,有很多的配置,很多的色彩,为什么?它是为了适合不同人的需求。我曾经听过一个故事. 说一个德国人想买汽车, 上了宝马的网站,宝马的在线销售人员就和他在网上攀谈起来. 他说他要一辆汽车很特殊, 因为他很胖, 非常胖,他希望前排只能有一个座位. 宝马的销售员立刻把他的需求发给了后台的设计人员, 然后继续和这个人聊足球. 过了一会, 设计人员告诉销售员说, 这个需求可以满足.这个人很高兴, 说他还有一个要求, 可不可以把车的后排也改成一个座位,因为他的太太也很胖, 销售员立刻又把需求反馈给设计人员,然后继续跟这人聊足球。. 没过多久, 后台的技术人员,把重新设计好的整车报价和模拟外观的图纸通过互联网送到了买车人手中,当下成交。

这是一个很理想的定制案例, 产品的可塑性和反应速度是成功的关键.其实在国际软件界, 很多公司都在向这方面努力, 都在做更多的工具来实现构造软件的理想,但目前为止还没有一家特别权威厂商能够在这上面取得令人瞩目的成功。

从用户适应软件到软件适应用户

96年初,当时开思第一代ERP产品出来的时候,在国内还是比较领先的。97年到98年上半年,两年多的时间,在客户中得到了广泛的推广. 96年, 我本人做完开思的第一代产品,就开始做实施和售前支持, 接触客户的面很广, 但每次向客户介绍软件, 客户总会问我很多很多问题, 这个功能你怎么实现, 那个功能你怎么增加, 非常具体, 有很多的问题也是合理的, 但是基于我们当时的架构,却不能满足客户的需求.客户的要求千变万化,一套软件根本没有办法全部适应,后面的实施和服务维护的工作量非常大,如果你不做,用户就不上你的系统,做了,离客户的原始期望还是有很大差距, 客户觉得时间耽误了, 投资也得不到保障. 只有碰上那些跟你软件流程和功能很近似的客户, 成功的把握才能够大一些. 为什么会这样呢,软件不就是一些人编一下就行了吗。其实,软件的改造远比想象的复杂。就像我们现在生产的一些汽车, 车型的变化不是那么简单的,要改造生产线,生产工艺, 甚至要改造生产工人的观念. 软件生产也面临同样的问题, 要从底层改造设计的工艺. 带来的是整个思维体系的变化,完全不一样了。要选择一个新的开发模式,选择新的开发流程的控制模式.

98年底, 我接触了互联网技术和面向对象技术, 感觉非常好,从那时起建造新一代软件的冲动就出现了。 从99年初到99年中这段时间,大家用了半年时间,开始做基础实验, 学习大量国外的东西。上一代软件在开发时讲求的是做功能,谁的功能多,谁就厉害。但是在做新的软件时,我们有一种转变,认为架构是最重要的。当时我们把新一代软件的核心开发工作定位在做架构上,为什么这样想?因为功能今天没有,明天就可以加上,但是如果软件的架构不好,今天做一个功能,明天做一个功能,今天改一下这里, 明天动一下那里,改完以后,所有的东西都得重新测试,可能会漏洞百出,一段时间之后系统就崩溃了,无法做到长远发展。做架构就好比下围棋时的布局,首先要把局面打开, 然后再在细节上扩张,布局没走好,后面会越来越困难。做架构的难度是很大的,所有的东西必须事先考虑好,怎么去做,把什么封装在怎样的一个架构上,今后如何扩展等。架构体现一个人对应用软件产品的认识,对应用软件发展方向的预测和对关键技术的理解和把握。要是能把这个架构做的好,你必须有深刻的业务背景和技术背景。. 架构是什么?架构就相当于一个计算机的主机板,有很多扩展插槽和标准接口,可以插很多功能卡,功能卡就相当于软件的业务功能。做架构对我们所有人都是一个挑战,没办法,IT技术进步太快了。软件企业都有一个鲜明的特点,没有最好,只有更好, 你永远都不能躺在现有的地上收连年的麦子。

几年下来,我们在架构的研制上小有成绩,应用这套架构开发的程序已经开始逐步面世,并在用户中使用磨合。我们这个软件是没有固定流程的,也没有固定的模式,模式是在于用户怎么指挥,或者怎么搭配使用这个软件。企业发展过程,今天这个部门撤销了,明天那个流程需要改造一下,这是很正常的。而这都需要软件及时做出调整,所以软件一定要做成柔性的,重新设置一下又可以用了。用金庸的话说叫“无招胜有招”。但决不是真的没有招,只是我们没有固定的招,我不是说推荐给用户的是没有流程的软件,我们一样可以形成行业标准的东西,而且更容易形成行业知识库。比如业务和流程调整后,我们可以将设置的结果存在一个数据库里,这个时候就形成一种针对企业的固定的数据库,继而可以形成针对行业的一个标准的流程知识库,我们可以推荐给这个行业的另外一个客户使用,这套数据我们称之为行业数据模板。对于一个应用软件公司来讲这套数据模板也是公司的一笔巨大财富。

注:作者现任金蝶北京研发中心总经理
本文由作者向AMT提供

如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐
jill.jiang@amteam.org | 021-51096826-112 | 在线联系
老孙的IT运维管理之道[原创]用户的BSM用户的IT业务管..

从企业实际的IT运营角度来看,BSM是推动IT与业务融合,实现、改善WCNG司IT管理和治理的最佳实践之一。

吕建伟 专栏和CIO问答软件项目实施管理

现实中很少能按照正规流程来的,所以只能把流程中的各个环节拆开,个个击破,以后就可以见招拆招了。

ITIL实施:CIO时刻准备着

千军易得,一将难求,要推进ITIL实施,CIO扮演的角色不容忽视。吹响集结号,CIO出击的时刻已经来到。

节能与优化IT 企业CIO过冬良策

当前金融危机的影响还在继续漫延,很多企业都在苦寻过冬的良策,在这种情况下,节能与优化技术与产品无疑成为CIO们关注的首要对象,本次选题就是针对节能与优化IT来为CIO们提供过冬的良……