铜仁市论坛

首页 » 分类 » 问答 » 中国软件,请不要忽略结构设计
TUhjnbcbe - 2020/11/30 9:39:00
来源/可持续开发

作者/*允聪·编辑/Jenny

我发现很多人对B端管理软件的难度理解存在很大的误区,认为管理软件已经很普遍了,不存在多大的技术难度,而且很多做风投的人也持有相同的观点。

下面我就讲讲为什么结构设计对中国软件发展是至关重要的,甚至可以说是会产生颠覆式的效果。

软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构。

软件结构设计就是软件的工艺流程,是软件高质量,低成本,快速反应和持续发展的保证,很多软件因为技术债后期都会陷入一种可怕的停滞状态,软件变得没有人敢动,更不用讲持续添加新的功能了。

01什么是复杂软件

什么是复杂软件呢?比如CAD软件(即脑辅助设计,是指运用电脑软件制作并模拟实物设计,展现新开发商品的外型、结构、彩色、质感等特色的过程。主要用于汽车、医疗机械、船舶等产品的设计),数据库系统软件,大型的管理软件如SAP等,我们现实生活中接触的APP软件都不是复杂软件,但安卓和IOS基础生态体系是属于复杂软件。

有人觉得觉得CAD软件很难,管理软件ERP很普遍,不难。

我在美国接触过1年的CAD,当时使用了多个DCAD,并且学习了很多图形学方面的知识,去面试过一家顶级的CAD企业,被拷问了一整天。

CAD确实很难,因为是跨学科的领域,但在我看来阻碍中国CAD企业发展的原因不是算法理论上面的东西,而是系统工程化实现的问题,因为做出来产品和成为有竞争力的商品是完全是两回事情。

CAD的功能设计需要行业专家和算法专家去完成,但软件必须是由码农们去实现的,行业专家和算法专家不管多牛逼,都做不了。

而这种复杂的大型应用软件的开发不是做APP,它的复杂程度远远超过一般人的想象。之前看到一个芯片视频,讲述芯片复杂,就和一个巨大的微缩城市,复杂的大型软件也是一种逻辑世界的看不见的巨大城市,复杂程度可能还高于芯片。

我这里讲的是复杂的软件,因为现在简单的烂的软件太多了,让人们感觉不到这种复杂的存在,其实芯片也是有简单的和复杂的之分的。

面对这种超级复杂软件,中国缺少的不是钱,不是*府的扶植,是软件结构设计的基础人才和团队,因为不管设计和算法再好,都需要去实现,芯片设计的再好,都需要去生产出来,而且要保证很高的成品率。

CAD即使做出来了,但BUG率太高不稳定,新功能不能持续加入,这样的软件产品有市场竞争力吗?如果市场上没有这样的产品,没有问题,毕竟解决了有没有的问题,但如果想去抢夺市场,这样一定是不行的。华为和阿里的移动操作系统用来做狙击是可以,如果谷歌对安卓收高额费用,反而可能留给国产系统的生存空间。

02跟随战略

导致基础能力缺失

跟随战略让很多的中国企业失去了创新的动力,例如,民众的眼里合资车的质量是低于相同型号的进口车的,比如进口宝马和华晨宝马。

曾经一个业内人士跟我讲,这也是迫不得已,因为实现进口车的标准,则成本也会随之提升,合资车和进口车价格在一个挡位,消费者自然会选择进口车,这就是跟随战略的问题。

软件上面也存在相同问题,而且在赢者通吃的系统软件和通用软件行业,急剧放大的马太效应让跟随者更加难有生存的机会,国产龙芯和WPS的就是实在的案例,在这种强大的马太效应下,即使强大的微软也不得不放弃自己的移动操作系统。

市场先入为主的现象,让后来着想突破市场必须有创新有突破,给消费者选择的理由。后来者进入市场,就是向上攻击敌*山头,人家岂能让你轻易上来。

一个行业技术创新的基础是高素质的人才和长期持续的积累,中国软件行业长期的“拿来主义”产生了一种很难让人发觉的“温水煮青蛙”现象。

为什么现在的软件工程师都被称作码农,因为绝大多数工程师都是处于外围开发层次,其实和工厂的蓝领工人没有本质区别,软件开发变成了一种青春体力活,0岁以后就开始进入中年危机。

而背后的原因就是现代软件发展让软件的结构化变得空前的强大,让很多人可以使用这些基础的模块实现上层的功能,就和组装电脑一样。要知道90年代之前的程序要懂太多东西了,而当今的程序员已经变成了上层的搬砖机器,因为基础的缺失业导致了很多问题的出现,波音MAX的软件问题就是在这种背景下出现的,因为印度有着大量的这样的软件蓝领工人。

这种底层结构设计的基础能力的缺失本身就会让产业进入一种畸形的状态,美国软件业强大背后是这种基础能力的强大,这种高端软件技术人才的聚合能力。很多产业光靠*府扶植是没有用的,如果扶植不能解决这种基础创新能力的问题,扶植资金也只能变成某些投机企业的唐僧肉,看看”国产浏览器红芯”,看看新能源汽车的骗补问题。阿里OS和华为移动操作系统也存在一段时间了,但因为软件高端人才的缺失,这条道路注定是不平坦的。

上面图片是一家知名ERP厂商的条码打印模块,可以看到软件是英文的,因为使用了微软的工具库模块,中国的管理软件企业基本上都被绑在了微软这台战车上面,走的是人家为你铺好的道路,就和当年运-10一样。

当然以前中国经济基础差,可以跟随,但中国经济现在已经到了必须转型升级的关键时刻,中国今天的繁荣是我们过去决策和努力的结果,中国当前对技术创新的选择将决定中国未来的20年的发展。

用友的之前宣传的挑战SAP的U9产品也是绑在微软这个战车上面的,而SAP的基石是自己的,其实谁能胜出其实是很自然的事情。因为绑在他人战车上面的最大问题就是创新能力被束缚被压抑,世界上容易走的路一般都会成为一条死路,为了快速推出产品而放弃自己的基础结构设计,自己的基石,这样的软件是很难走远的。

我这里谈论结构设计不是在否定功能设计的重要性,产品是为用户服务的,没有好的功能设计,结构设计就是浪费钱。具体的例子就是日本的家电企业,因为市场和工厂在中国,研发人员在日本,导致产品设计和市场的脱节,奠定了日本家电企业失败的结果。差的功能设计可能让企业死掉,而差的结构设计会让企业生不如死的煎熬的活着。

典型的例子就是现在的SAAS软件企业。这几年大批的资金进入SAAS领域,资本都认为新的风口来到了,事实上,现在很多SAAS企业都深陷巨额亏损和裁员,这个市场如果没有明显的超越和颠覆,将一直春秋战国下去。

因为功能大家都是可用相互抄袭的,但很多实在的用户痛点,如管理和供应链的痛点,又都解决不了,花了几亿的资金,功能还停留在销售和简单报表的阶段。

0自己的蓝海天地

必须依靠技术创新

这里讲一个汽车的案例,日本汽车崛起之前,美国汽车产业已经空前强大,而且美国社会已经进入了汽车社会。在强大的美国汽车企业面前,日本企业是怎么突破,到最后把美国汽车企业打的满地找牙呢?

在美国我接触过的很多美国人,对日本汽车都有着非常好的印象,在他们看来,日本汽车省油,便宜实惠,而且”RunForever”(非常非常可靠,维护成本极低,保值非常好),而这背后的原因是什么呢?我们知道日本汽车企业提出了”精益求精”和JIT的概念,日本企业极其重视工业流程。

我的在日本留学和工作过的表哥跟我讲,日本人可以做汽车刷漆这个事情0年,而且还在不断追求完美。没有日本车之前,美国人都会认为车子坏坏有些毛病很正常,但日本企业把这个标准提升了很大,改变了人们的看法,让汽车的生产工艺出现了代差,这就是颠覆式技术创新。类似的案例还有数码相机颠覆了胶片巨头,苹果手机颠覆了手机行业。

04中国软件崛起

必须依靠颠覆的创新能力

现在世界零售消费市场发生了巨大的改变,人们开始追求多样化和个性化,但当前的供给端还处于一种老旧的标准规模化生产模式,直接的结果,就是国内外服装企业库存的高起,国际快时尚巨头焚烧几十亿美金的库存,中国服装企业亏损中煎熬。

供给侧实现快速应变,实现快速市场反应能力,高效的供应链管理能力,高效的生产能力,离不开管理软件的支持,这将是管理软件发展的未来。我们现在看到的非常多的ERP管理软件已经是前面的标准规模化生产时代的产物了,即使国际软件巨头SAP和ORACLE也存在相同的问题,否则国际零售巨头就不会出现焚烧库存的问题。

新时代需要的新的企业管理模式,新的管理软件的诞生,有兴趣请您参看”管理软件产品线路线图”和”管理软件未来发展之路”。

高效的软件结构设计就是为了解决技术债问题,什么是技术债?

在举个技术债的例子,一个城市发展的初期,大家各自挖自己的管道,似乎城市发展的速度非常快,大家都没有看到未来潜在的问题。最后,城市越来越大,人口越来越多,高楼大厦也越来越多,大家发现路面上到处都是水井盖,一下暴雨街道就变成河流,经常发生管道被挖断的情况,新工程施工之前,没有人能够说清楚城市地下的管网是怎么样的,为了避免事故发生,只能放慢施工的进度。

在软件领域,很多公司面临的情况比这个还要糟糕太多,很多软件项目最终走向死亡。即使伟大的ORACLE这样的公司也会陷入这种技术债的困局,之前看到一篇文章讲,ORACLE的一个工程师为了修改一个BUG,可能会付出几周的工作时间,这应该都算非常好的情况了。

开发软件不是在搬砖,10倍的人力就会有10倍的产出,软件开发讲求的高效协同能力和结构设计能力。优秀的软件是需要国际冠*球队一般的配合的,这种成功不是单个人的成功,是一个团队整体的成功,中国足球不能通过购买几个球星就能成为世界强队的。

宝马汽车设计是一流的,但保证产品做到位的一线工人,还有工厂管理水平,也必须是一流的的,否则就会成为一流的思想策略,三流的执行,最终是三流的产品。

CAD软件,如果我们单纯去学习人家的工艺流程也是没用的,因为即使做出来了,人家占有市场,即使价格和质量接近,也很难实现大的突破,因为在一切相同的情况下,客户为啥要换软件呢?

软件结构设计和高效的开发团队协同,可以大大的降低软件的开发成本,同时可以保证软件的长期持续稳定发展,避免可怕的停滞陷阱的发生。

高质量的产品,低的价格,同时加上新的用户痛点需求,想不实现颠覆都难。这里我想说的是,成本,成本,成本,质量,质量,质量,就和日本车当年击溃美国车一样。

管理软件虽然很普遍,但真正的功能齐全,易使用,易维护,实现数据全流程跟踪,数据智能化分析的软件,这种高质量的管理软件,还没有。

当我们认为一个事务简单的时候,往往可能是我们没有看到它的全部,当初我一直认为电容电阻是太普通不过的电子器件了,但全球的智能手机里面的电容电阻基本上是被日本企业垄断的,世间最高的武功可能就是大家都看不到的那种吧。

其实软件开发当中浪费是惊人的,优秀的软件结构设计会大大的提升软件模块的复用性,从而大大提升生产效率。这种思路一直在软件发展史中演绎着,C语言和操作系统的诞生,就是软件抽象复用的结果,现在程序员使用的很多基础层软件构件和工具也都是复用的结果,这也是为啥现在可以有那么多人参与到编程当中,现在软件的容易不是它真的容易,是因为很多人站在的巨人的肩上却全然不知。

在管理软件层面这种复用难度相对要大很多,和物质世界一样,越是上层的东西越是具有多样性和复杂性,C和H元素为主的有机化合物占据了物质世界的绝大多数复杂度,软件系统层容易实现抽象统一化,而上层抽象会变得越来越难。通过创新的结构设计来解决管理软件上层的多样性和复杂度就是一种创新的思维路线,当然这个过于专业,在这里不再多讲了。

成本在商业化过程中是一个非常重要的因素,RFID已经出现20多年了,但还是没有规模使用,原因就是成本问题。一个RFID标签的成本是几角钱,而条码的成本可能低于1分钱,很多零售商品的利润可能就是几角钱,让商家去放弃利润使用RFID,一定是脑子进水了。

假如,国内汽车企业能够使用一半的成本生产出宝马汽车,宝马公司还会那么高高在上吗?当然汽车领域涉及多很多配件供应链,可能很难实现,但软件行业是一定可以实现的,而且成本可以是几十倍的降低,降低成本提升质量就是一种颠覆创新能力。

其实很多的技术创新不一定是高大上的,谷歌的大数据技术和高可用技术,让廉价的服务器集群替代了IBM的昂贵的大型机,而且计算能力更强,成本更低,这两个技术奠定了互联网行业20年的高速发展,在中美产生了很多互联网巨头。

相反,看似高大上的技术,可能让投资者亏掉了老婆本,自动驾驶和火热的AI就是,AI是有一定的应用价值的,但不能去过度夸大和追捧,真实情况是很多AI公司是缺乏真正的商业使用场景的。

而且AI也将会面临个性化需求的问题,和管理软件一样,而且AI的基础是数据,互联网行业已经具备了数据基础,而且很多传统行业完全不具备。

现阶段的AI很难实现百万分之一的误差率,就代表实现自动驾驶规模应用是短期不现实的,那些投入的资金最终都只能是玩击鼓传花的游戏。谷歌的那两个巨大的商业创新,后面不是什么高大上的数学理论,就是软件的精美的结构设计,这就是软件设计的魔力。

之前和大学同学聊天,他说,我们国家那么多院士,找几个院士,搞搞操作系统不就行了吗,我当时就笑了起来,我本科是材料专业的,大学同学不理解软件行业,也是非常自然的。

国内太多的人把科学研究技术和产业化技术混在一起了,科学研究的往往是单点技术,就是个人擂台赛,而产业化技术是打一场战争,在这里面,后勤,供应链,管理和使用的很多技术,都不一定是最先进的,拼比的是综合指标和综合能力。

操作系统只是一个外部表现,而背后的软件产业生态才是根本,这个生态中系统层软件和工具,又是至关重要的。

这里讲软件的结构设计,就是希望在管理软件方面实现结构设计的基础,这些人才和团队的培养是中国软件必须要经历的,就和大飞机项目的意义就在培养配套人才一样。

软件的结构设计很多是相通的,有了坚实的基础,再实现CAD和操作系统这种通用基础软件的跨越式发展就会相对容易很多,毕竟通用基础软件的马太效应太厉害,没有真正的实力是很难取胜的,只能采取一种农村包围城市的战略。

上面说了一大堆废话,就是想让更多的人重新认识软件的误区,欢迎大家留言讨论~

---------

欢迎大家在文末“留言区”互动交流

长按下图
1
查看完整版本: 中国软件,请不要忽略结构设计