写点什么

软件工程师如何抵御低代码的冲击

  • 2021-10-20
  • 本文字数:3121 字

    阅读完需:约 10 分钟

软件工程师如何抵御低代码的冲击

在我年轻的时候,我的一个好朋友的叔叔被一辆派对巴士撞死了。在他的葬礼上,人们在悲伤之余不禁在想:他怎么不在看见那辆巴士或听见声音的时候躲开呢?同样,当我听说程序员因为低代码软件而丢掉工作的时候,我的脑子里也蹦出了类似的疑问。显然,他们也应该躲开低代码软件这辆派对巴士啊!


我朋友的叔叔躲不开,因为他身处夹点,无处可躲。这篇文章将介绍程序员会遇到的低代码夹点以及如何躲开它们。

场景设定

我们继续用派对巴士这个比喻,并假设你是一家大中型企业的软件开发人员。你和你的团队负责构建、部署和维护公司使用的各种应用程序。有些应用程序是你们自己开发的,有些是现成的,需要定制或集成。


突然间,你发现有很多用户在开发自己的低代码应用程序。你应该担心这个吗?我觉得大可不必。

大型企业里的夹点并不多

从 2010 年开始,随着流程自动化工具 Blue Prism 和 UIPath 的崛起,你或许已经看到自动化给金融和人力资源领域的工作人员带来的戏剧性影响。这是因为这些领域存在很多夹点。当应付账款业务被自动化,从事该业务的工作人员很难再转到其他岗位,因为整个相关的工作岗位都消息了。


但软件工程与应付账款不同。你的工作量是由软件能够给企业带来多少价值决定的。你可以看一下自己目前的工作内容。如果你所在的团队与其他大部分 IT 团队一样,那么应该会有很多开发新应用程序的需求以及给已有应用程序添加新功能的需求。如果说自动化可以让这些需求减少,那等同于说速度更快的汽车可以把你载到火星上。如果低代码软件承担了你的部分工作,你还有其他项目可以做。如果处理得当,你甚至可以把一些棘手的项目丢给低代码。


自动化的引入可能会深化而不是减少软件工程师的工作。——Ralph Aboujaoude Diaz, HFS Research


其次,软件工程的某些方面比较难以自动化,所以低代码派对巴士很难开过这个地形。


例如,非开发人员可以使用低代码工具做出数据表,但如何让这些数据表跟他们要解决的业务问题映射起来,这些工具并不会提供太多帮助。


低代码工具也让非开发人员构建和部署应用程序变得更容易,但这些工具并不会确保相关人员会参与项目的各个部分,以遵循风险和合规规约。


随着低代码在你的企业当中传播开来,作为软件工程师,你花在写代码上的时间变少了,花在工作其他方面的时间变多了,而不是失业。


对于大部分软件工程师来说,随着低代码软件在企业内部的铺开,他们将有更多的机会为公司创造更多的价值,不需要做那些无聊的重复性工作。——Jan Oberhauser,n8n CEO

撇开比喻,我们说的是哪种类型的项目?

低代码软件可以被用在很多种不同的项目中,从流程自动化到帮助用户提升效率的应用程序。在你阅读这篇文章的同时,想象以下的某个场景:


  1. 一款房地产经纪人用来向客户发送合同日期提醒的应用程序;

  2. 一款读取医疗记录并识别没有得到优先治疗的病人的后台应用程序;

  3. 一款通过抽取保单相关字段来构建机器学习模型的应用程序。

“解剖”一个软件项目

有很多书教我们如何构建企业级软件项目(可以阅读 Blair Reeves 的《构建企业级软件》)。为了契合本文的主题,我们把一个软件项目分为四个阶段:


  1. 计划和整体设计;

  2. 构建;

  3. 部署;

  4. 维护。


为了帮助大家更好地理解低代码软件是如何影响大家的工作的,我们来看一下低代码在上述的每一个阶段都具备哪些能力。

1. 计划和整体设计阶段

