低代码开发是新瓶装老酒吗?
编辑导语:近几年来,低代码开发的概念也十分火热,某种程度上,低代码开发可以提升企业的开发效率,推动企业的数字化转型,而这也是低代码开发火起来的原因之一。本篇文章里,作者就对低代码开发的发展做了全面解读,一起来看看吧。
2021年,“低代码”接力“中台”燃起了熊熊之火,引发众多业内人士论战。其中有两种极端的观念,一种是“低端炒作”、“无用玩具”、“行业毒瘤”,另外一种是“颠覆行业”、“取代程序员”。
不管怎么说,低代码现在已经被推向时代变革的大潮,成了我们数字化转型过程中张口闭口的热词,它火热的背后的动因是什么呢?它是新瓶装旧酒吗?它到底是行业毒瘤还是颠覆革命?
让我们先来看看百度百科对低代码的定义:
低代码(Low Code)是一种可视化的应用开发方法,用较少的代码、以较快的速度来交付应用程序,将程序员不想开发的代码做到自动化,称之为低代码。低代码是一组数字技术工具平台,基于图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态、中台服务。通过少量代码或不用代码实现数字化转型中的场景应用创新。
——百度百科
一、低代码的发展历程
其实低代码不是一个新概念,早在上世纪80年代,它的名字是“可视化编程”,指的是用很少或几乎不写代码快速开发应用,并快速配置和部署的一种技术和工具。
推动现代低代码开发模式发展的我认为是SaaS应用的发展,具有标志意义的就是2007年Salesforce面向开发者推出的Force.com应用开发平台,第一次将低代码应用到SaaS应用中(下文中会分析SaaS推送低代码开发发展的原因)。
2014年,研究咨询机构Forrester首次提出了“低代码/零代码”的概念,随后在2018年Gartner又提出了aPaaS,和当下的低代码/零代码概念更为接近。从2018年开始,低代码相关的厂商和应用如雨后春笋一般爆发,2020年继中台概念后被称为低代码元年。
但我们从上面的发展历程图上也能明显的看出,其实从2014年(甚至追溯到2007年)到2018年这个时期,低代码发展好像进入了一个空白期,为什么会出现这样的情况呢?其实我们从国内的SaaS应用的发展也可以窥见端倪。
Salesforce开启了SaaS模式之后,21世纪初SaaS模式还处市场探索的萌芽时期,直到2014-2018年才进入了快速发展期。SaaS爆发的初期,更多还是以标准化产品为主,服务的都是小微型客户。所以这一时期SaaS对低代码开发还没有推动的动力。
二、推进低代码发展的几个因素 1. 从SaaS应用的能力进化看低代码发展
在没有SaaS模式之前,传统的信息化都是通过购买或者开发部署独立的私有化的信息产品为主,在这种传统模式下,就造成了几个问题:
对客户来说,软件的成本太高,少则几万,动辄上百万、上千万。而且成本高也体现在个性化需求开发的时候,而且一旦定制,就很难再升级。 对厂商来说,落地实施的成本很高,产品版本分化严重,后期维护成本很高,服务能力降低。新的功能研发上线,无法对老客户实行二次销售,客户体验差。 所以,对于很多中小型企业来说,因为SaaS产品的出现,也解决了初期软件投入成本过高问题,同时不需要招聘太多专业的信息技术人员维护,SaaS模式逐步被接受。
但是SaaS的发展必然也面临着客户越来越多导致需求个性化的问题,SaaS的复杂性越来越大,发展的早期如何解决?
拒绝个性化,只做标准服务。 但这种方式可以应付小微客户,但是一旦有一定规模的客户,不可避免的存在个性化定制,拒绝个性化,就是拒绝机会,无疑自找思路。 在产品上增加定制开发功能。 当你无法把各个客户的需求进行统一抽象,创建个性化功能模块就是应对个性化开发之道。但是这种做法让你的产品和代码变成了一个 大泥球 ,给未来的开发维护带来巨大的灾难。 为每个客户创建分支版本。 这个做法和传统的软件交付模式其实没什么差别,只是接管了本来属于甲方的运维,当分化的版本越来越多,版本维护和运维将是高昂的成本。 以上的做法其实是把传统软件开发的模式引入到SaaS应用中,实际上依然没有从本质上,底层上解决问题。Salesforce其实给我们指明了道路——SaaS应用的PaaS化。通过提供具备开发能力的PaaS平台,为SaaS应用提供定制开发能力。为了降低在PaaS平台上开发的难度和工作量,于是低代码开发平台也就应运而生。
2. 从企业数字化转型需求看低代码发展 数字经济下产品更新换代速度加快,市场需求更迭同步提速,企业需要不断提升软件开发效率和市场响应速度的产品。但传统的开发模式对企业数字化转型提出巨大的挑战,导致出现一些问题和痛点,具体分析如下:
从满足需求角度,资源缺口导致长尾需求无法满足; 从降低成本角度,软件成本高导致全面数字化推动力不足; 从改善架构角度,传统系统架构可扩展性及集成度不高; 从孵化创新角度,重复建设、标准不统一、业务协同差导致对新业务的支持度不高。 而低代码开发像拖拉拽的可视化开发方式,乐高式的应用搭建,共生的一体化平台等特点能在一定程度上解决企业数字化转型的这些需求和痛点。
3. 从技术和企业数智化演进看低代码发展
从企业数智化的发展经历了几个阶段(如上图),每个阶段都伴随着巨大的信息技术的变革,在前两个阶段,开发工具的推动起到了很大的作用,开发语言的高级特性及开发工具的能力提升,让工程师的开发效率获得提高。而到了互联网化的阶段,云计算、虚拟化、容器化带动了云端技术的巨大发展,特别是云原生技术的提出和发展,让基于云端的开发发生了质的变化。
软件开发技术发展的核心是让技术实现更简单这个核心原则始终没有改变,而低代码开发的目的也正好符合这个原则,所以低代码开发模式得到推崇和发展也是情理之中。
三、低代码产品的形态 现在市场上低代码的产品琳琅满目,低代码厂商也是百花齐放,按搭建应用时是否需要代码可以将广义低代码产品分为狭义 低代码和零代码 两种,二者均可通过可视化界面,对封装好的代码模块进行拖拉拽来完成应用搭建。
其中低代码主要服务关注业务逻辑的开发部门,需要少量代码进行模块衔接或功能 拓展;零代码更强调低代码的低门槛,仅需理顺业务逻辑即可快速搭建流程管理、表单等轻量级应用。
整体上看,低代码产品的函数与系统解耦,在少量代码的支持下应用场景较广,而零代码轻量便捷,搭建速度快,赋予业务部门更多自主权。零代码使用门槛低,但支持的场景有限,而低代码可搭建复杂度较高的应用,这也是我们主要深入了解低代码的原因。
按照低代码产品的底层驱动技术可划分为 表单驱动、逻辑驱动和数据驱动 三类。
表单驱动直接关注业务场景,以数据表为 核心、以工作流为媒介构建应用。 模型驱动从业务场景中抽象出模型构建页面和业务流,其应用场景更加复杂且广泛。 数据驱动在模型驱动的基础上深度挖掘数据价值,将从互联网及其他软件收集来的数据进行汇总和整理,运用新技术和算法训练拟合成自动化决策模型。 整体上看,低代码正从基础表单向数据驱动递进,其功能性逐渐提升,覆盖更多业务场景。
从使用者需求的角度来看,低/无代码平台可划分为四大类型: 场景应用型 、 产品研发型 、 平台生态型 和 技术赋能型 。
根据海比研究院调研数据,目前市场上共有低/无代码厂商74家。从各类型平台商的数量分布来看,场景应用型数量最多占比达59.5%,说明终端应用的客户是低代码的只要使用者,其次是产品研发型、平台生态型和技术赋能型。
从各类型平台商的年均收入规模来看,技术赋能型收入平均年收入最高,其次是平台生态型,再次是产品研发型和场景应用型。综合当前平台生态型和技术赋能型数量不多但盈利能力较强,预计是未来厂商重点发展方向。
四、低代码的能力体现 从行业这么多低代码产品的功能来看,低代码开发平台的核心能力包括:
易用性。 在不写代码的情况下能够完成的功能多寡是决定平台是否容易被接受的重要指标; 用户体验。 该指标能够决定最终用户对开发者的好评程度; 数据建模和管理。 应用复杂度越高,系统集成的要求越高,这个能力就越关键; 流程和业务逻辑。 决定了低代码支持的应用的宽度范围; 接口和集成。 低代码不要为企业再造一个个数据孤岛; 软件开发周期支持。 除了开发和交付,还需要包含设计、反馈、测试、运维等多个环节; 服务质量。 所开发应用的故障率、稳定性,以及技术支持能力; 安全和合规。 需要在部署方式、系统安全机制和权限管理和控制功能等层面提供全方位支持; 平台生态。 独木不成林,需要引入更多开发者,提供更丰富的解决方案,更好的赋能应用开发者。
和传统的软件开发的模式相比,低代码开发的流程极大的缩减,需要的岗位和人员也极大的减少,这就带来了两大优势:
1)提高开发效率和降低成本
图形化开发,大幅降低工作量; 有效规避代码本身的bug问题; 开发完成一键部署多个环境; 降低对开发者的要求,降低成本。 2)企业数字化转型的有力工具
降低应用开发的准入门槛; 有助于打破信息系统的孤岛; 加速各种能力服务化的进程。 五、认识低代码的价值,也看清它的短板 任何新鲜事物的发展和火热,我们都要先积极的拥抱它,只要它能帮助我们解决一定的问题,那么它就是有价值的。所以梳理一下低代码开发的一些价值体现:
快速。 快速开发、快速反馈、快速调整,沟通过程中即可所见即所得开发; 低成本。 降低技术门槛,不需要专业技术人才就可以开发; 个性化支持。 通过灵活的组件、模块来解决各种个性化需求,而不需要去修改代码; 易维护。 采用组件化、在线组装的方式,代码侵入少,更容易调整; 保护隐私。 减轻对外部厂商的依赖,保护企业信息的隐私; 贴近业务价值。 专注于业务功能开发,甚至业务人员可以深度参与。 虽然低代码开发有很高的价值,但低代码并不是万能的,它也有自己不擅长的领域,比如:
算法和数据结构复杂的应用。 低代码开发此类应用的成本不亚于直接写代码,甚至更高,无法发挥它的优势; 对界面要求特别高的应用。 低代码平台可不擅长做酷炫的界面,所以游戏、动画相关的应用并不适合; 超高流量互联网的应用。 低代码开发中的性能大部分损失在配置解析,脚本解析上,所以对于性能有着非常高的追求的互联网应用并不适合; 分析和智能化的应用。 分析有BI工具,智能化应用更侧重底层数据计算,这类的应用应该交给特定的专有工具实现; 系统软件、科学计算等应用。 对于功能扩展性需求很弱,没有可复用可抽象性,且底层计算很多,用低代码开发并不见得有优势,甚至不可行。 所以, 低代码不是银弹 ,不要妄想通过引入低代码来解决你所有问题,它能解决的问题范围有限,用对地方真正有效解决问题才是正道。它也 不是程序员终结者 ,它只是数字化转型应用开发中的一个补充,应用开发的主战场还是coding,coding,coding。它淘汰的只是会CRUD的伪程序员。 写好代码解决问题才是我们立足的根本。
六、我为什么要搞低代码? 其实,十年前我在做工作流引擎和系统的时候,我认为就已经在从事低代码相关能力的开发和实践了,虽然那时候前后端的技术体系并不是特别的完善,而且自己并不擅长前端页面的构建,但是也基本上实现了拖拉拽的(虽然相比现在的界面过于简陋)自定义的流程模型,可视化的自定义表单设计,以及基本的权限控制和脚本植入。
前年我又在团队中提出了低代码能力的建设,设计了以表单驱动为核心的低代码开发模块作为我们技术平台和中台能力的一种补充。当时出于对低代码的几点认知:
1)要解决什么问题?
① 随访产品中自定义随访的表单。 不同的临床领域、不同的客户,他的随访表单是不一样的,这个是很难在研发时固化到系统中的。
② 专病健康档案的设计和展示。 不同的病种,不同的客户,在不同的应用下对于健康档案的数据结构,展示的属性是不一样的,需要实现其灵活的扩展。
从应用场景上来说,主要是解决产品落地实施项目的时候解决个性化需求,以及产品使用过程中不断扩展的需求。
2)使用的对象是谁?
首先,研发人员不是我设计低代码开发模块的目标用户群体,因为对于很多研发人员来说,写原生代码才能真正的体现自己的价值,另外即使需要快速开发,也会优先使用代码生成工具生成原生代码,并在此基础上进行逻辑编写。
那么低代码开发面对的目标人群到底是谁呢?我们的定义是 项目实施工程师,部分产品经理或者医学支持人员 。而零代码的功能可以开放给客户使用,以帮助他们自助解决部分个性化问题。
低代码开发虽然不是一个新鲜的概念,但是由于科技的发展,企业发展诉求的变化,特别在企业数字化转型的大趋势面前,它脱胎换骨,有了更加高级的形态,这是时代的产物,这是趋势的结果。
就像现在的特斯拉相比于上个世纪初的奔驰,今天的智能手机相比于十几年前的诺基亚功能手机,同样都是汽车、手机,但是它们所承载的作用,以及它们对于我们的意义都发生了巨大的变化。所以,不论是新瓶老酒还是老瓶新酒,只要能解决我们当前的问题,能够体现它的价值,喝起来都是一样的甘醇。
#专栏作家# 菜根老谭,微信公众号:CGLT_TAN,人人都是产品经理专栏作家。经历程序员、技术Leader、产品经理、研发Leader等多种岗位。现负责某科技公司整体产品研发,擅长企业IT架构及互联网产品架构。
本文原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
给作者打赏,鼓励TA抓紧创作!
{{{path> 赞赏