軟件工程師如何抵禦低代碼的衝擊

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在我年輕的時候,我的一個好朋友的叔叔被一輛派對巴士撞死了。在他的葬禮上,人們在悲傷之餘不禁在想:他怎麼不在看見那輛巴士或聽見聲音的時候躲開呢?同樣,當我聽說程序員因爲低代碼軟件而丟掉工作的時候,我的腦子裏也蹦出了類似的疑問。顯然,他們也應該躲開低代碼軟件這輛派對巴士啊!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我朋友的叔叔躲不開,因爲他身處夾點,無處可躲。這篇文章將介紹程序員會遇到的低代碼夾點以及如何躲開它們。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"場景設定"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們繼續用派對巴士這個比喻,並假設你是一家大中型企業的軟件開發人員。你和你的團隊負責構建、部署和維護公司使用的各種應用程序。有些應用程序是你們自己開發的,有些是現成的,需要定製或集成。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"突然間,你發現有很多用戶在開發自己的低代碼應用程序。你應該擔心這個嗎?我覺得大可不必。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"大型企業裏的夾點並不多"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從2010年開始,隨着流程自動化工具Blue Prism和UIPath的崛起,你或許已經看到自動化給金融和人力資源領域的工作人員帶來的戲劇性影響。這是因爲這些領域存在很多夾點。當應付賬款業務被自動化,從事該業務的工作人員很難再轉到其他崗位,因爲整個相關的工作崗位都消息了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但軟件工程與應付賬款不同。你的工作量是由軟件能夠給企業帶來多少價值決定的。你可以看一下自己目前的工作內容。如果你所在的團隊與其他大部分IT團隊一樣,那麼應該會有很多開發新應用程序的需求以及給已有應用程序添加新功能的需求。如果說自動化可以讓這些需求減少,那等同於說速度更快的汽車可以把你載到火星上。如果低代碼軟件承擔了你的部分工作,你還有其他項目可以做。如果處理得當,你甚至可以把一些棘手的項目丟給低代碼。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自動化的引入可能會深化而不是減少軟件工程師的工作。——Ralph Aboujaoude Diaz, HFS Research"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"其次,軟件工程的某些方面比較難以自動化,所以低代碼派對巴士很難開過這個地形。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"例如,非開發人員可以使用低代碼工具做出數據表,但如何讓這些數據表跟他們要解決的業務問題映射起來,這些工具並不會提供太多幫助。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"低代碼工具也讓非開發人員構建和部署應用程序變得更容易,但這些工具並不會確保相關人員會參與項目的各個部分,以遵循風險和合規規約。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着低代碼在你的企業當中傳播開來,作爲軟件工程師,你花在寫代碼上的時間變少了,花在工作其他方面的時間變多了,而不是失業。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於大部分軟件工程師來說,隨着低代碼軟件在企業內部的鋪開,他們將有更多的機會爲公司創造更多的價值,不需要做那些無聊的重複性工作。——Jan Oberhauser,n8n CEO"}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"撇開比喻,我們說的是哪種類型的項目?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"低代碼軟件可以被用在很多種不同的項目中,從流程自動化到幫助用戶提升效率的應用程序。在你閱讀這篇文章的同時,想象以下的某個場景:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":1,"normalizeStart":1},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"一款房地產經紀人用來向客戶發送合同日期提醒的應用程序;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"一款讀取醫療記錄並識別沒有得到優先治療的病人的後臺應用程序;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"一款通過抽取保單相關字段來構建機器學習模型的應用程序。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"“解剖”一個軟件項目"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"有很多書教我們如何構建企業級軟件項目(可以閱讀Blair Reeves的《"},{"type":"link","attrs":{"href":"https:\/\/learning.oreilly.com\/library\/view\/building-products-for\/9781492024774\/","title":"","type":null},"content":[{"type":"text","text":"構建企業級軟件"}]},{"type":"text","text":"》)。爲了契合本文的主題,我們把一個軟件項目分爲四個階段:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":1,"normalizeStart":1},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"計劃和整體設計;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"構建;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"部署;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":4,"align":null,"origin":null},"content":[{"type":"text","text":"維護。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲了幫助大家更好地理解低代碼軟件是如何影響大家的工作的,我們來看一下低代碼在上述的每一個階段都具備哪些能力。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. 計劃和整體設計階段"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在這四個階段當中,這是低代碼最後一個可以取代的階段。計劃和整體設計階段涉及很多事情,從讓相關人員參與其中,確保有足夠的預算和資源來構建和維護應用程序,到檢查是否在構建對的應用程序。例如,假設你在一家房產公司工作,這家公司的客戶抱怨要很長時間才能拿到合同文本。解決這個問題有很多種方法,但使用哪種方法取決於對造成這種延遲的原因的瞭解程度以及掌握了哪些降低延遲的方法。短期來看,低代碼工具還無法做出這種分析。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. 構建階段"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這是低代碼軟件可以發揮核心作用的階段。在進行整體設計之後,你的團隊或業務用戶就可以用低代碼軟件很快地做出應用程序。在這個階段,低代碼軟件的關鍵優勢是它們可以幫助你的用戶決定什麼纔是他們真正需要的。他們不用畫草稿和溝通需求細節,而是不斷迭代解決方案,直到獲得他們想要的東西。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"低代碼的一個關鍵點是它抽離了基礎設施的複雜性,就連非專業人員也可以構建和部署非常複雜的應用程序。——Rick Lamers, Orchest CEO"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這個階段仍然還有一些地方需要團隊的參與——那些低代碼解決方案無法處理的棘手問題。例如,如何抽取房產客戶聯繫人的相關數據?如何在沒有標準訪問接口的情況下訪問某些政府的數據集?如何構建可以基於風險對索賠進行分類的機器學習模型?如果說你們不具備這方面的專業知識,一些新興的公司,如Managed Functions,可以處理這些問題。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3. 部署階段"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"低代碼在這個階段最爲狂野。各種低代碼平臺都提供了不同的部署方式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"RPA(機器人流程自動化)公司提供了統一控制中心,負責處理應用程序的部署和維護任務。這解決了部署和維護問題,但代價是你的團隊需要使用各種不同的工具來部署和維護低代碼應用程序。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"微軟構建了兩種類型的低代碼應用程序。一種是帶有圖形界面,給業務用戶用,一種是基於代碼的,給開發人員用。開發人員可以使用現成的工作流來部署應用程序。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"AWS和谷歌還沒有確定該如何解決這個問題。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"還有成百上千的低代碼應用程序提供了各種不同的解決辦法。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"結果是,你的團隊需要制定指南,告訴人們要如何處理這些事情以及由誰來處理。我之前的系列文章中已經提到過這些。有了指南之後,低代碼平臺有助於大家遵循指南——但這是IT的責任,而不是業務人員的。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"4. 維護階段"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這個是最爲蹊蹺的一個階段。軟件的維護涉及問題修復和功能增強。大部分企業沒有設立專門的業務團隊來處理這個問題,但他們需要參與,因爲是他們自己構建了這些應用程序,他們是唯一知道這些應用程序來龍去脈的人。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着時間的推移,低代碼可以更好地處理這個階段的問題,但仍然需要軟件工程師和業務人員的共同參與。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"要避免的夾點"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果你是大中型企業的軟件工程師,並且與業務人員溝通順暢,那麼久不需要有太多的擔心。你總是能找到爲公司創造價值的方法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是,低代碼仍然會給兩個領域的軟件工程師造成較大的影響,如果你在這兩個領域中,就需要注意一下發展趨勢:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":1,"normalizeStart":1},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"小型公司(或者大公司的小型技術團隊);"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"應用程序開發公司。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於小型公司來說,使用低代碼軟件比自己開發應用程序更說得過去。對於小型公司的CEO來說,他或她需要決定的是要僱一個React程序員來開發一個新的定製化應用程序(然後期望這個程序員不要離職、退休或死掉)還是使用低代碼軟件來開發一個。很顯然,會選擇後一個選項。在這些公司工作的軟件工程師會丟掉他們的飯碗,或者轉去爲公司開發低代碼應用程序。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"應用程序開發公司的大量崗位將會消失。在這些公司,初級和中級開發人員很少有機會能夠像公司直招的工程師那樣發揮他們的溝通技能。如果你是一個負責寫代碼和構建ETL管道的初級或中級工程師,看一下你的周圍,如果你的周圍有很多同事做着同樣的事情,那麼是時候考慮一下該如何增強你的溝通和麪對客戶的技能了。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"結論"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"技術變革在緩慢地發生,然後薄積厚發。我們似乎正處在低代碼革命的轉折點。在接下來的幾年,我們將看到軟件工程師的工作發生戲劇性的變化。如果你避開了這些夾點,對於你來說就是好日子。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"作者簡介"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Doug Hudgeon是"},{"type":"link","attrs":{"href":"http:\/\/www.managedfunctions.com\/","title":"","type":null},"content":[{"type":"text","text":"Managed Functions"}]},{"type":"text","text":"的首席執行官。這是一家集成公司,專門幫助低代碼和RPA團隊更快地交付項目,通過提供定製組件來處理他們在項目中可能遇到的棘手問題。這些組件可以作爲無服務器函數部署到雲端(AWS、Azure或GCP)。他也是曼寧《商業機器學習》一書的合著者,這本書向用戶展示瞭如何使用AWS SageMaker解決現實世界的商業問題。你可以在推特上找到他。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"原文鏈接"},{"type":"text","text":":"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[How to Not Lose Your Job to Low-Code Software]("}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章