《网络平台道路货物运输经营管理暂行办法》延长至2023年底政策的颁布,给仍在观望着入场的企业带来了一个确定性因素。从交通运输部公布的数据,及行业发展的现状,虽然行业仍面临诸多问题,但总的趋势不可逆。今天的话题是探讨网络货运实施的第一步,系统研发有多难?
关于系统研发失败率的一些研究报告参考,波士顿咨询集团的研究发现,70%的数字化转型并没有达到目标。同样,《2020年全球应用程序现代化业务晴雨表报告》发现,74%启动了原有系统现代化改造项目的企业未能完成项目,这与麦肯锡几年前报告的70%失败率相差不多。
以下从“三个环节,一个问题”来分析造成如此高失败率的原因。
1 产品设计
环节一产品设计。产品设计首先需要的是具备相关领域的知识,虽然网络货运实施了5年(3年无车承运+2年网络货运),但对于新进入企业而言,这仍然是一个新的课题。业务模式、协作流程、运营风控、合规性等方面,如果没有实际的参与运营,基本上很难达到从全局到微观的掌握。因此,对于研发团队而言,面临的最大风险则是“需求不清晰、不完整”。再者是系统论,软件系统像人的身体一样是完整的系统,各部分之间既有分工又有协作,追求的是一个相对的统一与平衡。一般情况下懂业务的不懂系统架构设计,而懂系统设计的不懂业务,所以研发的过程需要一名总设计师,这名总设计师需要具备跨学科的专业知识。否则,业务业务团队与研发团队之间就会产生知识上的鸿沟,这也是信息化项目实施失败的最主要原因。最后是迭代设计能力,网络货运的监管要求持续在变,市场业务的形态同样持续在变。当我们没有足够的信息源,以及没有足够的能力甄别其中有价值的创新,并把这些创新迭代到软件系统中来的时候,如何保证产品的竞争力?这是自研发网络货运系统需要面对的问题。
2 程序实现
环节二程序实现。第一步,架构设计。软件开发的复杂性就在其本质上是将人的想法用字符和逻辑公式精确地表达出来。就像编写一本书,参与编写的每个人,都有自己的写作风格。如果组织一批人来共同编写一本书,达到各章节层次递进清晰、写作风格一致,总编这个角色非常重要。第二步,工作量。有个叫卡珀斯·琼斯的美国人写了本书叫《软件工程通史》,作者通过对大量的软件项目实施统计得出,程序员月均代码产量在325-750行,不得不说这个产量跨度属实有点大。达牛的网络货运平台一共87万行代码,即使按一名程序员月均1000行代码的产量,87万行代码则需要870名程序员写一个月,或者87名程序员写10个月,且中间不能任何反复。从成本计算角度,以2万/人月的薪资标准,87人一个月则需要支出1740万元人民币。这个仅计算代码生产,不包括产品设计、系统测试人员的成本。而事实上,达牛的网络货运平台在7年时间里不停地修正、优化,才有今天的结果。
3 系统测试
环节三系统测试。先来聊聊测试的背景知识,N个功能可以有多少种排列?答案是N的阶乘。3个功能的排列等于3*2*1为6。一个网络货运平台有数千项功能,哪怕只有3个功能模块会形成排列,也是3的阶乘,就是6条操作流程。而把每种流程都测试一遍叫路径覆盖,所以说系统投入生产前的测试工作量非常大的,即使这么大的工作量也不能保证全面的覆盖测试,还需要通过长期的应用不断地发现问题,持续修正。这也解释了为什么业界有一个说法,一款软件的成熟度是需要经历时间的。有些类似女同志怀孕生孩子,没有10个月,胎儿不可能发育成熟。
4 系统安全
关于系统安全问题。系统安全非常重要,分享两个关于安全问题的案例。2017年,我们的无车承运人系统遭受过DDoS大流量攻击,系统运行中断了四个小时。正是基于这个事情,我们加固了这方面的安全防护。第二个案例发生在不久前的12月份(2021年),一家网络货运平台被黑客攻击,造成平台资金被盗走。其中有相当大的金额发生在周日夜间,黑客通过篡改司机的银行账号,一个司机账户2-3万元分散转移出去。这不是达牛的网络货运平台,但网安部门很负责,马上就联系到我们,我们对平台进行了安全性复测和加固。系统安全的加固有点像新生儿免疫系统建立,每个新生儿总是需要经历几次的感冒发热,这样身体的免疫力才会得到增强。当前多数的系统平台都是选择云厂商的服务器进行数据存储,而云厂商的存储环境几乎每天都在面对和承受着大量的恶意攻击,因为攻击又在持续的安全加固,因此公有云的安全系统相对要比私有云要安全。
以上是达牛关于网络货运自研难点的分享。总结来说网络货运系统研发是一项系统工程,包括产品设计、开发实现、系统测试三个环节,以及系统安全管理。并非时间周期和投资额度这么简单的问题,还需要优秀的人才队伍。