相信很多人都有困惑,为什么互联网科技公司,都喜欢自研业务系统(例如WMS、CRM、电商系统等),而不是采购市面上成熟的商业软件套件呢?各类商业软件发展了这么多年,再加上各种SaaS产品,很多业务问题都有丰富的软件解决方案,为何不直接使用,而要费力的从无到有去做自研呢?
这个问题曾经困扰了我很长时间。我刚毕业的前三年,在一家外资保险公司做开发,所有系统都是外采成熟的商业软件产品加定制化开发(例如核心业务系统用的CSC的LifeAsia,BI用的IBM的Cognos,财务和内部采购用的OracleEBS等),后来去了百度转行产品经理,百度所有业务系统都是自研,当时非常不理解,觉得很奇葩,但随着工作的深入,后来又经历了两家独角兽公司整个业务平台从无到有的搭建过程,对这个问题思考了很久,也慢慢有了答案。
为什么互联网公司都喜欢自研业务系统?我认为原因有以下几点。
首先,最基本的一点,互联网公司很多业务形态比较新颖,对应的业务运营模式也比较独特,面对这些特殊的、创新的业务运作模式,很难从市面上找到一款直接能够使用的成熟管理软件。
例如,美团的骑手管理,这种业务形态本身就是从无到有的创新产物,没有任何参考,而对应的管理软件系统,更没有相关的沉淀可以借鉴,所以必须由产品经理和业务人员一起,根据自身业务特点,从头设计运作流程、机制,以及对应的软件系统。
即便是对于某些经典成熟的业态,互联网公司也有很独特的运作管理模式,例如美团对于地推团队的管理,虽然属于CRM SFA的领域和范畴,但是基于餐饮门店这种强POI管理的CRM系统,以及和客户的经营管理等数据、操作做深度集成,市面上任何一款商用CRM产品,都很难做简单改造就能适用,甚至做定制化改造的成本可能比自研还要高,而且软件的底层架构可能也不适合调整。
互联网公司的一个显著特点,就是业务探索开展特别快,业务调整取消也特别快。例如,很多O2O平台曾经尝试切入早餐业务,有些可能做一年就停了,有些甚至做半年就停了,这样的节奏,在传统企业是很少见的。
不论是成熟的互联网公司做各种业务探索尝试,还是创业中的互联网公司不断调整方向去寻找自己的主营业务模式,在互联网公司工作的人可能都深有体会,很多项目上马快,下线更快;有些项目三个月以后落地的思路,已经和当时的规划预期完全不同。
例如,某宇宙条公司曾经要迅速切入1对1在线英语赛道,短时间投入大量资源瞬间补齐团队,杀入市场,但没过多久,业务又产生重大调整,人员大量转岗。再往后,公司又再次将教育放在战略核心,更进一步的加大资源投入。
面临这么快速变化和调整的业务,背后对应的业务运营和管理模式更是需要不断调整、变化,在摸索中前进。而对于支持业务运作的管理软件系统设计来说,这将是一场灾难。
管理软件的建设,最希望面临稳定的业务,固定的流程,规范的制度,经过抽象设计,实现优雅的规划和迭代计划。如果业务本身多变,经常推倒重来,对于管理软件设计人员来说,将会非常痛苦,首先无法准确的做软件抽象,其次即便准确做了设计方案,也有可能被一个变化调整轻易地摧毁。更痛苦的是,用心设计的系统,辛苦上线后,还没用多久,业务就取消了。
这些都是互联网业务中很现实的客观存在,互联网本身就是在各种天马行空的探索中找到突破、进行奇袭、取得奇胜。作为企业内部2B产品经理,很重要的能力和心态,就是通过自己的专业能力,帮助企业以最合理的资源投入取得业务的胜利。
面对这样快速变化的业务,如果一上来就选择外采软件,那么会带来非常多的问题,比如业务模式不固定,外采商业软件无法做落地实施;比如实施周期长,还没上线,需求可能早已完全改变;比如成本高,其实只需要个滑板,但必须买来个小汽车,还得把车身卸掉才能用。
可见,面临这种多变的业务,对于内部管理软件系统建设,其实现思路和传统IT做项目完全不同,必须本着能用Excel就不上系统,能做个滑板就绝对不要滑板车的套路,用有限的资源投入,最高效的支持业务。
面对多变的业务,从无到有的自研业务系统,还有一个很大的好处,就是没有任何历史包袱,可以任意的发挥,快速的上线。虽然做的系统一团糟,但是迭代快,可以很好地支持更加混乱的业务。
在很多产品专家看来,很多互联网创业公司的内部业务平台,做的简直就是一堆破烂。但重要的是,正是这堆破烂,助力公司业务一路狂奔,收入倍增,融资从A轮一路来到C轮。
有经验的2B产品经理都知道,如果想把软件系统做的完美、灵活,第一需要业务核心稳定不变,第二需要较多的资源投入和沉淀。对于初创互联网公司或新业务来说,显然时间就是生命,业务在前端飞奔,后端的系统建设必须硬着头皮跟上。
在这种情况下,从无到有设计的系统,最容易跟着业务快速跑,而且越简单的软件底层,早期的开发和调整也越快。如果一上来就采用一套成熟的商业软件套件,自以为可以灵活定制快速支持业务,实际上是不太可能的,因为你根本无法想象业务变化的有多快。
基本上所有的互联网创业公司或新业务的内部业务系统建设,都会经历这么几个阶段,第一个阶段是飞速发展,疯狂支持业务需求,不考虑架构合理性;第二个阶段是业务继续飞速发展,系统bug满天飞,改bug严重制约了新需求研发,但只能咬着牙继续抗;第三个阶段,是业务增速放缓,或者稍微可以喘口气,系统满身补丁完全跑不动,此时投入大量资源拆了大重构。
一般公司在A轮和B轮融资时,处在阶段一或阶段二,到了C轮时,必须完成阶段三。如果到了D轮,才进入阶段三,那么系统问题以及技术债,会显著地影响业务发展。
做业务系统设计,要考虑企业应用架构的合理性问题。但很多时候,架构合理性,和投入资源以及交付时间之间,存在着不可能三角。你不可能既要求架构合理,又想要投入资源少,并且上线时间快。
我自己长期以来的实践观点,是在创业企业或业务内部,只要是为了业务快速发展,不错过增长的时间窗口,就允许存在不合理的架构设计。试想,很多时候如果过多考虑所谓架构合理性问题,业务最后都黄了,合理架构还有存在的前提么?
自研业务系统,在考虑新系统和现有的应用架构的整合、融入、抽象、复用时,可以给研发人员充分的自由度来实现各种设计方案,在成本、时间、架构合理性之间取得最优解。
通过以上几点,我们已经可以看出,在互联网企业多变的业务探索中,必须谨慎的投入资源实现业务系统来支撑业务开展,而自研业务系统,相对来讲,是一种更可控、成本相对更低的选择。
试想,某新业务开展,需要CRM软件支持,但经过评估,符合业务诉求的市面CRM软件,加上定制化投入,最低算下来也得大几十万,而且实施周期长。
如果选择自研,基本上一个高级PM + 三个后端RD + 半个FE + 一个QA + 半个UE,两个月的研发时间可以提交一个能抗半年的MVP版本,假设以上岗位平均企业用人成本在4万/月,基本投入也只需三十多万元(QA、UE只需投入半个月,以上只是粗略估算)。
可见,只要产品经理能够把握核心需求,充分调用资源,只做不得已功能(没这个功能业务无法开展),那么整体研发资源投入还是比较可控且合理的。其实算一算经济账,很多功能即便暂时不做,招聘几个工资比较低的初级业务员手工去处理,也都是比较好的选择。
对于互联网公司来讲,探索性业务被随时叫停,投入了不少资源的自研系统被关停,这都是很常见的现象。
所以,自研系统要跟着业务一起摸着石头过河,跟着业务一起成长壮大,在合适的时间点做壮士断腕的重构。千万不要一上来就画大饼,搞得过于复杂,浪费人感情不要紧,关键耽搁业务啊!
最后,还想补充一点自研业务系统的绝对优势,在互联网公司的疯狂加班文化中,针对自研业务系统,可以针对项目组开展全员“福报”运动。
鼓励大家自觉加班加点冲刺来完成项目,2个月的工期,可以在“福报”运动中缩短到1个月,这样企业的成本又节约了一半,效率还提升了一倍,何乐而不为?如果采买了第三方厂商的产品,所有定制化都要收工时费,这不冤大头么?
以上聊了聊我对互联网公司为什么喜欢自研业务系统的看法,说了这么多,其实也想再补充一点,并不是所有情况都建议自研系统,某些情况下就完全不适合。
比如说,报表引擎这种产品,高度的标准化,而且买来就能用,自研本身难度也高,就没必要自主研发了。另外,类似于FMS、OA这类业务非常标准的管理软件,也可以考虑直接采购成熟产品,当然,有钱的互联网巨头不在此列,对于巨头来讲,万物皆可自研,我甚至见过自研财务总账系统的互联网公司。