关于非IT企业自研信息系统的思考

  发现一些传统制造型企业,比如做鞋的,做汽车配件的,出于各方面考虑,倾向于自己组建团队开发ERP系统,企业运营管理系统等等。这些企业有些是害怕商用软件不适用企业,有的是为了避免系统太多无法有效集成,所以想通过低代码或者零代码平台来开发统管一切的信息系统。对于这种现象,我分享一些自己的观点。

  首先,我觉得要尊重专业。软件开发是一门非常专业的学问,需要专业的人才,也需要专业的方法。需求分析,架构设计,测试管理,版本配置管理,文档规范,项目管理,这些内容其实都是非常专业的事情。制造型企业的企业基因,是很难做好软件开发的。很多中小型企业对开发的认识不足,以为招几个会写代码的程序员就可以了。这种环境下,开发出的软件可能会暂时满足功能性需求,但在可靠性、易用性、效率、可维护性、可移植性等质量特性上相比商用软件肯定还会是有些差距的。而这些差距都会在使用过程中体现出来,日积月累,最后变得难以维护。

  其次,企业自己开发软件,与购买商业软件,以及外包开发相比,很难控制范围蔓延与需求变更。很多企业想自己开发软件的初衷,便是自己企业的一些特殊之处,标准化的软件难以满足,这从另一方面也表明,企业在业务与管理规范化上可能还有所欠缺。成熟的商业软件一般面向行业标准、最佳实践来开发,比如MES有ISA95标准,ERP有国标GB/Z 18728 。但如果企业规范化上还有所欠缺的时候,它的流程,职能可能都还是不固定的,在很多业务场景下需要人为临时判断如何执行,这一方面加大的软件开发的复杂性,另一方面不可避免的带来经常性的需求增加与变更。外包开发可以通过商业合同的的方式将业务需求、项目范围契约化,但在甲方企业内部,领导一句话就可以否定开发团队前期所有的工作。

  第三,软件、信息系统包含的范围非常广泛,复杂性各有不同,不可能所有软件都自己去研发。比如AutoCAD,Sloidworks之类的设计软件,很多Web开发人员可能接触都没接触过,更别说去开发一个类似的软件了。还有ERP如SAP,PLM如西门子 teamcenter,企业有能力开发吗,开发的软件能达到商业软件的成熟度吗?对企业信息化来讲,专业的厂家做专业的软件,专业的系统做专业的事情。信息化过程中,异构是必然的,如何解决异构,实现业务、应用、数据的有效集成,是信息化所要解决的重大课题。为了避免异构,而想自己去开发一套大一统的系统,是本末倒置的行为。

  第四,低代码或者零代码开发平台并不适合大型信息系统的开发。正如建大厦,规划设计远比砌砖头重要,系统开发中需求分析、架构设计远比写代码重要。很多低代码、零代码平台可以让非开发人员能通过简单的配置,用一个个表单与流程搭建出一个小应用。但如果要开发大型复杂系统,一是需要强大的团队,需求、设计、测试等,二是需要平台支持复杂的业务逻辑,特别是类似java这样良好的生态非常重要,有非常多的类库、成熟的框架可以使用,三是需要高效的性能、稳定性,四是企业级应用需要支持一些先进的标准规范,比如SOA,Web Service,REST,LDAP集成等。各种低代码平台相对java,.net这类开发语言相对来说受众比较小,生态差很多,受平台技术限制比较大。 用低代码平台开发时,当系统需要实现一些复杂功能时,势必还会涉及到前台如js开发,后台如java,.net开发。对开发人员的要求并不低。个人有了解过的一些平台,如泛微Ecology的建模引擎,金蝶的Bos平台,Outsystems,普元EOS,Joget等等。有些是实际开发过的,有些是网上看过文档,或了解过使用者评价的。综合来说,各种低代码开发平台,依然是非常小众的,适合个人应用,或者小型的、非核心的企业应用的开发。

  第五,一些企业可能是出于原来系统太多而无法有效集成,导致很多信息孤岛,才考虑去自研开发一个大一统的系统,这个系统可能包含自己企业中的大部分业务领域,从OA,HR,ERP等等。这种想法一部分可能也是受到了中台思想的影响。就我的观点,先不说中台到底好不好,首先我觉得中台,或者说这种自研统一平台的方式是只适合互联网企业,或者信息技术能力超强的大型集团企业。互联网企业与传统企业不一样,它们的信息系统是业务的主角,是业务本身,所有系统都是自己开发的,正如可口可乐的配方一样,是企业的核心资产。当所有的业务系统都需要去自己开发,又有技术能力的时候,去开发这样一个大一统的平台就成为一个可能。而对于传统企业来说,购买成熟的商业软件,再加一定程度二次开发,是最佳的选择。而各种不同领域的商业软件之间如何集成,是传统企业信息化部门需要解决的问题,不应该成为一个可以逃避的问题。通过开发一个大一统的业务系统去逃避异构与集成是不现实的。

  从架构思想来说,学习过软件开发的人都知道”松耦合,高内聚“这样一个软件工程原则。在网络通讯领域中,局域网以交换机为中心给各种终端提供通讯交换集成是当前事实上的标准。而在应用架构领域,TOGAF推荐的IIIRM参考模型,也是推荐通过集成平台运用SOA的思想与各类标准协议去对各类异构系统进行集成。我们从这个世界上的各种领域去看架构,比如建筑,没有一个大一统的建筑能涵盖一切,城市必然是一个个区域,一个个单体建筑,通过道路、管道、等等集成在一起;比如组织,没有一个人具有上帝般的能力,能干成一切事情,必须发展出组织、公司这些形成,通过权责利、流程、共同的目标等将许多人集成在一起变成一个组织去实现目标。所以专业的系统干专业的事情,没有一个系统可以干所有事情。业务中台也不行,阿里拆中台曾经闹得沸沸扬扬,各中内情不足为外人道,但多少看出,中台并不是一剂没有副作用的万能良药。

  第六,在企业信息化过程中,产品其实是次要的。"三分技术,七分管理,十二分数据",这句话本是ERP实施行业的常用语,拿来形容企业信息化,亦是恰如其分.信息化过程,实际是业务系统与IT系统相互融合,形成一套新的业务系统的过程. 不仅是IT系统需要适应业务系统的自身需求,业务系统也需要调整去适应IT系统的优秀之处.越是业务价值高,效益大的信息化过程,对业务系统的重构就越彻底.我们不能用骑自行车的方式去开汽车,也不能用开汽车的方式去驾驶飞机.所以,在信息化过程中,产品相对来说是次要的.没有百分百合适的软件,需要相互去适应.在选择优秀又相对合适的软件的基础上,可以做一些二次开发,来满足自身的特殊需求。

  《企业信息技术总体规划方法》的作者刘希俭,刘总在书中写道:

  要尽可能使用成熟软件,降低实施及维护成本,降低采购成本和升级工作量;尽量减少自行开发,保障系统建设进度、质量与水平。世界领先的公司现在越来越多地抛弃自行开发软件的传统做法,完全选用市场上成熟软件产品。成熟软件的总价值总是高于自行开发的软件价值,正在同类公司中被广泛使用的成熟软件尤其如此。软件开发不是非软件业企业的主要方向,这些企业自主开发的软件不可能优于专业软件公司成熟产品。只有在现成系统软件不能满足企业要求时才自行开发,对因某些业务特殊需要自行开发软件进行充分论证。

  以上是我认为的非软件企业自己开发信息系统的一些弊端。但我并不是完全反对企业自己开发系统,如果企业有足够的财力、人才支持,有较稳定的业务流程,市场上确实也没有成熟的商用软件适合公司业务,那自己开发系统不失为一个选择。

posted @   wzKeno  阅读(202)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示