发现一些传统制造型企业,比如做鞋的,做汽车配件的,出于各方面考虑,倾向于自己组建团队开发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等等。有些是实际开发过的,有些是网上看过文档,或了解过使用者评价的。综合来说,各种低代码开发平台,依然是非常小众的,适合个人应用,或者小型的、非核心的企业应用的开发。
第五,在企业信息化过程中,产品其实是次要的。"三分技术,七分管理,十二分数据",这句话本是ERP实施行业的常用语,拿来形容企业信息化,亦是恰如其分.信息化过程,实际是业务系统与IT系统相互融合,形成一套新的业务系统的过程. 不仅是IT系统需要适应业务系统的自身需求,业务系统也需要调整去适应IT系统的优秀之处.越是业务价值高,效益大的信息化过程,对业务系统的重构就越彻底.我们不能用骑自行车的方式去开汽车,也不能用开汽车的方式去驾驶飞机.所以,在信息化过程中,产品相对来说是次要的.没有百分百合适的软件,需要相互去适应.在选择优秀又相对合适的软件的基础上,可以做一些二次开发,来满足自身的特殊需求。
《企业信息技术总体规划方法》的作者刘希俭,刘总在书中写道:
要尽可能使用成熟软件,降低实施及维护成本,降低采购成本和升级工作量;尽量减少自行开发,保障系统建设进度、质量与水平。世界领先的公司现在越来越多地抛弃自行开发软件的传统做法,完全选用市场上成熟软件产品。成熟软件的总价值总是高于自行开发的软件价值,正在同类公司中被广泛使用的成熟软件尤其如此。软件开发不是非软件业企业的主要方向,这些企业自主开发的软件不可能优于专业软件公司成熟产品。只有在现成系统软件不能满足企业要求时才自行开发,对因某些业务特殊需要自行开发软件进行充分论证。
以上是我认为的非软件企业自己开发信息系统的一些弊端。但我并不是完全反对企业自己开发系统,如果企业有足够的财力、人才支持,有较稳定的业务流程,市场上确实也没有成熟的商用软件适合公司业务,那自己开发系统不失为一个选择。
标签:信息系统,自研,代码,系统,业务,开发,思考,软件,企业 From: https://www.cnblogs.com/wzKeno/p/16962751.html