在这四个阶段当中,这是低代码最后一个可以取代的阶段。计划和整体设计阶段涉及很多事情,从让相关人员参与其中,确保有足够的预算和资源来构建和维护应用程序,到检查是否在构建对的应用程序。例如,假设你在一家房产公司工作,这家公司的客户抱怨要很长时间才能拿到合同文本。解决这个问题有很多种方法,但使用哪种方法取决于对造成这种延迟的原因的了解程度以及掌握了哪些降低延迟的方法。短期来看,低代码工具还无法做出这种分析。

2. 构建阶段

这是低代码软件可以发挥核心作用的阶段。在进行整体设计之后,你的团队或业务用户就可以用低代码软件很快地做出应用程序。在这个阶段,低代码软件的关键优势是它们可以帮助你的用户决定什么才是他们真正需要的。他们不用画草稿和沟通需求细节,而是不断迭代解决方案,直到获得他们想要的东西。


低代码的一个关键点是它抽离了基础设施的复杂性,就连非专业人员也可以构建和部署非常复杂的应用程序。——Rick Lamers, Orchest CEO


这个阶段仍然还有一些地方需要团队的参与——那些低代码解决方案无法处理的棘手问题。例如,如何抽取房产客户联系人的相关数据?如何在没有标准访问接口的情况下访问某些政府的数据集?如何构建可以基于风险对索赔进行分类的机器学习模型?如果说你们不具备这方面的专业知识,一些新兴的公司,如 Managed Functions,可以处理这些问题。

3. 部署阶段

低代码在这个阶段最为狂野。各种低代码平台都提供了不同的部署方式。


  • RPA(机器人流程自动化)公司提供了统一控制中心,负责处理应用程序的部署和维护任务。这解决了部署和维护问题,但代价是你的团队需要使用各种不同的工具来部署和维护低代码应用程序。

  • 微软构建了两种类型的低代码应用程序。一种是带有图形界面,给业务用户用,一种是基于代码的,给开发人员用。开发人员可以使用现成的工作流来部署应用程序。

  • AWS 和谷歌还没有确定该如何解决这个问题。

  • 还有成百上千的低代码应用程序提供了各种不同的解决办法。


结果是,你的团队需要制定指南,告诉人们要如何处理这些事情以及由谁来处理。我之前的系列文章中已经提到过这些。有了指南之后,低代码平台有助于大家遵循指南——但这是 IT 的责任,而不是业务人员的。

4. 维护阶段

这个是最为蹊跷的一个阶段。软件的维护涉及问题修复和功能增强。大部分企业没有设立专门的业务团队来处理这个问题,但他们需要参与,因为是他们自己构建了这些应用程序,他们是唯一知道这些应用程序来龙去脉的人。


随着时间的推移,低代码可以更好地处理这个阶段的问题,但仍然需要软件工程师和业务人员的共同参与。

要避免的夹点

如果你是大中型企业的软件工程师,并且与业务人员沟通顺畅,那么久不需要有太多的担心。你总是能找到为公司创造价值的方法。


但是,低代码仍然会给两个领域的软件工程师造成较大的影响,如果你在这两个领域中,就需要注意一下发展趋势:


  1. 小型公司(或者大公司的小型技术团队);

  2. 应用程序开发公司。


对于小型公司来说,使用低代码软件比自己开发应用程序更说得过去。对于小型公司的 CEO 来说,他或她需要决定的是要雇一个 React 程序员来开发一个新的定制化应用程序(然后期望这个程序员不要离职、退休或死掉)还是使用低代码软件来开发一个。很显然,会选择后一个选项。在这些公司工作的软件工程师会丢掉他们的饭碗,或者转去为公司开发低代码应用程序。


应用程序开发公司的大量岗位将会消失。在这些公司,初级和中级开发人员很少有机会能够像公司直招的工程师那样发挥他们的沟通技能。如果你是一个负责写代码和构建 ETL 管道的初级或中级工程师,看一下你的周围,如果你的周围有很多同事做着同样的事情,那么是时候考虑一下该如何增强你的沟通和面对客户的技能了。

结论

