軟件工程師如何抵御低代碼的沖擊(底層軟件工程師)
在我年輕的時(shí)候,我的一個(gè)好朋友的叔叔被一輛派對(duì)巴士撞死了。在他的葬禮上,人們?cè)诒瘋嗖唤谙耄核趺床辉诳匆?jiàn)那輛巴士或聽(tīng)見(jiàn)聲音的時(shí)候躲開(kāi)呢?同樣,當(dāng)我聽(tīng)說(shuō)程序員因?yàn)榈痛a軟件而丟掉工作的時(shí)候,我的腦子里也蹦出了類(lèi)似的疑問(wèn)。顯然,他們也應(yīng)該躲開(kāi)低代碼軟件這輛派對(duì)巴士啊!
我朋友的叔叔躲不開(kāi),因?yàn)樗硖帄A點(diǎn),無(wú)處可躲。這篇文章將介紹程序員會(huì)遇到的低代碼夾點(diǎn)以及如何躲開(kāi)它們。
場(chǎng)景設(shè)定
我們繼續(xù)用派對(duì)巴士這個(gè)比喻,并假設(shè)你是一家大中型企業(yè)的軟件開(kāi)發(fā)人員。你和你的團(tuán)隊(duì)負(fù)責(zé)構(gòu)建、部署和維護(hù)公司使用的各種應(yīng)用程序。有些應(yīng)用程序是你們自己開(kāi)發(fā)的,有些是現(xiàn)成的,需要定制或集成。
突然間,你發(fā)現(xiàn)有很多用戶(hù)在開(kāi)發(fā)自己的低代碼應(yīng)用程序。你應(yīng)該擔(dān)心這個(gè)嗎?我覺(jué)得大可不必。
大型企業(yè)里的夾點(diǎn)并不多
從 2010 年開(kāi)始,隨著流程自動(dòng)化工具 Blue Prism 和 UIPath 的崛起,你或許已經(jīng)看到自動(dòng)化給金融和人力資源領(lǐng)域的工作人員帶來(lái)的戲劇性影響。這是因?yàn)檫@些領(lǐng)域存在很多夾點(diǎn)。當(dāng)應(yīng)付賬款業(yè)務(wù)被自動(dòng)化,從事該業(yè)務(wù)的工作人員很難再轉(zhuǎn)到其他崗位,因?yàn)檎麄€(gè)相關(guān)的工作崗位都消息了。
但軟件工程與應(yīng)付賬款不同。你的工作量是由軟件能夠給企業(yè)帶來(lái)多少價(jià)值決定的。你可以看一下自己目前的工作內(nèi)容。如果你所在的團(tuán)隊(duì)與其他大部分 IT 團(tuán)隊(duì)一樣,那么應(yīng)該會(huì)有很多開(kāi)發(fā)新應(yīng)用程序的需求以及給已有應(yīng)用程序添加新功能的需求。如果說(shuō)自動(dòng)化可以讓這些需求減少,那等同于說(shuō)速度更快的汽車(chē)可以把你載到火星上。如果低代碼軟件承擔(dān)了你的部分工作,你還有其他項(xiàng)目可以做。如果處理得當(dāng),你甚至可以把一些棘手的項(xiàng)目丟給低代碼。
自動(dòng)化的引入可能會(huì)深化而不是減少軟件工程師的工作。——Ralph Aboujaoude Diaz, HFS Research
其次,軟件工程的某些方面比較難以自動(dòng)化,所以低代碼派對(duì)巴士很難開(kāi)過(guò)這個(gè)地形。
例如,非開(kāi)發(fā)人員可以使用低代碼工具做出數(shù)據(jù)表,但如何讓這些數(shù)據(jù)表跟他們要解決的業(yè)務(wù)問(wèn)題映射起來(lái),這些工具并不會(huì)提供太多幫助。
低代碼工具也讓非開(kāi)發(fā)人員構(gòu)建和部署應(yīng)用程序變得更容易,但這些工具并不會(huì)確保相關(guān)人員會(huì)參與項(xiàng)目的各個(gè)部分,以遵循風(fēng)險(xiǎn)和合規(guī)規(guī)約。
隨著低代碼在你的企業(yè)當(dāng)中傳播開(kāi)來(lái),作為軟件工程師,你花在寫(xiě)代碼上的時(shí)間變少了,花在工作其他方面的時(shí)間變多了,而不是失業(yè)。
對(duì)于大部分軟件工程師來(lái)說(shuō),隨著低代碼軟件在企業(yè)內(nèi)部的鋪開(kāi),他們將有更多的機(jī)會(huì)為公司創(chuàng)造更多的價(jià)值,不需要做那些無(wú)聊的重復(fù)性工作?!狫an Oberhauser,n8n CEO
撇開(kāi)比喻,我們說(shuō)的是哪種類(lèi)型的項(xiàng)目?
低代碼軟件可以被用在很多種不同的項(xiàng)目中,從流程自動(dòng)化到幫助用戶(hù)提升效率的應(yīng)用程序。在你閱讀這篇文章的同時(shí),想象以下的某個(gè)場(chǎng)景:
- 一款房地產(chǎn)經(jīng)紀(jì)人用來(lái)向客戶(hù)發(fā)送合同日期提醒的應(yīng)用程序;
- 一款讀取醫(yī)療記錄并識(shí)別沒(méi)有得到優(yōu)先治療的病人的后臺(tái)應(yīng)用程序;
- 一款通過(guò)抽取保單相關(guān)字段來(lái)構(gòu)建機(jī)器學(xué)習(xí)模型的應(yīng)用程序。
“解剖”一個(gè)軟件項(xiàng)目
有很多書(shū)教我們?nèi)绾螛?gòu)建企業(yè)級(jí)軟件項(xiàng)目(可以閱讀 Blair Reeves 的《構(gòu)建企業(yè)級(jí)軟件》)。為了契合本文的主題,我們把一個(gè)軟件項(xiàng)目分為四個(gè)階段:
- 計(jì)劃和整體設(shè)計(jì);
- 構(gòu)建;
- 部署;
- 維護(hù)。
為了幫助大家更好地理解低代碼軟件是如何影響大家的工作的,我們來(lái)看一下低代碼在上述的每一個(gè)階段都具備哪些能力。
1. 計(jì)劃和整體設(shè)計(jì)階段
在這四個(gè)階段當(dāng)中,這是低代碼最后一個(gè)可以取代的階段。計(jì)劃和整體設(shè)計(jì)階段涉及很多事情,從讓相關(guān)人員參與其中,確保有足夠的預(yù)算和資源來(lái)構(gòu)建和維護(hù)應(yīng)用程序,到檢查是否在構(gòu)建對(duì)的應(yīng)用程序。例如,假設(shè)你在一家房產(chǎn)公司工作,這家公司的客戶(hù)抱怨要很長(zhǎng)時(shí)間才能拿到合同文本。解決這個(gè)問(wèn)題有很多種方法,但使用哪種方法取決于對(duì)造成這種延遲的原因的了解程度以及掌握了哪些降低延遲的方法。短期來(lái)看,低代碼工具還無(wú)法做出這種分析。
2. 構(gòu)建階段
這是低代碼軟件可以發(fā)揮核心作用的階段。在進(jìn)行整體設(shè)計(jì)之后,你的團(tuán)隊(duì)或業(yè)務(wù)用戶(hù)就可以用低代碼軟件很快地做出應(yīng)用程序。在這個(gè)階段,低代碼軟件的關(guān)鍵優(yōu)勢(shì)是它們可以幫助你的用戶(hù)決定什么才是他們真正需要的。他們不用畫(huà)草稿和溝通需求細(xì)節(jié),而是不斷迭代解決方案,直到獲得他們想要的東西。
低代碼的一個(gè)關(guān)鍵點(diǎn)是它抽離了基礎(chǔ)設(shè)施的復(fù)雜性,就連非專(zhuān)業(yè)人員也可以構(gòu)建和部署非常復(fù)雜的應(yīng)用程序?!猂ick Lamers, Orchest CEO
這個(gè)階段仍然還有一些地方需要團(tuán)隊(duì)的參與——那些低代碼解決方案無(wú)法處理的棘手問(wèn)題。例如,如何抽取房產(chǎn)客戶(hù)聯(lián)系人的相關(guān)數(shù)據(jù)?如何在沒(méi)有標(biāo)準(zhǔn)訪問(wèn)接口的情況下訪問(wèn)某些政府的數(shù)據(jù)集?如何構(gòu)建可以基于風(fēng)險(xiǎn)對(duì)索賠進(jìn)行分類(lèi)的機(jī)器學(xué)習(xí)模型?如果說(shuō)你們不具備這方面的專(zhuān)業(yè)知識(shí),一些新興的公司,如 Managed Functions,可以處理這些問(wèn)題。
3. 部署階段
低代碼在這個(gè)階段最為狂野。各種低代碼平臺(tái)都提供了不同的部署方式。
- RPA(機(jī)器人流程自動(dòng)化)公司提供了統(tǒng)一控制中心,負(fù)責(zé)處理應(yīng)用程序的部署和維護(hù)任務(wù)。這解決了部署和維護(hù)問(wèn)題,但代價(jià)是你的團(tuán)隊(duì)需要使用各種不同的工具來(lái)部署和維護(hù)低代碼應(yīng)用程序。
- 微軟構(gòu)建了兩種類(lèi)型的低代碼應(yīng)用程序。一種是帶有圖形界面,給業(yè)務(wù)用戶(hù)用,一種是基于代碼的,給開(kāi)發(fā)人員用。開(kāi)發(fā)人員可以使用現(xiàn)成的工作流來(lái)部署應(yīng)用程序。
- AWS 和谷歌還沒(méi)有確定該如何解決這個(gè)問(wèn)題。
- 還有成百上千的低代碼應(yīng)用程序提供了各種不同的解決辦法。
結(jié)果是,你的團(tuán)隊(duì)需要制定指南,告訴人們要如何處理這些事情以及由誰(shuí)來(lái)處理。我之前的系列文章中已經(jīng)提到過(guò)這些。有了指南之后,低代碼平臺(tái)有助于大家遵循指南——但這是 IT 的責(zé)任,而不是業(yè)務(wù)人員的。
4. 維護(hù)階段
這個(gè)是最為蹊蹺的一個(gè)階段。軟件的維護(hù)涉及問(wèn)題修復(fù)和功能增強(qiáng)。大部分企業(yè)沒(méi)有設(shè)立專(zhuān)門(mén)的業(yè)務(wù)團(tuán)隊(duì)來(lái)處理這個(gè)問(wèn)題,但他們需要參與,因?yàn)槭撬麄冏约簶?gòu)建了這些應(yīng)用程序,他們是唯一知道這些應(yīng)用程序來(lái)龍去脈的人。
隨著時(shí)間的推移,低代碼可以更好地處理這個(gè)階段的問(wèn)題,但仍然需要軟件工程師和業(yè)務(wù)人員的共同參與。
要避免的夾點(diǎn)
如果你是大中型企業(yè)的軟件工程師,并且與業(yè)務(wù)人員溝通順暢,那么久不需要有太多的擔(dān)心。你總是能找到為公司創(chuàng)造價(jià)值的方法。
但是,低代碼仍然會(huì)給兩個(gè)領(lǐng)域的軟件工程師造成較大的影響,如果你在這兩個(gè)領(lǐng)域中,就需要注意一下發(fā)展趨勢(shì):
- 小型公司(或者大公司的小型技術(shù)團(tuán)隊(duì));
- 應(yīng)用程序開(kāi)發(fā)公司。
對(duì)于小型公司來(lái)說(shuō),使用低代碼軟件比自己開(kāi)發(fā)應(yīng)用程序更說(shuō)得過(guò)去。對(duì)于小型公司的 CEO 來(lái)說(shuō),他或她需要決定的是要雇一個(gè) React 程序員來(lái)開(kāi)發(fā)一個(gè)新的定制化應(yīng)用程序(然后期望這個(gè)程序員不要離職、退休或死掉)還是使用低代碼軟件來(lái)開(kāi)發(fā)一個(gè)。很顯然,會(huì)選擇后一個(gè)選項(xiàng)。在這些公司工作的軟件工程師會(huì)丟掉他們的飯碗,或者轉(zhuǎn)去為公司開(kāi)發(fā)低代碼應(yīng)用程序。
應(yīng)用程序開(kāi)發(fā)公司的大量崗位將會(huì)消失。在這些公司,初級(jí)和中級(jí)開(kāi)發(fā)人員很少有機(jī)會(huì)能夠像公司直招的工程師那樣發(fā)揮他們的溝通技能。如果你是一個(gè)負(fù)責(zé)寫(xiě)代碼和構(gòu)建 ETL 管道的初級(jí)或中級(jí)工程師,看一下你的周?chē)?,如果你的周?chē)泻芏嗤伦鲋瑯拥氖虑?,那么是時(shí)候考慮一下該如何增強(qiáng)你的溝通和面對(duì)客戶(hù)的技能了。
結(jié)論
技術(shù)變革在緩慢地發(fā)生,然后薄積厚發(fā)。我們似乎正處在低代碼革命的轉(zhuǎn)折點(diǎn)。在接下來(lái)的幾年,我們將看到軟件工程師的工作發(fā)生戲劇性的變化。如果你避開(kāi)了這些夾點(diǎn),對(duì)于你來(lái)說(shuō)就是好日子。
作者簡(jiǎn)介
Doug Hudgeon 是Managed Functions的首席執(zhí)行官。這是一家集成公司,專(zhuān)門(mén)幫助低代碼和 RPA 團(tuán)隊(duì)更快地交付項(xiàng)目,通過(guò)提供定制組件來(lái)處理他們?cè)陧?xiàng)目中可能遇到的棘手問(wèn)題。這些組件可以作為無(wú)服務(wù)器函數(shù)部署到云端(AWS、Azure 或 GCP)。他也是曼寧《商業(yè)機(jī)器學(xué)習(xí)》一書(shū)的合著者,這本書(shū)向用戶(hù)展示了如何使用 AWS SageMaker 解決現(xiàn)實(shí)世界的商業(yè)問(wèn)題。你可以在推特上找到他。
原文鏈接:
[How to Not Lose Your Job to Low-Code Software](