作者| 李小歪
编辑| 吴怼怼
软件行业的开发效率正在迎来质的提升。
一个明显的趋势是,越来越多的企业开始认识到数字化生产方式给企业带来的创新活力和效率增长,尤其是拥有庞大科技团队的大型企业和互联网公司。
他们在中国企业加速驶入数字化转型深水区的过程里,既是打头阵的先行者,也是最核心的战斗力。
如IDC在《2020数字化转型2.0》报告中所说,无处不在的AI,云与边缘的融合,解决方案的自动化等关键驱动力,很可能成为企业数字化转型中的重要加速器。
而我也在最近观察到这些驱动力在数字时代的轻盈落地,就「解决方案的自动化」这一点而言,国内已经有企业研发出「全自动软件工程平台」,只要输入需求流程图,不需要敲写一行代码平台,就可以自动开发并完成测试,还有自动运维支撑等全链条服务。
从目前的研发深度来看,软件开发行业将迎来巨变。
我们先不去讨论一个全面的自动化,或者零人工有没有可能,从这几年的浪潮来看,从微软等企业布局低代码开始,人人都是开发者的时代已然到来,但低代码的发展还在初期,目前架构也不够成熟,不能满足大型企业复杂多元,以及流程链条化的业务需求。
简单而言,低代码的模块拖拉,还停留在前端界面设计阶段,后端的全自动开发问题,始终没有被放到台前讨论。这才是软件开发效率能否提升的破发点。
而当全自动软件开发成为可能时,后端大刀阔斧的改革才真正被聚光灯照见。
01
一个神奇的流程图
尽管企业端对使用顺滑、流程合理的软件有大量需求,但行业的痛点明显。艾瑞咨询《中国软件开发行业研究报告2020》指出,项目开发成本高、开发周期长、代码质量低、团队管理难几乎是长期困扰需求者的问题。
行业不是没做过努力。这几年,以开发为切入口,涌现了一批布局低代码业务的公司,试图通过减少传统应用程序的代码编写数量,运用图形化界面拖拽,来让更多非IT的业务人员,直接上手参与流程优化。
起点是在2018年。
那一年,OutSystems和Mendix两家独角兽,直接引爆了资本市场对低代码平台的关注。OutSystems随即得到私募股权机构KKR和高盛共同投资的3.6亿美金。而后,德国工业巨头西门子也宣布进入低代码开发平台市场,用6亿欧元买了Mendix。
OutSystems和Mendix还不是棋局上最大的玩家。
2019年,Salesforce和微软正式进入低代码领域,前者依靠低代码开发模式为自身的CRM应用打造PaaS平台,后者设计了低代码开发组件Power Apps,并想要这个组件内嵌到Office办公套件里,让其自身的企业端软件形成一个生态。
我和几个做程序员的朋友曾经亲测过微软的Power Apps。发现他们目前能执行的是一些比较简单的功能,比如销售数据的滚动统计、年复合增长率、订单生成处理。
就拿订单处理来说,大概只能停留在订单自动下达到仓库这一步。如果复杂到订单生成后,这批货物需要从俄罗斯运送至欧洲卢森堡中转,最终抵达美国顾客手里,这中间涉及到不同国家之间最优惠的物流路线和商品税计算,低代码就很难做到了。
说白了,这是企业核心业务自身的复杂性导致的。而低代码虽然解决了一部分开发效率低的问题,但只是局限于前端展现层的拖拽操作,没有针对后端开发进行真正的改革创新。
对企业来说,这种步伐的迈进还远远不够。
而最近释放出来的消息是,国内已经有企业在后端实现了破局。只要输入需求流程图,平台就能自动实现软件的开发、测试和运维。在刚刚结束的发布会上,一套研发多年的「飞算全自动软件工程平台」全球首发。
飞算云智总裁陈定玮在发布会上介绍产品
在发布会现场PK赛上发现,使用该平台做「运动计时」同一项目开发,一个普通的IT工程师只需要输入流程图,不敲一行代码就实现了后端开发。而仅仅28分钟之后,他就完成了3个资深IT工程师近2个小时的开发工作。
从输入流程图的角度来看,飞算全自动软件工程平台也在做可视化。但与市面上同类工具不同的是,飞算全自动软件工程平台,能提供后端微服务开发。
后端微服务的逻辑就要依靠平台组件,即通用的技术功能模块。它们能支持循环、条件判断、函数调用,通过拖拉拽的方式以及参数配置实现等同编写复杂代码的业务逻辑。这就是全自动开发功能实现的基础。
换句话说,实际上你绘制流程图的过程就是微服务(复杂代码业务逻辑)开发的过程。图形化的流程图多清楚,哪里不会画哪里。
这样一来,项目管理上也轻松了许多。你可以减少之前繁复过多的层级沟通,从项目经理到产品经理,部分架构师可以直接完成项目的计划和设计,也不用RD工程师做任务分解。如此操作,沟通效率客观上提高了不少。
自此,只需要通过一个的神奇流程图,就可以在平台上实现全自动开发,项目管理、自动化测试、和自动化运维的全部功能。
02
开发的全周期覆盖
当然,可视化的流程图,还只是飞算全自动软件工程平台的创新表现之一。从开发到测试,再到后期运维,平台实际上形成了从前期到后期的高度统筹,这种全周期覆盖的管理能力。
一个常见的误区是,行业的开发提升大多注重功能的新增和优化,而忽视了从产品设计开发、测试到交付、运营等全生命周期的质化提升。
而全周期、全链条的能力之所以重要,是因为开发一套互联网技术的微服务架构体系,本来就是一环套一环,哪个环节都不能出错,不然就算代码写出来了,这套服务软件最后也没法用。
这主要是在于软件工程行业多依靠「人治」,程序员个人或团队在其中发挥的作用远远超过了系统、代码等规定和流程的标准化作用机制。
举例而言,传统的代码编写工作还是采用二进制的文本逻辑。一不小心,如果少了个逗号或者逗号前面出现了空格,又或者全角符和半角符没有统一,那整段代码在测试时可能全崩了。每个程序员写代码的习惯和逻辑也不尽相同,负责测试的工程师可能要在成千上万页的代码里找出这个小错误,耗时耗力可想而知。
但如果是在飞算全自动软件工程平台上,这种失误就会很大程度上地避免。首先自动生成的后端开发会比人工代码更加精准,遵循代码规范,可读性、可维护性也较高。其次,平台的自动化测试功能通过测试用例跟踪,可进行接口测试、性能测试等来让这套代码运行起来时尽可能稳定顺畅。
而在自动化运维功能模块里,平台的自带服务,注册中心,分布式链路追踪,服务发现,服务治理等环节,也可以保障新代码push之后的顺利运行。
自动化项目管理、自动化开发、自动化的测试和运维,这四项核心功能的实现,实际上标志着行业从「人治」到「法治」的阶段跃升。
飞算云智总裁陈定玮认为,尽管软件行业的发展积累大量可行的实操方式和可行制度,但人的个性化导致了制度落地执行时差异很大。一旦出现一个有效的工具能将这些管理制度自动落实到位,由于人的个性化导致的一系列问题如招聘难、培养难、留人难、技术沉淀难等,就能迎刃而解 。
目前,飞算全自动软件工程平台在“项目管理”、“自动化开发”、“自动化测试”、“质量管理”、“自动化运维”等核心板块,涉及150多个流程节点的问题上,都能够形成自动化和有效开发,行业痛点的化解也因此水到渠成。
当然,标准化、自动化的开发系统也并非完全杜绝了个性化、创造力的可能。比如,关键岗位的招聘、留人难,行业的技术沉淀,就是之前的一个遗留问题。
飞算全自动软件工程平台的解决方式是,引入了众创中心,像社区一样让工程师们集聚在一起。IT狂人们在众创中心根据自身经验提供封装组件,大家的经验一起在这个平台上沉淀,不仅能够让使用者快速开发和使用,也能集众人智慧,让开发出的软件形成更稳定的质量和安全体系。
03
行业效能的天际飞跃
我们回头来看飞算全自动软件工程平台的价值,为什么从发布之后就引来了巨大关注。
国际欧亚科学院院士、国际欧亚科学院中国中心副主席张景安院士期待,这种中国原创、拥有自主知识产权的平台的出现,可以为国民经济、制造业、产业转型升级、智能制造和人工智能的高质量发展作出新的贡献。
而中国工程院院士倪光南也在视频中指出,「如果通过实践验证,这个平台对软件行业的发展将很有意义」。
从信息技术研究和顾问公司Gartner,2019年向来自全球89个国家范围内的3000多名首席信息官的调查来看,通常企业内的IT需求一定会大于IT人力的负荷量。当时,这些首席信息官就曾预测,在数字化浪潮里,2019年全球IT预算将增长2.9%,而亚太地区的增长,有可能达到3.5%。
随着企业数字化转型的不断深化,以及消费者对数字化的需求,这个市场增长还在不断扩大。但企业的成本的确是在逐年走高。
但飞算全自动软件工程平台无论是项目成本还是开发效率,代码质量还是团队管理和稳定性,都让行业效能得到了飞跃天际线的提升。
我们来举个例子。
如果有个科技公司,想要开发一套互联网技术的微服务架构体系,包括前端系统体系、业务系统体系和大数据体系等,且需版本高频率迭代。需要多大的人力和物力呢?
首先,IT团队要做需求分析,系统架构设计,微服务开发、系统测试和运维保障系统。其中光是微服务开发就包括:前端界面开发、技术服务支撑系统开发、业务系统开发、人工智能分析系统开发、大数据系统开发。如果这时团队还要兼顾对外合作项目开发,涉及项目超30个,业务量需要容纳的用户超过千万,这个工作量就更大了。
在这种配置要求下,「传统开发模式」和「飞算全自动软件工程平台」两者人力成本的相关费用对比是很鲜明的。
如果使用后者,每年可节省75%以上的研发费用。尤其在人力成本方面,一个平台ID人员可替代传统开发模式下包含项目经理,系统架构师,软件设计师,软件工程师,测试工程师,运维工程师等六个岗位人员的全部工作,而人力成本仅占后者的30%。
这是人员配置上的项目成本优势,开发效率的提升我们之前也提过了,至于团队和系统稳定性,当操作者降低软件工程对技术的依赖时,技术选型、技术绑架、技术趟坑等问题也随之减少;而标准化、减少人工输入的环节也提高了代码质量。
之前我看过一本书叫《人月神话》,作者是Fred Brooks。按照他的划分,软件开发的复杂度大概有两种,本质复杂度(Essential complexity )和偶然复杂度(Accidental complexity)。前者有点儿类似于企业的这个业务需求,本身的复杂程度,和工程师用什么样的工具写代码、经验是否丰富、架构好不好都没什么关系。而后者就是实际开发过程中引入的复杂度,就是技术细节的复杂度。
业务的复杂度是企业决定的,给开发者和企业方提供服务的平台本身是改变不了的,能动的,就是技术细节复杂度的降低。这就好比,烹饪一份食材特殊、流程复杂、技术高超的美食,平台方要把菜挑选好了,都洗好切好,火候也掌握好,每一道工序的时间都明确写好,厨师自己照着做就可以。
平台承担的事情越多,在平台上开发软件的工程师就越轻松,这和做一个快乐的厨师,没什么不同。当然,也不是说这个工程师谁都可以做,每个人承担的角色不同,发挥的作用机制自然也不一样。
目前,我国软件和信息技术服务业规模以上企业在2019年就超过了4万家,累计完成软件业务收入71768亿元,同比增长15.9%。在中国企业从信息化时代全面转向数字化的阶段里,软件开发作为企业数字化转型的重要环节,很有可能成为中坚力量。
一个美好的想象是,我希望未来企业家也不用再高喊996的口号,码农们也不用彻夜敲代码,当机器代替人类创造出更多价值时,基于科技和人文之上的,就是人类不断发掘需求痛点,并解决问题的创造思维和无穷想象了。