出处:http://blogger.org.cn/blog/more.asp?name=dashee&id=25209
在如今的软件行业,向平台进军已经是每个软件开发商宣传的口号,基本上每一家开发商都号称自己拥有软件开发平台,平台概念就和炒ERP一样被炒烂了。更离奇的是对平台的自我评价(或许该称为吹嘘)都非常类似,总结一些宣传的比较“好”的归纳如下:
1、快速开发:开发速度比手工写代码提高xx倍,应用系统开发只需要xx%的代码量或者可以零代码开发;
2、面向构件,工厂模式:开发软件可以像汽车组装流水线一样方便和快捷;
3、扩展性:灵活的业务配置和扩展能力;
4、低成本,易于维护;
5、平台的设计能力:平台可以根据用户的需求,很灵活的设计出符合用户要求的系统。
6、商业智能(BI)、划时代意义、ERP的第三次浪潮(ERP都没搞清楚),诸如此类的陈词滥调。
这些宣传真的是非常到位,就此而言,如果平台产品真的实现了这些目标,我感觉真的是企业之福了,可是实际情况是怎样呢?下面先了解一下现有平台的分类,根据现有的平台厂商调查,大致分为如下四类:
1、 [恶搞类]平台:这类平台大部分是在word,excel里面写了几个宏文件,连系统都谈不上,愣说自己是平台,不说也罢。
2、 [设置类]平台:此类平台以应用为基础,设置一些开关变量,以适应不用的情况和场合,可以说让应用的灵活性有一定提高。可是再灵活也只能称为应用,而且扩展性非常差。
3、 [应用转行类]平台:这是比较成功的一类,暂且称只为平台,以行业应用为基础,封装了行业(或典型企业)的诸多相对通用的业务逻辑,而且业务逻辑是对某个行业经过深刻研究后才能得到的结果。可是只能在行业内部应用,增加业务逻辑模块仍然需要编写代码,如果开发新的行业的应用,等于从零做起。
4、 [协同类]平台:这是比较成功而且是见的最多的一种平台(具有应用转行平台的所有优点和缺点,但是其局限性要小的多),以OA或者ERP为基础,以工作流为核心。
纵 观这些平台,再看平台的宣传,平台解决了什么问题?其实这些宣传正是他们没有解决的问题。那么问题出在哪里?其实最重要的还是平台软件厂商的没有认识清楚 平台的概念,还没有从应用的开发当中解放出来,不忍丢下现有的行业应用。那么这就导致了这些平台产品的局限性,同时制约了本身的技术进步和思想进步,最终 将会沦为与传统行业应用软件开发商相同的层次,到时候只能宣告:向平台进军失败。或者说这些行业软件商不具备开发平台的条件。
在此插一句:为什么国内ERP的实施失败的案例很多?做了几年的ERP的软件开发商都不知道何为ERP,开发商自己都不用还要高价卖给客户,这能成功才怪。ERP是改变工作方式、合理利用资源,而大部分开发商和企业只是将其认为是软件,是数据库应用,暂且不评论ERP软件的质量。或许是开发商的售前鼓吹、或许是企业对ERP期望太高,ERP的实施费用是相当昂贵的,少则10万20万,多则几千万。企业花了高价来实施ERP产品,却收效甚微,甚至出现影响现有工作的情况,大多是因为企业管理人员对ERP的错误认识或者ERP软件本身就不能满足现有需求。软件满足不了需求最好、有BUG更好,我们提供升级,提供服务啊。现在都在卖服务不是,好像有了服务就是好软件了,那么修改BUG也要用户来买单,还美其名曰是服务,我倒!开发商钱赚到手了?那么ERP的疗效去了哪里?深思吧
言 规正传,平台软件到底能不能满足企业信息化建设的需求?回答是肯定的,但不是上述几类平台能解决的。一个能满足企业信息化建设的平台应该是什么样子?其实 就是实现上述平台所宣传的目标,那么这个目标如何实现,关键还是定位问题。还得用一下生产汽车的例子:其实组装汽车并不复杂,因为我们是用制造好的零部件 组装,所以显得很容易。软件也是如此,因为平台里面集成了了很多业务逻辑和功能模块,所以平台都号称零代码或者面向构件,因为他们忽略了最重要的环节,也 就是这些业务逻辑和功能模块的的开发,这才是问题的关键,也是为什么平台没有实现所宣传的目标的原因。软件开发与组装汽车不同,因为汽车零部件都有相应的 标准,而且都是批量生产,具有模式化;软件则不同,没有办法来统一,需求千变万化,如果拿做车的路子来套软件生产,无疑是死路一条。
如何改善这个问题?有人说SOA,可以灵活的实现业务基础架构,这里不再多说SOA,从它一开始到现在所走的路,自己是死是活都不一定,可以去CSDN搜索相关文章自己感受一下。
那么现在需要什么样的平台?我认为是汽车制造零部件的工厂,也就是快速构建功能模块的平台。这样的平台与行业应用没有直接关系,只是能快速根据图纸生产零件,当然能组装成产品更好。这必须要遵循三个原则:
1、 在编程语言上层实现。
写代码虽然灵活,可随心所欲,毕竟效率很低,修改起来也困难。可是不写代码可能灵活性尽失,又要走前面一些平台的老路。其实程序员都知道,写代码也无非那几招,数据输入(数据采集,合法性验证) 、逻辑处理(条件判断、循环遍历、递规调用)、执行处理(数据运算、数据库操作)、显示处理(界面显示、报表),很符合MVC思想。如果这些处理都不再需要编码,那么会节省大量的时间。
2、 与行业应用无关。
因为我们是要做平台,是将需求转换为思维再转换为应用系统。当然这个平台不能说只能做进销存,或者只能做OA。它应该能更灵活的做信息化应用。
3、 能快速将思维图纸转换为业务模型。
思 维来源于需求,对于有行业经验的业务人员,根据需求产生思维意识的解决方案是很容易的事,但是实践到产品开发上面还要经过大量的时间,概要设计,详细设 计,模块划分等等。那么如果平台可以给业务人员一个展示才华的机会,可以让他用我们的平台来实现他的思维,那么这个环节将省去大量的劳动力和宝贵的时间。
当然,平台的稳定性、安全性、可部署性、是否可以在满足互联网环境等等问题,都要平台设计当中考虑,这不是本文的范围,不加详细说明。