技术变革在缓慢地发生,然后薄积厚发。我们似乎正处在低代码革命的转折点。在接下来的几年,我们将看到软件工程师的工作发生戏剧性的变化。如果你避开了这些夹点,对于你来说就是好日子。


作者简介


Doug Hudgeon 是Managed Functions的首席执行官。这是一家集成公司,专门帮助低代码和 RPA 团队更快地交付项目,通过提供定制组件来处理他们在项目中可能遇到的棘手问题。这些组件可以作为无服务器函数部署到云端(AWS、Azure 或 GCP)。他也是曼宁《商业机器学习》一书的合著者,这本书向用户展示了如何使用 AWS SageMaker 解决现实世界的商业问题。你可以在推特上找到他。


原文链接


https://www.infoq.com/articles/lose-job-low-code

2021-10-20 13:571690

评论 1 条评论

发布
用户头像
也就是说,低代码将取代寻常码农,寻常码农该如何躲开这辆疾行过来的车?
2021-10-25 15:37
回复
没有更多了
发现更多内容

智汇华云 | 混合IT下的云管理套件核心技术解析

华云数据

华云大咖说 | 对象存储在金融行业的应用

华云数据

Apache Pulsar 新增 2 位 PMC 成员:林琳与陈航

Apache Pulsar

腾讯云 Apache Pulsar

4种Golang并发操作中常见的死锁情形

华为云开发者联盟

缓存 协程 并发 死锁 Go 语言

9月日更挑战正式开始啦~

InfoQ写作社区官方

9月日更 热门活动

你知道 ES6~ES12等叫法是怎么来的吗?

编程三昧

JavaScript ecmascript 8月日更

华云大咖说 | 混合IT架构的统一管理——安超云套件产品介绍

华云数据

接口测试进阶接口脚本使用--apipost(预/后执行脚本)

Proud lion

大前端 后端 Postman 开发工具 接口文档

Lua 入门到精通( 02 Lua 基本语法)《做一个脚本高手》

陈皮的JavaLib

lua Linux 运维 8月日更

POM 文件中 licenses 许可证的定义

HoneyMoose

Vue进阶(八十七):输入框事件 blur 与 change 的差异

No Silver Bullet

Vue 9月日更

Nebula Graph 源码解读系列 | Vol.00 序言

NebulaGraph

图数据库 源码解读 分布式图数据库

Zookeeper集群搭建

Mike

VSCode配置JAVA开发环境

IT蜗壳-Tango

Java 9月日更

深入了解现代web浏览器(第三部分)

GKNick

有迹可循之CheckList

编号94530

Code Review 架构设计 checklist

【Flutter 专题】60 图解基本 Dialog 对话框小结

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

【重磅】微信开源PhxSQL:高可用、强一致的MySQL集群

OpenIM

为了让医院把医护还给患者,他们用了这个….

华为云开发者联盟

数字化转型 医院 华为云 devcloud 全流程一体化

String split()方法踩坑

梁小航航

string

Promise.any() 原理解析及使用指南

devpoint

Promise 9月日更

去中心化钱包开发,imtoken钱包开发

webpack5之HMR原理探究

rayyang00

大前端 webpack

Tapdata 在线研讨会:实时数据同步应用场景及实现方案探讨

tapdata

MySQL oracle mongodb

Week2 Homework

Ray_c

#架构实战营

RTD 比率式温度测量传感器设计思路

不脱发的程序猿

学习 嵌入式 电路设计 硬件开发 ADI

智汇华云 | ArSDN之分布式路由及浮动IP简介

华云数据

职场奇袭!3分钟完成一天工作

博文视点Broadview

华为云数据库内核专家为您揭秘:GaussDB(for MySQL)并行查询有多快?

华为云开发者联盟

MySQL 关系型数据库 华为云数据库 GaussDB(for MySQL) 并行查询

接口测试要测试什么?

与风逐梦

软件测试 接口测试

华为云严选上新啦!高效准确的数据同步方案来了

华为云开发者联盟

数据库 华为云 数据同步 英方软件 严选商城

软件工程师如何抵御低代码的冲击_语言 & 开发_Doug Hudgeon_InfoQ精选文章