自然語言開發(fā)、零代碼、低代碼,到底誰才是軟件開發(fā)的銀彈(零代碼應(yīng)用開發(fā))
不管是軟件產(chǎn)品的用戶、還是軟件公司的老板,或是寫代碼的碼農(nóng),都苦軟件開發(fā)這個(gè)行當(dāng)久矣,很難見到一個(gè)行業(yè)屬于甲方、乙方、從業(yè)人員都在罵的行業(yè),軟件開發(fā)行業(yè)就是。
甲方罵我給了那么多費(fèi)用,為啥還滿足不了我的需求,到處都是bug,交付時(shí)間老是延誤。
乙方老板罵甲方,你就這點(diǎn)錢,還三天兩頭改需求,動(dòng)不動(dòng)就要我兩天搞完,我又不是超人;乙方老板也罵員工:我一天養(yǎng)你們那么多人,開著高薪,你們?cè)趺催B這么簡單的功能都做不好,給我加班!??!
碼農(nóng):這些需求你們都沒想好就要我開發(fā),現(xiàn)在三天兩頭改怪我咯,天天催我上線,我連單元測試都沒時(shí)間,就這點(diǎn)工資還每個(gè)月都拖。
看吧,三輸局面,沒有哪個(gè)行業(yè)有那么多豆腐渣工程,沒有哪個(gè)行業(yè)利潤那么薄,沒有哪個(gè)行業(yè)員工那么辛苦,996最早哪來的?可不就是軟件開發(fā)行業(yè)傳開的嗎!
看過軟件工程領(lǐng)域圣經(jīng)《人月神話》的人,都知道銀彈(銀彈就是可以讓強(qiáng)大的狼人被一擊斃命的武器),軟件工程借銀彈來比喻那種一招制敵,解決軟件工程中所有問題的終極武器。
可惜幾十年過去了,軟件開發(fā)領(lǐng)域的從業(yè)者們還是沒有找到銀彈。但最近幾年涌現(xiàn)的低代碼、零代碼,甚至AI大模型、自然語言編程讓人們不既讓大家又看到了一絲曙光。
可現(xiàn)實(shí)遠(yuǎn)沒那么理想,低代碼被大家批成業(yè)務(wù)人員不會(huì)用,開發(fā)人員不愿用;零代碼更是被嘲諷成玩具,AI大模型和自然語言編程也是說著很美,但真到工作中又不頂事,很難大規(guī)模工程應(yīng)用。
難道最終還是沒有辦法嗎?實(shí)際上確實(shí)不存在銀彈能一勞永逸的解決所有問題,但也許另一條“合縱連橫”的道路能把這些各有優(yōu)勢的技術(shù)和產(chǎn)品集中貫通起來,成為真正的銀彈。
不知道我在說啥的,繼續(xù)往下看,我們現(xiàn)在把軟件開發(fā)按照開發(fā)模式劃分為四個(gè)層次,分別是:
1、傳統(tǒng)硬編碼的開發(fā)模式:這個(gè)無需多說大家都明白;
2、低代碼開發(fā):大部分常見、簡單開發(fā)通過前端拖拉拽和系統(tǒng)配置開發(fā)完成,復(fù)雜和個(gè)性化的需求依然能夠采用代碼編寫的方式完成(代表:各種**云);
3、零代碼拖拉拽式開發(fā):不需要寫代碼,靠界面上組件的拖拉拽操作以及系統(tǒng)配置即可完成軟件開發(fā)(代表:釘釘宜搭、百度愛速搭);
4、自然語言開發(fā):語音也好、文檔也好、文字也好,只要是人類語言說出來的,就能作為需求輸入完成軟件開發(fā)(代表:微軟Copilot,中國電信星辰大模型·軟件工廠)。
現(xiàn)在大部分軟件公司還停留在第一個(gè)傳統(tǒng)模式開發(fā)的層次上,啥項(xiàng)目都是硬編碼,好點(diǎn)的積累了很多可復(fù)用的庫或功能模塊,再有個(gè)好的研發(fā)管理流程就已經(jīng)算不錯(cuò)的公司了。
另外,部分頭部軟件公司或有想法的公司在保留部分傳統(tǒng)硬編碼的開發(fā)方式下,大部分產(chǎn)品的開發(fā)和項(xiàng)目實(shí)施已經(jīng)轉(zhuǎn)到低代碼開發(fā)模式中,比如像金蝶、用友、致遠(yuǎn)、泛微以及一眾saas軟件企業(yè),在長期的業(yè)務(wù)實(shí)踐中,他們總結(jié)積累了自己的研發(fā)基座,這些研發(fā)基座基本就是低代碼平臺(tái),這些基座讓他們提高了開發(fā)效率,增強(qiáng)了研發(fā)的過程管理。
我拿我所在的小公司舉例,因?yàn)閼n患意識(shí)比較強(qiáng),所以也很早自研了自己的低代碼平臺(tái)用以項(xiàng)目和產(chǎn)品的研發(fā),現(xiàn)在除了20%的歷史遺留項(xiàng)目外,公司80%的項(xiàng)目都已轉(zhuǎn)入低代碼開發(fā)模式,在此模式下已跑了兩年,也未出現(xiàn)很多人詬病的復(fù)雜項(xiàng)目無法開發(fā)的情況。
當(dāng)然低代碼最大的客戶并不是軟件公司,而是信息化經(jīng)費(fèi)充足,組織規(guī)模較大的企業(yè),但低代碼在這些大型組織內(nèi)還是一種嘗試性的應(yīng)用,并未大規(guī)模的采用后用以替代原有系統(tǒng)和開發(fā)模式。
零代碼在軟件公司中較為罕見,更多的是在一些非專業(yè)軟件公司,如系統(tǒng)集成商,個(gè)人工作室和一些甲方用戶里在小規(guī)模的使用。
而自然語言編程更是處于早期,微軟公布(不是發(fā)布)類似產(chǎn)品的demo也才過去幾個(gè)月的時(shí)間,所以現(xiàn)實(shí)中并未見到實(shí)踐案例。
那這些軟件開發(fā)平臺(tái)類產(chǎn)品到底什么才是最好的呢?
以我個(gè)人淺見,提供給用戶的軟件開發(fā)平臺(tái)最好的肯定是自然語言開發(fā),簡單易學(xué)、受眾面廣,但是以現(xiàn)有的技術(shù)和模式來說,自然語言開發(fā)在可以預(yù)見的很長時(shí)間內(nèi),局限性還很強(qiáng),搞不定很多用戶需求。
那怎么辦呢?我的看法就是“合縱連橫”,何謂“合縱連橫”,我們先來看看這幾類產(chǎn)品對(duì)應(yīng)的用戶類型劃分。
1、傳統(tǒng)硬編碼:軟件公司開發(fā)工程師;
2、低代碼:懂技術(shù)的入門級(jí)開發(fā)人員,如:軟件公司的初級(jí)開發(fā)工程師、甲方客戶的開發(fā)人員;
3、零代碼:略懂技術(shù)的甲方IT人員或軟件公司里的產(chǎn)品經(jīng)理;
4、自然語言開發(fā):完全不懂開發(fā)技術(shù)的用戶,如甲方的市場、銷售、老板等人員。
從用戶面來說,從上向下兼容容易,能用硬編碼開發(fā)軟件的碼農(nóng)自然也能用自然語言開發(fā)(雖說現(xiàn)在很多開發(fā)人員不愿意這么干)。但從下向上兼容就不可以了,一步都不可以,不懂技術(shù)的人甚至連零代碼用起來都別扭,更別說低代碼。
很多人會(huì)說那么多年下來,搞軟件開發(fā)都是碼農(nóng)主力,為啥你非要去糾結(jié)普通業(yè)務(wù)人員來參與軟件開發(fā),原因如下:
1、普通人員比軟件工程師人力成本低;
2、甲方的業(yè)務(wù)人員比乙方的軟件工程師懂業(yè)務(wù);
3、產(chǎn)品經(jīng)理比軟件工程師更懂需求和產(chǎn)品設(shè)計(jì);
所以“合縱連橫”下有沒有可能出現(xiàn)一種新的軟件開發(fā)協(xié)作模式,把多種軟件開發(fā)平臺(tái)集成在一起,讓各類項(xiàng)目相關(guān)人員一起協(xié)作來完成軟件開發(fā)。比如:
先由甲方的業(yè)務(wù)人員用自然語言開發(fā)模式搭建出系統(tǒng)的基本功能框架,這個(gè)框架能夠表達(dá)出用戶的基本需求、數(shù)據(jù)組成、展現(xiàn)形式。甲方業(yè)務(wù)人員在軟件開發(fā)方面的能力極限也就到此為止,整個(gè)項(xiàng)目的完成度可達(dá)到20%-50%;
下一步,在此基礎(chǔ)上,由甲方的IT人員或乙方的產(chǎn)品經(jīng)理進(jìn)一步用零代碼把這個(gè)“毛胚房”開發(fā)成“簡裝房”,這一步的成品已經(jīng)達(dá)到產(chǎn)品原型的地步,但相比傳統(tǒng)的產(chǎn)品原型,這個(gè)成品里一些沒有復(fù)雜業(yè)務(wù)邏輯的簡單功能已經(jīng)能夠直接運(yùn)行,產(chǎn)品經(jīng)理的天花板也就到這里,整個(gè)項(xiàng)目的完成度可達(dá)到40%-70%;
第三步就可以由乙方的初級(jí)研發(fā)工程師使用低代碼平臺(tái)完成簡單代碼的編寫和復(fù)雜產(chǎn)品的配置,到這一步時(shí),整個(gè)項(xiàng)目的完成度可達(dá)到60%-90%,進(jìn)入“精裝房”階段;
到第四步只剩下少數(shù)技術(shù)難度較高的特殊需求,或是要對(duì)平臺(tái)進(jìn)行底層代碼編寫才能滿足的需求,但也只需要乙方少量的高級(jí)工程師或系統(tǒng)架構(gòu)師就能完成。
以上已經(jīng)是一個(gè)較復(fù)雜項(xiàng)目“合縱連橫”各步的完成情況。但實(shí)際很多項(xiàng)目并未這么復(fù)雜,甚至有10%的項(xiàng)目在第一步就能完成,20%的項(xiàng)目在第二步就能完成,30%的項(xiàng)目第三步可以完成,只有40%的項(xiàng)目才會(huì)走到最后一步(以上數(shù)據(jù)依據(jù)本公司項(xiàng)目實(shí)踐所得,不代表行業(yè)整體情況)。
“合縱連橫”帶來的好處就是,甲方業(yè)務(wù)人員深度參與,業(yè)務(wù)需求在第一步就能得到充分的梳理和“釋放”,減輕了業(yè)務(wù)需求不明給后期帶來的眾多問題,同時(shí)甲方人員的深度參與,也會(huì)使其獲得成就感和參與感,進(jìn)而對(duì)項(xiàng)目提供更多的支持和配合。
對(duì)乙方來說,因?yàn)榧追降募尤?,自身的工程量減輕,清晰的需求也避免了后期的反復(fù),同時(shí)只需人力成本較低初級(jí)工程師就能完成絕大部分工作,也大大減輕了項(xiàng)目的實(shí)施成本。實(shí)施成本的降低也會(huì)反哺甲方的信息化建設(shè),使其用較少的經(jīng)費(fèi)就能完成更多的項(xiàng)目建設(shè)。
這樣的項(xiàng)目模式在業(yè)內(nèi)極少見,很多同行肯定也要說,你這個(gè)太復(fù)雜了,甲方爸爸不光出錢,還得陪你一起搞研發(fā),哪個(gè)甲方爸爸愿意這么受累?
確實(shí)有這個(gè)邏輯存在,但就我的感受,我們服務(wù)的客戶,特別是大型客戶、企業(yè)客戶,越來越希望能夠深度參與到項(xiàng)目建設(shè)過程中,而不是僅僅當(dāng)個(gè)項(xiàng)目經(jīng)理等著驗(yàn)收成果,現(xiàn)在很多項(xiàng)目甲方甚至派遣產(chǎn)品經(jīng)理、開發(fā)人員隨同乙方的項(xiàng)目團(tuán)隊(duì)一起開發(fā),就是為了自己的項(xiàng)目過程不走偏,同時(shí)在項(xiàng)目結(jié)束后能夠從乙方手里全盤接手項(xiàng)目。
“合縱連橫”這種模式有其很大的優(yōu)勢,但現(xiàn)在鮮有這方面的實(shí)施案例,造成這種情況并不是甲方不接受,而是乙方?jīng)]有集自然語言開發(fā)、零代碼、低代碼、原生代碼于一體的軟件開發(fā)平臺(tái),自然無法實(shí)施。但從邏輯和理論以及我司這些年的實(shí)踐經(jīng)驗(yàn)看,確實(shí)不乏是一顆能夠解決軟件工程問題的“銀彈”。
這樣的軟件開發(fā)平臺(tái)集四種開發(fā)模式為一身,當(dāng)高維度開發(fā)模式不能滿足項(xiàng)目需求時(shí),可降維使用低一維度的模式繼續(xù)項(xiàng)目開發(fā),同時(shí)這樣的軟件開發(fā)平臺(tái)要能集成研發(fā)過程管理系統(tǒng)就更加能使項(xiàng)目開發(fā)如虎添翼,方便甲乙雙方項(xiàng)目人員的工作協(xié)同進(jìn)而提高研發(fā)效率和質(zhì)量。
以上過程本人已部分實(shí)踐,歡迎同行探討。