低代碼和無代碼(LC/NC)工具制造商正面臨一場(chǎng)艱苦的戰(zhàn)斗,試圖說服人們,尤其是專業(yè)開發(fā)人員,使用甚至只是嘗試他們的工具和平臺(tái)。少數(shù)平臺(tái)已經(jīng)進(jìn)入這個(gè)市場(chǎng),但大多數(shù)軟件開發(fā)無疑仍然是由編寫代碼的專業(yè)人員完成的。
從工具制造商的角度來看,缺乏興趣似乎令人困惑。更快的開發(fā)、更低的成本、更少的錯(cuò)誤、更容易的部署、托管的環(huán)境——為什么有人會(huì)拒絕這些烏托邦式的視覺工具制造商喜歡展示的東西?為什么這么多人寧愿繼續(xù)與困難的語(yǔ)言、復(fù)雜的錯(cuò)誤跟蹤和晦澀的環(huán)境設(shè)置作斗爭(zhēng)?
我一直在與開發(fā)人員交談,閱讀文章,并在討論論壇上搜索這些問題的答案,并整理了一些提出的原因。
這對(duì)他們的事業(yè)沒有幫助
學(xué)習(xí)低代碼工具可能需要大量的時(shí)間和精力投入,但學(xué)習(xí)特定的LC/NC工具幾乎沒有專業(yè)價(jià)值。即使在軟件開發(fā)公司很少使用LC/NC工具的情況下,下一個(gè)雇主也很可能不需要員工開發(fā)人員通過學(xué)習(xí)該工具獲得的技能。
大多數(shù)開發(fā)工作都需要對(duì)廣泛使用的語(yǔ)言和框架有深入的了解和經(jīng)驗(yàn),并且沒有像React、Angular、Python、Java或C#這樣廣泛使用的低代碼工具。
很少有開發(fā)工作需要了解LC/NC工具,而開發(fā)人員在知道LC/NC工具后找到更好工作或賺更多錢的可能性非常低。因此,開發(fā)人員最好花時(shí)間學(xué)習(xí)和完善就業(yè)市場(chǎng)上需求量很大的無數(shù)技能、框架和語(yǔ)言之一。
開發(fā)人員花了數(shù)年時(shí)間學(xué)習(xí)如何編寫代碼
在2021年 Stack Overflow開發(fā)者調(diào)查中,近70%的開發(fā)者聲稱他們擁有計(jì)算機(jī)科學(xué)或相關(guān)學(xué)科的學(xué)士學(xué)位或更高學(xué)位。這意味著大多數(shù)開發(fā)人員花費(fèi)數(shù)年時(shí)間學(xué)習(xí)編程、學(xué)習(xí)各種語(yǔ)言、系統(tǒng)架構(gòu),以及普遍練習(xí)和完善編寫代碼的藝術(shù)。使用LC/NC工具通常意味著放棄他們來之不易的經(jīng)驗(yàn)和投資所代表的優(yōu)勢(shì)。因此,大多數(shù)開發(fā)人員更愿意依靠他們已經(jīng)辛苦獲得的寶貴技能也就不足為奇了。
如果LC/NC工具確實(shí)兌現(xiàn)了它們的承諾,那么未來將不再需要編寫代碼來創(chuàng)建應(yīng)用程序。編程將移動(dòng)到更高的抽象級(jí)別,應(yīng)用程序?qū)默F(xiàn)有組件組裝而不是編碼。因此,程序員基本上威脅要通過使用和支持更多地使用LC/NC工具來使他們來之不易的技能變得多余。因此,LC/NC工具不成功實(shí)際上符合他們的利益。
開發(fā)人員不太關(guān)心速度
當(dāng)開發(fā)人員為軟件公司工作時(shí),他們通過交付具有特定特征的代碼獲得報(bào)酬。這些包括易于閱讀、可測(cè)試、結(jié)構(gòu)良好、可靠、高效、遵循標(biāo)準(zhǔn)等。維護(hù)中等復(fù)雜應(yīng)用程序的開發(fā)人員會(huì)明白確保代碼盡可能簡(jiǎn)單和易于理解的重要性。這些品質(zhì)對(duì)于代碼的可維護(hù)性至關(guān)重要。
代碼通常由更高級(jí)的程序員審查,他們也關(guān)心這些品質(zhì)并強(qiáng)調(diào)它們。與開發(fā)人員相比,他們可能對(duì)更快地完成工作更感興趣,但他們知道代碼錯(cuò)誤、效率低下、編寫晦澀難懂且難以擴(kuò)展是難以維護(hù)的。
這個(gè)糟糕的代碼會(huì)導(dǎo)致很多麻煩,并且會(huì)變得非常昂貴。雖然交付代碼的速度是相關(guān)的,但代碼的組織和編寫方式通常優(yōu)先于交付速度。
因此,向開發(fā)人員推銷LC/NC工具的開發(fā)速度實(shí)際上可能不會(huì)產(chǎn)生預(yù)期的影響。
開發(fā)人員喜歡編碼
人們是模糊的和情緒化的。他們有相互沖突的優(yōu)先事項(xiàng),經(jīng)常不確定、不準(zhǔn)確和撒謊。通常他們甚至不知道自己在做什么以及為什么要這樣做。人們可能會(huì)很困惑。計(jì)算機(jī)要簡(jiǎn)單得多。計(jì)算機(jī)只是按照程序員給出的指令進(jìn)行操作,如果這些指令不正確,程序就會(huì)失敗。定義一組任務(wù)并看到它們立即準(zhǔn)確地完成的精確度給了許多人一種安全感和快樂感。
編碼中有許多開發(fā)人員真正喜歡的創(chuàng)意元素。編程是一個(gè)非常復(fù)雜的謎題,充滿了腦筋急轉(zhuǎn)彎,跨越了幾十個(gè)模塊、多層和數(shù)千行代碼。單個(gè)Web應(yīng)用程序可以很容易地包含五種或更多不同的語(yǔ)言一起工作(例如HTML、JS、CSS、C#、SQL)。制作由聯(lián)鎖運(yùn)動(dòng)部件組成的復(fù)雜物體,并觀察它們?cè)谖⒚畹难h(huán)中工作,因?yàn)樗鼈儼l(fā)揮了內(nèi)置邏輯的后果,這可能會(huì)令人著迷,并帶來強(qiáng)烈的成就感。
軟件存在的原因是為了讓生活更輕松,我們從根本上構(gòu)建軟件來幫助人們做得更好。一旦你知道如何編寫代碼——用任何語(yǔ)言——你就可以構(gòu)建任何你能想象到的東西。想象一些東西然后從無到有創(chuàng)造它是一種快樂,尤其是當(dāng)它對(duì)他人有用并讓他們快樂時(shí)。
開發(fā)人員不會(huì)選擇技術(shù)堆棧
開發(fā)人員在項(xiàng)目中停留的時(shí)間越長(zhǎng),他們?cè)跀U(kuò)展應(yīng)用程序方面就越好,他們?cè)诎l(fā)現(xiàn)和解決問題方面的效率就越高。當(dāng)開發(fā)人員離職時(shí),他們通常會(huì)隨身攜帶有關(guān)應(yīng)用程序復(fù)雜細(xì)節(jié)的深入了解。這種知識(shí)很難重新獲得,當(dāng)這些員工被替換時(shí),他們支持的應(yīng)用程序往往會(huì)進(jìn)入不穩(wěn)定階段,有時(shí)甚至?xí)萑牖靵y。因此,盡管軟件公司對(duì)穩(wěn)定性很感興趣,但軟件開發(fā)人員通常只在一個(gè)雇主那里呆幾年。
軟件公司用來減輕知識(shí)損失的一種策略是使用在開發(fā)人員社區(qū)中廣泛使用和眾所周知的技術(shù)。使用眾所周知的堆??梢愿菀椎卣业接屑寄艿娜藖砉陀谩K€可以幫助這些人了解使用他們構(gòu)建的應(yīng)用程序的來龍去脈。開發(fā)人員可能是決定將哪些技術(shù)用于項(xiàng)目的影響者,但通常是高級(jí)工程師甚至管理層使用這些標(biāo)準(zhǔn)來決定堆棧。因此,向開發(fā)人員推銷LC/NC工具可能會(huì)錯(cuò)失良機(jī)。
押注工具是有風(fēng)險(xiǎn)的
客戶往往很難確定他們將來可能會(huì)在哪里申請(qǐng)。這是可以理解的,因?yàn)槲磥砗茈y預(yù)測(cè)。因此,應(yīng)用程序所有者需要適應(yīng)不斷變化的需求,以確保應(yīng)用程序的商業(yè)成功。這通常意味著修改商業(yè)模式并改變支持這種模式的技術(shù)。經(jīng)驗(yàn)豐富的開發(fā)人員知道這一點(diǎn),并且喜歡構(gòu)建能夠適應(yīng)未來不斷變化的需求的開放系統(tǒng)。創(chuàng)建這種適應(yīng)性強(qiáng)的系統(tǒng)的最佳方法是使用支持良好的語(yǔ)言和框架對(duì)其進(jìn)行編碼。
許多 LC/NC工具都是新的、不成熟的,并且具有很大的技術(shù)限制。這些限制通常不會(huì)被宣傳,而且通常也只是很少記錄。軟件公司真正找到這些限制的唯—方法是嘗試一個(gè)工具并構(gòu)建一個(gè)真正的應(yīng)用程序。大多數(shù)限制只有在投入大量時(shí)間和精力后才會(huì)變得明顯。軟件開發(fā)既昂貴又冒險(xiǎn),而這些未知因素進(jìn)一步增加了開發(fā)人員、軟件公司及其客戶的風(fēng)險(xiǎn)。
鎖定交易
許多平臺(tái)不允許將該平臺(tái)中構(gòu)建的應(yīng)用程序?qū)С鰹橥ㄓ玫?、可編輯的格式。他們鎖定應(yīng)用程序,從而要么將開發(fā)人員綁定到平臺(tái),要么要求他們從頭開始重建他們的應(yīng)用程序。考慮到未來的需求是不確定的,而且 LC/NC 工具的局限性通常會(huì)一直隱藏到項(xiàng)目的后期,因此開發(fā)人員可能會(huì)非常警惕被鎖定也就不足為奇了。
LC/NC過去曾多次失敗
可視化開發(fā)工具并不新鮮。視覺發(fā)展的早期嘗試已經(jīng)在50年前進(jìn)行。從那時(shí)起,大量好的和壞的可視化開發(fā)環(huán)境和平臺(tái)來來去去,但它們都沒有對(duì)應(yīng)用程序的創(chuàng)建方式產(chǎn)生重大影響。
任何押注任何這些工具、投入時(shí)間和精力來學(xué)習(xí)它們并說服客戶在其中任何一個(gè)上構(gòu)建項(xiàng)目的人都輸了。這段歷史表明,我們今天遇到的任何工具都不太可能在十年后仍然存在。許多開發(fā)人員可能會(huì)仔細(xì)考慮這些事實(shí),并認(rèn)為L(zhǎng)C/NC是一條死胡同。
怎么辦?
那么,LC/NC是失敗的原因嗎?在嚴(yán)肅的軟件開發(fā)世界中是否沒有LC/NC的位置?LC/NC工具制造商能否以某種方式克服這些障礙并激勵(lì)更多開發(fā)人員使用LC/NC產(chǎn)品?
由于對(duì) LC/NC工具和宣傳它們的營(yíng)銷傳播缺乏信任,許多開發(fā)人員更喜歡代碼。為了說服任何專業(yè)人士使用LC/NC平臺(tái),平臺(tái)制造商要求開發(fā)人員信任他們。為了建立這種信任,工具制造商最好聽取開發(fā)人員和軟件公司提出的擔(dān)憂,并在規(guī)劃平臺(tái)功能和與目標(biāo)群體溝通時(shí)將其考慮在內(nèi)。
誠(chéng)實(shí)和真實(shí)地披露功能限制、發(fā)布克服限制的方法、拉平平臺(tái)的學(xué)習(xí)曲線以及允許將應(yīng)用程序?qū)С鰹榭删庉嫺袷?,雖然它們可能無法說服所有開發(fā)人員,但它們朝著正確的方向邁出了一步。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。