程序員們,請不要看低零代碼
文/明道云創(chuàng)始人任向暉
我們的業(yè)務(wù)進(jìn)程中,不可避免地開始和開發(fā)者群體產(chǎn)生了一些沖突,更準(zhǔn)確地說,是一些誤會。對此,我們也有思想準(zhǔn)備。
當(dāng)然,可愛的程序員們往往都很含蓄,他們不會說——“零代碼平臺有什么鳥用?如果不寫代碼就能夠開發(fā)軟件,還要我們干嗎?”。
他們不會說,但我們心里知道。當(dāng)我們向一位潛在顧客演示明道云后,我?guī)缀醵寄苈牭接袔孜怀绦騿T心里的想法。有時候,客戶不同職能的人圍繞是否要采納零代碼系統(tǒng)當(dāng)面爭執(zhí)起來,我也有點尷尬。
有外部人士好心給我們建議將產(chǎn)品定位名稱修改為“低代碼”,而不要那么決絕地叫“零代碼”。因為叫低代碼,好歹不會讓程序員群體過于反感,感覺自己至少還有用武之地。
事實上,明道云也包含若干低代碼模塊,允許部分高級用戶使用腳本語言來簡化配置步驟,使用API來進(jìn)行對接開發(fā),這些都離不開訓(xùn)練有素的程序員。
但這不是重點,我們想要達(dá)成的目標(biāo),是讓現(xiàn)役程序員做點真正有價值的活,而把那些重復(fù)性的開發(fā)工作完全削減。稱為“零代碼”,的確包含一些市場宣言的意圖成分。
零代碼平臺替代哪些軟件開發(fā)工作?
概括來說,以明道云為代表的零代碼平臺主要用于企業(yè)中后臺應(yīng)用領(lǐng)域,尤其是圍繞數(shù)據(jù)管理和工作流相關(guān)的應(yīng)用類別,他們一般都用于企業(yè)內(nèi)部,有時候也會延伸到外部客戶和合作伙伴。這些應(yīng)用都圍繞數(shù)據(jù)的增刪查改和靈活的工作流程管理而建立,用戶通過瀏覽器和移動設(shè)備進(jìn)行使用。
這段概括的確已經(jīng)將企業(yè)軟件行業(yè)中的很多場景都包括在內(nèi)了。為了讓讀者更好理解,我再例舉一些更為具體的場景:
1)基于關(guān)系數(shù)據(jù)庫的業(yè)務(wù)管理應(yīng)用
是指不同行業(yè)圍繞著核心業(yè)務(wù)構(gòu)筑的業(yè)務(wù)管理系統(tǒng),例如:
- 流通業(yè)的進(jìn)銷存
- 制造業(yè)的生產(chǎn)執(zhí)行、物料管理、設(shè)備管理
- 現(xiàn)代服務(wù)業(yè)的項目管理
- 教育行業(yè)的師資、學(xué)員、課程管理
- 設(shè)備工程業(yè)的采購、安裝和服務(wù)管理
- 一般B2B行業(yè)的銷售管理等等
這個大類別中大多數(shù)軟件都長得幾乎一模一樣。在Web版本上,往往通過頂部和左側(cè)菜單進(jìn)行功能導(dǎo)航,主界面用表格列出數(shù)據(jù)條目,打開記錄詳情可以進(jìn)行各種數(shù)據(jù)操作,查看關(guān)聯(lián)數(shù)據(jù)。
正是因為這樣的雷同度,所以零代碼平臺可以大顯身手,將所有這些應(yīng)用的實現(xiàn)用一個統(tǒng)一的組裝方式來實現(xiàn),從而避免從頭至尾的原生軟件開發(fā)過程。
2)利用移動應(yīng)用采集數(shù)據(jù)的應(yīng)用
制造、工程、零售等行業(yè)需要特定職能人員從一線采集數(shù)據(jù)的應(yīng)用場景。
3)利用API接口寫入數(shù)據(jù)并構(gòu)筑管理看板的應(yīng)用
從多個異構(gòu)系統(tǒng)抽取數(shù)據(jù),沉淀到統(tǒng)一的數(shù)據(jù)中臺,并結(jié)合本產(chǎn)品的自定義儀表盤功能構(gòu)筑管理駕駛艙的應(yīng)用需求。這個應(yīng)用場景用另外一種方式替代了BI ETL的方案。
4)部門級解決特定業(yè)務(wù)環(huán)節(jié)需求的小應(yīng)用
因為零代碼系統(tǒng)帶來的易用性和免除代碼開發(fā)的特點,用戶企業(yè)可以由業(yè)務(wù)部門的非開發(fā)人員直接搭建或者主導(dǎo)一些簡單的小應(yīng)用。在統(tǒng)一的應(yīng)用管理能力下,同時也能防范影子IT問題。
5)為實現(xiàn)流程自動化而構(gòu)建的應(yīng)用
基于本產(chǎn)品的自動化工作流,可以打通過去需要人工協(xié)調(diào)的斷續(xù)工作流程,例如:
- 訂單、交付和發(fā)票的自動銜接
- 基于時間觸發(fā)的檢查單生成、設(shè)備維保提醒、合同到期提醒等
- 基于銷售流程和營銷流程之間的線索自動標(biāo)簽和線索培育等
6)為實現(xiàn)數(shù)據(jù)流轉(zhuǎn)、填報和審核過程而構(gòu)筑的流程應(yīng)用
在復(fù)雜的數(shù)據(jù)協(xié)同中,構(gòu)筑基于表單數(shù)據(jù),審批和填寫節(jié)點的人工控制工作流應(yīng)用。
零代碼不擅長的場景
除了這些正面范疇,也有一些負(fù)面清單。意思是零代碼平臺并不善于解決的場景也有很多,比如:
1)市場規(guī)模巨大,場景一致,通用程度很高的品類
比如協(xié)作應(yīng)用,通訊應(yīng)用。當(dāng)然,因為這些市場容量巨大,也已經(jīng)有大量的成熟廠商在提供產(chǎn)品。你完全沒有必要去用零代碼去搭建。如果你要參與這些市場的競爭,理應(yīng)擁有一支技能完善的軟件產(chǎn)品研發(fā)團隊,才能對市場競爭做出及時的響應(yīng)。
2)在特定行業(yè)中依賴非常專有化的計算或?qū)S谢囊晥D來提供服務(wù)的門類
例如酒店行業(yè)的動態(tài)房價管理,餐飲業(yè)的收銀排桌,圍繞生產(chǎn)制造的工業(yè)控制和特殊邏輯排程,圍繞市場營銷目標(biāo)的廣告數(shù)據(jù)管理等等。這就像要擰無數(shù)顆直徑固定為3毫米的螺母,就沒有必要用萬能扳手。
3)面向消費者的應(yīng)用
這個很好理解,2C應(yīng)用是十分多元的,很難通過零代碼的方式來實現(xiàn)。當(dāng)然,那些簡單的信息展示類或者購物車類的小程序應(yīng)用另當(dāng)別論。很多小程序生成平臺,本質(zhì)上也是一種零代碼平臺。
我相信這個清單并沒有完,這個市場總是存在各種各樣特殊情況的長尾,以至于每一個零星需求都不得不專門來進(jìn)行架構(gòu),設(shè)計和開發(fā)。
零代碼為什么比寫代碼還要好?
一旦你要實現(xiàn)的場景和我們的優(yōu)勢方向吻合,那么我敢說,用零代碼平臺搭建的應(yīng)用,要比絕大多數(shù)普通軟件開發(fā)團隊開發(fā)出來的應(yīng)用要好得多。
我這么說,可能有點不禮貌了,但我們都得客觀一些,優(yōu)秀和杰出的軟件開發(fā)團隊總是有限的,他們不會天天在開發(fā)增刪查改數(shù)據(jù)的企業(yè)應(yīng)用。這些活交給我們比較合適。
1)免除交互體驗設(shè)計流程
零代碼平臺承擔(dān)了基本交互設(shè)計的全部工作,圍繞數(shù)據(jù)輸入,查詢,展示等一系列動作。應(yīng)用零代碼平臺后,不需要再進(jìn)行這些細(xì)枝末節(jié)的交互體驗設(shè)計和增強。
比如:一個復(fù)雜表單的每個控件,應(yīng)該用什么樣式,保持什么間距,支不支持鍵盤切換焦點等等,這些細(xì)節(jié)問題往往耗費前端程序員大量的重復(fù)勞動。
現(xiàn)在,都不用了。我們的一次性范式設(shè)計統(tǒng)統(tǒng)考慮在內(nèi)了。
有人說,如果不能個性化設(shè)計前端頁面,那做出來的應(yīng)用豈不是很雷同。的確是這樣,但這種雷同是好的重復(fù),而不是粗鄙的復(fù)制。
我們可以為一個日期輸入控件耗費幾天的時間來優(yōu)化,這并不是所有的應(yīng)用前端開發(fā)所能夠承擔(dān)的成本。
而且,即便你不用零代碼平臺,在應(yīng)用前端框架時,也絕對不可能自己從頭開始設(shè)計,總是會應(yīng)用一些現(xiàn)成的成熟框架。君不見各種后臺系統(tǒng)使用的幾乎都是阿里Ant的那一套?
在企業(yè)中后臺應(yīng)用中,界面好看,功能好用是最重要的目標(biāo)。所以,高質(zhì)量的雷同正是解決這個問題的手段。
2)免除后端架構(gòu)流程
前端開發(fā)容易產(chǎn)生重復(fù)工作,后端數(shù)據(jù)架構(gòu)也是一樣。為了讓一個企業(yè)應(yīng)用能夠滿足業(yè)務(wù)數(shù)據(jù)管理和工作流程的需要,開發(fā)者需要設(shè)計正確合理的數(shù)據(jù)結(jié)構(gòu)。這個工作,無論是零代碼,還是傳統(tǒng)的原生開發(fā)都是需要的。
但是,除了數(shù)據(jù)模型外,原生開發(fā)項目還需要架構(gòu)師設(shè)計合理的數(shù)據(jù)存儲過程和函數(shù)(可重復(fù)利用的程序結(jié)構(gòu)),這些工作都是依賴經(jīng)驗豐富的架構(gòu)師的。
有了零代碼平臺,所有的后端架構(gòu)工作被轉(zhuǎn)化成可視化的配置過程,數(shù)據(jù)結(jié)構(gòu)依靠表單來建立,工作流依靠觸發(fā)器和節(jié)點來配置,權(quán)限系統(tǒng)依靠角色和顆粒度很高的權(quán)限細(xì)節(jié)來組合。
這些工作雖然不會自動完成,但它們已經(jīng)不再依賴狹義的軟件架構(gòu)師,完成這些工作的時間成本也大大降低。
這里還要提到一個重要因素,那就是業(yè)務(wù)變更所帶來的后端架構(gòu)調(diào)整噩夢。
一旦業(yè)務(wù)流程產(chǎn)生新的需求,絕大多數(shù)情況下都不是簡單地修改幾行前端代碼能夠搞定的,后端架構(gòu)都需要配合進(jìn)行調(diào)整。
在過去,這是很多定制開發(fā)軟件項目的危機所在,因為往往需要的時候找不到人,或者找不到健全的文檔,導(dǎo)致后續(xù)跟進(jìn)的修改中堆疊出越來越多的低質(zhì)量代碼。
有零代碼系統(tǒng),無非就是調(diào)整一下配置就能夠完成。這是原生開發(fā)永遠(yuǎn)難以企及的效果。
3)簡化測試流程
零代碼搭建的應(yīng)用也要測試,但用戶只需要聚焦在數(shù)據(jù)處理的正確性上,一次對,次次對。
傳統(tǒng)軟件的測試要復(fù)雜得多,首先要有開發(fā)人員自己完成的白盒測試,還需要有需求方和測試人員共同編寫黑盒測試用例清單。
光這一件事情就依賴專業(yè)人員,成本很高,而且有很麻煩的跨專業(yè)溝通。完整的測試還需要涵蓋性能,兼容性等方面,相當(dāng)?shù)睾臅r耗力。
所以大部分定制軟件開發(fā)是沒有健壯的測試流程的。作為只有一個用戶的定制軟件,軟件缺陷的消除過程非常漫長。
4)免除應(yīng)用分發(fā)
開發(fā)已經(jīng)掉了一層皮,但一個最終可用的企業(yè)應(yīng)用,為了能夠地讓員工開始正常使用,還有一個“在組織內(nèi)分發(fā)”的過程。
這個過程通常都比想象的復(fù)雜,尤其是那些需要根據(jù)不同角色分配不同權(quán)限的復(fù)雜系統(tǒng)。在軟件開發(fā)完畢后,還需要引導(dǎo)用戶注冊賬戶,分配角色后,用戶才真正能夠登錄系統(tǒng)使用。
目前,越來越多的企業(yè)已經(jīng)開始使用釘釘和企業(yè)微信等平臺,這意味著,開發(fā)出來的企業(yè)應(yīng)用最好還能夠適配這些平臺,至少實現(xiàn)用戶賬戶和消息通知的打通。
零代碼系統(tǒng)一般都帶有完善的企業(yè)管理后臺,提供用戶,部門,職能角色,匯報關(guān)系配置,還預(yù)先和釘釘和企業(yè)微信等平臺接通。
這樣,用零代碼方式搭建的應(yīng)用不僅交付迅捷,部署到用戶那里也很方便。如果某個應(yīng)用的角色需要對應(yīng)企業(yè)的財務(wù)出納,配置好以后,只要有人入職了財務(wù)出納崗位,就能夠自動得到這個應(yīng)用的訪問權(quán)和恰當(dāng)?shù)臋?quán)限。
5)讓需求溝通更輕松
在開發(fā)企業(yè)軟件的過程中,最痛苦和昂貴的過程真的不是寫代碼,而是需求溝通,讓開發(fā)者理解軟件的應(yīng)用目標(biāo)和掌握必要的背景知識。在稍微復(fù)雜一些的企業(yè)軟件領(lǐng)域,比如生產(chǎn)制造流程管理,物流管理,物料管理,設(shè)備管理,倉儲管理和財務(wù)信息交換等環(huán)節(jié),軟件的設(shè)計源泉完全來自企業(yè)管理最佳實踐。沒有企業(yè)的運營知識,是絕不可能開發(fā)出可用的企業(yè)軟件的。
于是乎,企業(yè)軟件開發(fā)的主要成本都投入在了這些浩繁的需求溝通上。
通常是開發(fā)廠商提供一個框架解決方案,懂行的客戶基本能夠判斷是否合適,然后客戶企業(yè)需要就自己的實際運營提出組合和修改要求,開發(fā)廠商再記錄在需求清單中,并用工作范疇文檔(SOW)和原型圖讓客戶確認(rèn)。
即便花了很多時間做前期的需求確認(rèn)工作,到了實際交付的節(jié)點,依然還會有大量的調(diào)整和確認(rèn)環(huán)節(jié)。這也是為什么交付是傳統(tǒng)軟件開發(fā)服務(wù)的噩夢。成本和進(jìn)度都是在這些環(huán)節(jié)上容易失控的。
零代碼平臺首先了提供一個可能性——不要開發(fā)人員參與,精通需求的業(yè)務(wù)人員直接自主實現(xiàn),因為他們不需要掌握代碼開發(fā)知識。
因為需求方直接自主實現(xiàn),自然也就免去了反復(fù)的需求溝通和確認(rèn)。人人都能夠開發(fā)軟件,這句話一半是宣言,一半已經(jīng)是現(xiàn)實。這完全看用戶自己對需求的清晰程度和學(xué)習(xí)新工具的意愿。美國人為什么習(xí)慣DIY?一方面是因為雇傭工人太貴,另一方面是因為非常發(fā)達(dá)和廉價的DIY工具支持。
就算零代碼平臺也是由技術(shù)團隊來提供服務(wù),業(yè)務(wù)需求方也很容易通過預(yù)先搭建的示范模塊來確認(rèn)是否滿足需求。搭建者和使用者的溝通會非常順暢,有時候,使用者會忍不住自己動起手來。
把正兒八經(jīng)的開發(fā)力量投向何處?
零代碼平臺會不會替代程序員的所有工作?
我認(rèn)為不能,至少在短期內(nèi)是不現(xiàn)實的,零代碼平臺還有很長的產(chǎn)品路線圖要完成。就算我們吃到大力丸,立刻把產(chǎn)品做得又簡單好用,又強大全能(雖然天下幾乎沒有這樣的產(chǎn)品),企業(yè)用戶建立信任也需要時間。
至少在當(dāng)下,程序員們可以開始將精力轉(zhuǎn)向一些更有價值的領(lǐng)域。大膽地將我們擅長的領(lǐng)域交給零代碼系統(tǒng)來嘗試。反正我們這樣的平臺都提供免費試用,實現(xiàn)不了的,你們也不用花冤枉功夫。
但是,在沒有親手實踐之前,阻止和勸導(dǎo)其他人不要嘗試是不公道的。零代碼好歹都能夠搭建出可用的應(yīng)用,讓客戶來進(jìn)行實際驗證,至少是局部的模塊,原生軟件開發(fā)就不可能這么豪邁了,客戶再怎么不信任,你也不可能把軟件開發(fā)好,再去和客戶簽合同。
真正有價值的原生軟件開發(fā)應(yīng)該聚焦在客戶基數(shù)巨大,模式化設(shè)計能夠以一當(dāng)十的市場
軟件產(chǎn)業(yè)的成功就是建立在“復(fù)制”的基礎(chǔ)上的,如果一套軟件就是一個用戶,這是軟件行業(yè)的恥辱。在中國市場,值得投入的軟件產(chǎn)品領(lǐng)域依然很多,在有些細(xì)分市場,零代碼平臺也毫無優(yōu)勢。
比如電商ERP和延伸的新零售解決方案,智能的營銷自動化工具,這些市場目前依然沒有飽和,但零代碼系統(tǒng)缺乏基礎(chǔ)的框架模塊和生態(tài)連接,做起來會比較吃力。
而且,即使有了零代碼應(yīng)用,也不排除客戶繼續(xù)選用一些套裝軟件產(chǎn)品混合使用。在這個過程中,依然有配套的集成開發(fā)工作需要完成,才能給客戶提供完善的應(yīng)用體驗。這些集成開發(fā)涉及到圍繞業(yè)務(wù)需求合理設(shè)計數(shù)據(jù)接口,建立數(shù)據(jù)調(diào)度服務(wù),接通不同的網(wǎng)絡(luò)環(huán)境。當(dāng)然,零代碼的另外一個分支——集成平臺即服務(wù)(IPaaS)也在努力通過產(chǎn)品化來削減這些重復(fù)工作。
每位程序員真的一定要一輩子寫代碼嗎?
如果你想在代碼開發(fā)領(lǐng)域以外拓展視野,又想充分利用已有的IT知識,那么幫助更多的人來使用零代碼平臺,圍繞業(yè)務(wù)需求來做好應(yīng)用搭建規(guī)劃,提供必要的集成開發(fā)服務(wù),不是很好的一個選擇嗎?
很多程序員都希望能夠多了解商業(yè),但是僅僅是服務(wù)商業(yè)需求是不夠的,參與商業(yè)需求的規(guī)劃和設(shè)計才能真正轉(zhuǎn)換視角,成功跨界。
從Coder成為No-Coder一點也不掉價
我總認(rèn)為程序員群體最寶貴的特質(zhì)是學(xué)習(xí)能力,畢竟在代碼開發(fā)領(lǐng)域也需要不斷學(xué)習(xí)和掌握新的技術(shù)棧才能持續(xù)吃好這碗飯。那么今天,當(dāng)零代碼成為一個選項時,明智的程序員不會盲目排斥它,而是應(yīng)該好好把玩一下。如果你的確對代碼開發(fā)興趣濃厚,并有志于成為高等級的程序員,加入明道云也是一個不錯的選擇,因為零代碼系統(tǒng)倒的確是用代碼編寫出來的(Java為核心)。