一位来自数百人规模HR软件公司的朋友认为,想要自研HR系统的企业领导,只有自研失败了才会“撞上南山方回头”,打破自研系统的迷思,就连他们软件公司自己的CRM系统、报销系统等也都是外购的。
一向旗帜鲜明地反对企业自研HR软件系统,除非这个企业想自己干HR软件公司。市面上HR软件供应商很多,而且从全球来看,Workday等领先HR软件公司正在整合市场,所以,如果你觉得市面上的HR软件不能满足你企业应用需求的话,那不是HR软件的问题,而是你企业的HR管理有问题。
Workday是当今全球最普及的HR软件,还是不能修改的SaaS,行业里最顶尖的公司:惠普、IBM、Aon、BCG的HR系统都是Workday,人家都能用,为什么你不能用?另外一种可能性是,那家公司IT部门的几百号人实在闲得没活干,要把资源利用足来开发HR系统,这就更要研究一下那家公司在的企业软件的自研和外购决策是否合理,IT战略管理是否有效了。
另一个人提出是否自研薪酬系统,应该也是有原因的。很少有企业会自研薪酬系统,因为薪酬系统是个非常标准的软件,不过某些行业的某些岗位有非常复杂的薪酬计算方法,例如保险公司、汽车销售公司的销售员,呼叫中心的话务员等,不过,销售激励计算、计件工资计算等,其实不属于薪酬系统范畴,而是属于特定的业务系统,只是将计算结果作为薪酬系统的输入。提问朋友的企业可能缺乏良好的应用架构规划。
企业软件究竟是自研还是外购,类似问题,我发现广泛存在于制造、零售、房地产、物流、金融机构等等各行各业的公司里:
某全球领先的中国制造企业在使用了某顶尖ERP品牌软件十多年后,在新一轮数字化建设中,逐步用自研系统替代“商品软件”(Commerciallyoff-the-shelf,以下简称COTS)的功能范围,原有ERP软件缩减到一个很小的位置,IT团队也从两三百人扩张到了上千人。
某大型服装连锁零售企业在十多年前,老板收编了一支服装零售软件开发团队,完全自研商品、供应链、门店销售系统;有意思的是,我发现不少国内服装企业在创业早期都有类似举措。随着业务扩张,老板不放心自研系统的能力,对CTO把控着核心系统也心存疑虑,力主引进了商品ERP软件。在使用了5年ERP系统后,自研派CTO卷土重来,推翻了ERP系统,重新回到自研系统老路上,企业IT团队也增长到上百人,成立了科技子公司。
某大型物流企业集团要整合全集团20多家主要经营单位,各家单位过去都有各自的IT系统,集团需要建设集中的销售、运营、人力资源、经营分析的IT系统。在我来看,那些业务需求绝大多数都是标准ERP功能;然而,企业领导着迷于自建“中台”,这些功能都要在中台上开发……
前些年房地产企业大多自建企业信息系统,最近几年掀起了一股“SAP热”,即便这样,还是有不少大型房地产企业的部分业务和管理的IT系统为自研,而排名第一的碧桂园,则只在财务、HR等管理领域使用了SAP,核心系统主体仍为自研:
这里讨论的“企业软件”(Enterprisesoftware)主要是指:
企业管理软件:涵盖企业管理层面的流程以及部门协同,典型的有ERP、CRM、HCM、PLM等,也包括了数据分析和管理报告系统核心业务系统:企业核心业务在运营层面的数字化应用,例如零售业的商品/供应链管理、消费品企业的数字化营销、制造业的制造执行管理、金融服务业的账户/资金/风险管理等业务辅助系统:辅助核心业务开展的数字化运营平台,例如工作流管理、内容管理、文档管理、服务管理、主数据管理等此处“企业软件”所指不包括基础软件,例如数据库、中间件、云平台等。
完全自研(build)和完全购买(buy)是两种极端状态,还存在一些中间状态,例如需要大量定制的应用软件(例如通常ERP、HR软件定制程度低,而PLM、CRM则需要大量定制)、半成品软件(例如BI、协同软件等)、低代码开发等。
可以从两个角度来思考企业软件的自研和外购策略:
1、系统复杂性:
业务涵盖面跨部门
基础数据模型复杂
2、业务关键性:
不具有行业通用性,体现了企业的差异性能力
涉及到核心交易,任务关键性(missioncritical)高,停用会对业务连续性造成重大影响
从这两个维度,我建议对于系统复杂度高、业务关键性低的系统,企业应该以购买COTS软件为主要方向,这类系统的典型是ERP、CRM、HR等。
为什么有些企业会去自研那些本来就有现成功能的商品软件,花大量的人力和资金去“发明轮子”呢?认为有这样一些原因:
1、缺乏良好的需求分析和管理:自研软件被认为最大的好处是能充分满足用户需求,但是这其实是个幻象。从现实来看,由于架构、资源的限制,在一个IT项目中,没有可能满足所有的用户需求。更要命的是,用户提出的系统应用需求往往是局部性的、带有个人使用习惯的,甚至本身逻辑就有错误。简单地应付用户需求,往往使得IT开发团队迷失了业务问题的本质,忽略了对应用需求的优先级管理(prioritization)。
2、缺乏企业架构管理:企业级信息系统是由流程架构-应用架构-数据架构-基础设施架构而构成的,大型企业的数字化进程是个持续演进的过程,既要考虑历史包袱,即各种历史遗留系统,也要应对不断变化的业务。企业需要有架构管理人员来管理各个系统的功能边界,什么业务需求属于哪个系统的范围,系统之间的集成策略等等,从而决策每个系统的自研及外购策略。
3、开源技术和“中台”潮流:最近这几年,互联网公司大声量制造的舆论,深刻地影(wu)响(dao)着传统企业,例如,“中台”、“敏捷和DevOps”等时髦概念,其实都是以自研企业软件为前提的,这对企业的IT资源和组织变革能力都提出了非常高的要求。在技术方面,随着Github等技术社区发展,开发底层流行采用免费的开源技术,领先的互联网公司免费输出高性能的技术框架,从信息交换层、数据管理层、微服务层、服务抽象层、API访问层、前端开发等技术栈(techstacks)各个层面上提供了多种免费工具选择,例如流行的前端开发框架Angular和React分别是从Google和Facebook传出的。这改变了传统收费中间件软件的商业模式,使得企业IT部门开展自研企业软件的成本和技术可得性的门槛大幅降低。
4、对套装软件的误解:盲目崇拜大牌软件,对大牌期望值过高,认为其无所不能。而在实际实施和使用中,由于缺乏良好的需求管理和架构管理,为了满足业务需求,外购的大型COTS软件缺乏周边系统支持,开发量过大,企业反思COTS软件的总体拥有成本高,实施周期长,还不如从基础开始自研。
5、软件供应商的商务陷阱:不少企业在使用传统本地安装的COTS软件中,在软件许可证(license)付费上经常遇到供应商陷阱,某些软件公司的销售人员在竞标中低价进入,诱使企业使用,其后采用各种手段,胁迫企业追加许可证费用。即使今天企业软件主流向SaaS订阅付费模式转型,企业具有更多的商务灵活性,然而“先低价进入、再渗透扩展”仍是软件商的销售策略。企业对自研软件具有完全的商务自主,可以避免不确定的软件商务纠纷。
6、开发成本优势:企业自研软件既可以自建研发和测试团队,也可以采用外包的技术资源。和欧美发达地区相比,中国的IT劳动力供应相对更充分、也更廉价,这也是欧美市场上的COTS软件,而在中国,由企业自研可能更具有成本优势。
7、其他原因:企业自研软件还有一些其他原因,例如,有些民企老板在信息技术方面有浓厚的个人科研兴趣,又例如,有些国企出于当前“自主可控”的政治风向,用自研开展国产化替代。
和COTS软件相比,自研系统通常存在这样一些显著的劣势:
固化落后实践,缺乏先进实践指导的组织整体优化功能可扩展性不强,COTS软件由于被很多企业使用,包含了更丰富的现成功能架构的技术先进性不够自研系统貌似贴近用户需求,其实更不灵活,功能大都是用代码写死(hard-code),而COTS软件为了适应跨企业的通用性,提供了丰富的配置功能采用开源技术进行的自研产品,会受到开源技术本身更新迭代的影响,如果选型不恰当,一些开源产品会随着开发社区的衰落而消失安全性和可靠性:COTS软件经过大量企业的商业性应用,在安全性和可靠性上有充足的保障,而自研系统往往难以保证代码质量以及网络安全技术。
建议企业在实施企业软件前,一定要进行明智的规划,作出正确的“自研/外购决策”,规划应重点