低代码开发”
近几年,不知道谁又捣鼓出一个“低代码开发”的新名词,开始充斥IT圈,满大街都是。一时间,谁家要是没有一个低代码平台,谁家的应用软件如果不是基于低代码平台开发的都不好意思出门了。国内各应用软件开发商,不管是从事什么行业开发的,不管规模大小,纷纷第一时间推出功能强大、包治百病、宇宙无敌的低代码平台;各路IT精英和咨询顾问也都在和客户演示、介绍自家的低代码平台如何如何强大,口沫飞溅、激情飞扬。
这个情景是不是似曾相识?是的,从MVC开发模式→用户自定义平台→系统柔性配置平台→企业服务总线→构件化开发平台→微服务架构,无一不是如此。不可否认,软件开发技术是在不断发展进步的,开发模式和技术架构也在不断更新迭代,但IT从业人员特别是行业应用软件开发商千万要记住一点:请把用户需求放在第一位,技术只是实现用户需求的工具,不能本末倒置。
20年前,笔者还是一名略显青涩的程序猿,以自己掌握了多少门开发语言、学会了多少种技术架构为荣。有一次,在和华东某政府部门信息中心主任介绍技术方案时讲HIGH了,一时间J2EE、BMS、MVC、EJB等名词满天飞,还拼命推销自己开发的组件库、用户权限平台、工作流平台、用户自定义平台等应用基础平台产品。主任实在听不下去了,就回了一句笔者到现在依然感觉如雷贯耳的金玉良言:“别和我扯什么技术平台,那是你们公司自己的事情!我需要的是你们按照我们的需求把软件定制开发出来,交付给我们!”这就是这篇文章标题的来历。
02
“软件工厂”模型
关于低代码开发,作为老司机的笔者绝对是有发言权的。前面提到20年前笔者就已经致力于软件复用方面的研究和应用基础平台的研发,10年前更是提出了“软件工厂”模型,虽然那时候还没有“低代码开发”这个叫法,但本质上是一回事,都是为了尽可能的提升软件复用率,快速应对客户需求的变化,避免低效率的重复开发。接下去,我们就一起来看看笔者10年前提出的“软件工厂”模型,是不是和现在的“低代码开发”异曲同工。
从整体技术架构的层面看,笔者设计的“政务应用软件工厂”如下图所示:
那为什么这个架构图可以称之为“政务应用软件工厂”呢?因为当时笔者的设计和研发目标是建立一个类似于工业化工厂运行模式的软件产品开发架构,进而从根本上改变公司原来低效率的项目二次开发模式。
我们可以将上图比喻为一个汽车制造厂:
“软件工厂”各组成部分和汽车制造厂的对应关系分别描述如下:
辅助定制平台
相当于软件工厂的“加工流水线”,包括一系列应用自定义功能,可以实现各类通用应用功能的定义和配置;
应用基础支撑软件
相当于软件工厂的“管线和控制系统”,包括机构、人员、权限、信息分类等一系列模块式的应用基础支撑软件;
技术和功能组件
相当于软件工厂的“零部件”,从技术层面上实现了某些共性的软件功能,通过组装、搭配,可以满足不同客户的个性化需要,形成不同的解决方案;
工具软件
相当于软件工厂的“各类专业工具”,包括一系列专业工具软件;
业务构件
相当于软件工厂的“成品仓库”,其中包含经过对各类政务业务的归纳、总结、提炼之后形成的业务功能构件;
系统配置平台
相当于软件工厂的“产品装配线”,将技术和功能组件、工具软件、业务构件等装配成初步符合用户需求的软件系统;
应用软件
相当于软件工厂交付的“产品”,通过个性化的二次开发和安装调试后,结合不同的解决方案,满足不同领域最终客户的个性化需要;
安全保障体系、实施保障体系和标准规范体系
相当于软件工厂的“作业指导书、调度计划和工艺流程”,也是保证工厂出品质量,提高工厂生产效率的关键因素之一。
整个“软件工厂”模型是一个相对比较庞大的体系,需要巨大的投入,笔者曾经带领近50名研发人员历经三年左右时间着力去打造,希望能够全面优化“加工流水线”和“产品装配线”,提升“管控系统”的有效性,更新“零部件”,升级“各类工具”,让业务构件充满“成品仓库”,在此基础上,科学合理地设计制定“工艺操作计划、流程和指导书”,最终实现交付产品性能和用户满意度的进一步提高。
理想很丰满,现实很骨感。由于“软件工厂”的构建牵涉到整个公司开发模式的彻底改变,二次开发工作量看似降低了,但研发部门、项目部门和实施部门的沟通协调成本反而增加了,工作效率并没有得到质的提升,交付过程中部门之间的扯皮现象严重,而且严重挫伤了开发人员的主观能动性,和巨大的投入相比取得的实际效果非常有限,最终只能放弃。
03
“无代码开发”
再回到“低代码开发”的主题上,笔者想说的不是“低代码开发”没有用,笔者自己在“软件工厂”开发模式实践的失败经历也不能代表其他低代码开发模式都会失败。笔者想说的是“低代码开发”是软件公司自己的事情,和客户单位没有什么关系,客户关心的是自己的需求有没有得到满足,而不是软件公司采用了什么技术路线或者开发模式。关于这一点,应用软件开发商必须得有清醒的认识。
和“低代码开发”相关的还有一个比较离谱的概念,就是“无代码开发”。
说它离谱,不是说技术上完全不可行,这方面问题我们不作展开讨论,如果哪家公司真的能够实现“无代码开发”,让广大码农失业,笔者只能恭喜他们,去拿个图灵奖应该是妥妥的。笔者想说的是公司内部无论怎么开发别人都管不到,但不要想着去说服客户来使用你的“无代码平台”,否则就真的有点离谱了。
客户花了100万,本来是想着请人来帮他们开发系统实现需求的,结果你说卖给你们一个工具自己去实现就可以了,想怎么实现就怎么实现。你都还没搞清楚客户是什么需求,就说都能满足,这明显是严重不尊重客户、藐视客户需求的行为啊!
这让我想起了选美的场景,参加选美的各路美女都在拼命展示自己的美貌和才艺,结果有一个来自大西洲的美女开始推销她们家的丰胸产品。对不起,评委关心的是你的美貌和才艺(软件功能和需求满足度),而不是你使用了那款丰胸产品(无代码平台)。
数字罗塞塔计划
公众号致力于作为中立的第三方客观公正地表达自己对于档案信息化领域的看法和观点。真理越辩越明,我们也衷心欢迎越来越多的人投身到档案数字资源管理和保存这一领域的研究中来并发表真知灼见,共同为人类文明的传承而努力奋斗!