數(shù)睿數(shù)據(jù)深度 | 關(guān)于軟件自主可控,源代碼向左,無代碼向右

都快2022年了,為什么軟件項(xiàng)目還要求廠商交付源代碼?

千行代碼萬行愁,

一行注釋思千秋。

若讓我知誰人寫,

定然讓他斷雙手。

——佚名

這是筆者最近5G沖浪時(shí)看到的一首打油詩(shī),用語文老師的套路來解讀就是:這首詩(shī)通過夸張的比擬手法,深刻地體現(xiàn)了詩(shī)人對(duì)于代碼維護(hù)的深惡痛絕之情。

如題所述,為什么甲方驗(yàn)收項(xiàng)目堅(jiān)持要交付源代碼?要到源碼就能高枕無憂了嗎?如何理性看待代碼的商業(yè)價(jià)值?

為什么甲方要求交付源代碼?

軟件的交付就像是交付一棟建好的房子,那么建筑圖紙、布線圖什么都需要一并交付,以便房子的后期維護(hù)。在軟件項(xiàng)目中,源代碼就好比這些建筑圖紙,項(xiàng)目驗(yàn)收時(shí)交付源代碼以便于甲方后續(xù)對(duì)軟件進(jìn)行維護(hù)。

對(duì)于軟件交付這種交鑰匙工程,客戶認(rèn)為掌握源代碼就掌握了軟件主動(dòng)權(quán)的鑰匙,未來有新的需求變更可以自己修改代碼來適應(yīng),不需要再付高昂的維護(hù)費(fèi)用。

另外甲方會(huì)認(rèn)為源代碼是軟件的核心價(jià)值,是原創(chuàng)標(biāo)識(shí),屬于擁有者的知識(shí)產(chǎn)權(quán)。源代碼上交后,有一定能力的甲方還能將代碼二次修改后成為自己的東西,申請(qǐng)軟著陳列在公司的榮譽(yù)柜里,或者自己接單繼續(xù)做第二三個(gè)項(xiàng)目。

小編就聽過一個(gè)電信軟件供應(yīng)商的A公司的朋友提到一個(gè)故事,當(dāng)時(shí)國(guó)內(nèi)開始推廣虛擬運(yùn)營(yíng)商,某電商巨頭J拿了工信部牌照,采購(gòu)了A司的少量license的電信計(jì)費(fèi)系統(tǒng)后并要求上繳所有的源代碼。A司認(rèn)為虛擬運(yùn)營(yíng)商在國(guó)內(nèi)藍(lán)海一片,愉快地簽了合同。結(jié)果J司利用上繳的源代碼重構(gòu)了計(jì)費(fèi)系統(tǒng),第二年A上門收授權(quán)費(fèi)時(shí)將A司一腳踢出門。

除了以上兩種情況,在中國(guó)還有一種特殊情況,就是一些涉密行業(yè)的政策要求,對(duì)安全性要求很高的企業(yè)會(huì)掃描源代碼來保障軟件系統(tǒng)的整體合規(guī)性。

總結(jié)來說,甲方要源代碼無非是為了自主可控、持續(xù)二開、安全合規(guī)。這么看來,只要合同中有相關(guān)條款,交付源代碼合情合理,一本萬利。

事實(shí)真是如此嗎?

想實(shí)現(xiàn)“軟件開發(fā)自由”,不能高估源代碼的作用

來看一個(gè)源于生活的段子,說國(guó)內(nèi)大廠的代碼不愿意開放的重要原因是寫得太爛了,一旦開源,就沒人敢用他們的產(chǎn)品。這告訴我們,互聯(lián)網(wǎng)上已經(jīng)有許多非常優(yōu)秀的像Linux的開源代碼,千萬不要高估自己或別人寫的代碼真的有巨大的“商業(yè)價(jià)值”。

政策說變就變,項(xiàng)目交付的時(shí)候還是二胎政策,剛交付完三胎政策開放了,需要加個(gè)流程。

領(lǐng)導(dǎo)把這個(gè)需求傳遞給開發(fā)經(jīng)理,你想想辦法把乙方代碼改改用,下個(gè)月上線。

但如果單純指望擁有源代碼就能實(shí)現(xiàn)“軟件開發(fā)自由”、可以為所欲為,恐怕要失望了。

前面也說了,軟件開發(fā)就像建房子,代碼就好比蓋房子用的磚,當(dāng)磚的質(zhì)量不好,建造出來的系統(tǒng)的穩(wěn)定性和可靠性都不能保證。我們要面對(duì)一個(gè)現(xiàn)實(shí),有些公司為了趕項(xiàng)目進(jìn)度其實(shí)交付的代碼質(zhì)量一般,程序員在寫代碼的時(shí)候也不會(huì)太多考慮復(fù)用的問題。

數(shù)睿數(shù)據(jù)深度

并不是所有公司都能提交出完全標(biāo)準(zhǔn)化的產(chǎn)品,甲方最終驗(yàn)收的也只是功能測(cè)試、性能測(cè)試,代碼質(zhì)量這一項(xiàng)無從考證。所以即使不情愿,也必須承認(rèn),乙方交付的代碼能正常運(yùn)行,且不出錯(cuò),那就是牛x,不要指望質(zhì)量有多高。

數(shù)睿數(shù)據(jù)深度

另外,交付源代碼對(duì)乙方來說也有“砸自己飯碗”的風(fēng)險(xiǎn),如果客戶完全有能力自己維護(hù)、開發(fā)軟件了,還找你干嘛。在不情不愿又不得不交付源碼的這件事上,國(guó)內(nèi)某論壇上祭出了“給一部分,他們只有一部分代碼是沒有太大用處的”、“給一些版本有誤的”、“源代碼文檔給個(gè)簡(jiǎn)單點(diǎn)的”這樣的建議。

千行代碼萬行愁,一行注釋思千秋。

這樣交付的代碼有多難維護(hù)?這里引用看過的另一個(gè)帖子:程序員被公司辭退都12天了,原團(tuán)隊(duì)沒人能接手他寫的代碼,前領(lǐng)導(dǎo)要求他回公司講清楚代碼,員工回復(fù):一次一萬。

自己團(tuán)隊(duì)產(chǎn)出的代碼都沒法接手,更別提是別人寫出來的代碼了。舊代碼不易測(cè)試、無法保證新代碼的正確性、或者改一個(gè)新需求引入舊功能報(bào)錯(cuò)...這些也會(huì)給系統(tǒng)帶來極大的不穩(wěn)定性。

修改乙方代碼費(fèi)時(shí)費(fèi)力,實(shí)際能給甲方帶來多少自主可控的空間?

這個(gè)問題很難答上來,爛代碼本身就不是一個(gè)可以簡(jiǎn)單的可衡量的東西,沒有可評(píng)估性。

最后,放大一點(diǎn)格局,交付源代碼不利于軟件行業(yè)的標(biāo)準(zhǔn)化發(fā)展。

把目光脫離源代碼本身,來看看整個(gè)軟件行業(yè)。2020年,SaaS在中國(guó)公有云中的占比僅為25.5%,遠(yuǎn)低于SaaS在美國(guó)公有云中的占比67.1%。

我們知道,軟件的標(biāo)準(zhǔn)化將大大降低應(yīng)用軟件的總擁有成本(TCO),提高整個(gè)行業(yè)的效率。而國(guó)內(nèi)由于市場(chǎng)競(jìng)爭(zhēng)激烈、甲方客戶對(duì)產(chǎn)品功能需求模糊、多變等原因,項(xiàng)目上定制化代碼的占比越來越高,軟件行業(yè)的標(biāo)準(zhǔn)化之路可謂說是任重道遠(yuǎn)。

軟件廠商面臨著大客戶復(fù)雜的定制需求與高昂的人工成本,根本無暇顧及提升代碼質(zhì)量,打造標(biāo)準(zhǔn)化產(chǎn)品。

不需要源代碼,依然可以實(shí)現(xiàn)自主可控

前面說了那么多,好像交付源代碼是甲方原罪,都嚴(yán)重到影響中國(guó)軟件業(yè)的標(biāo)準(zhǔn)化發(fā)展了。甲方爸爸何其無辜,他們只是想要自主可控而已啊!他們有什么錯(cuò)!

如果短期內(nèi)無法解決代碼質(zhì)量的問題,拿到源代碼進(jìn)行二次開發(fā)不過是戴著腳鏈跳舞,想實(shí)現(xiàn)自主可控也不是只有源代碼這一條路,我們逃避寫代碼不就可以了嗎?逃避雖然可恥但有用。

試想一下,如果有這樣的一個(gè)平臺(tái),平臺(tái)將企業(yè)級(jí)軟件中的各類元素,包括表單、導(dǎo)航、視圖、菜單等高度抽象成一個(gè)個(gè)可拖拽的組件,用戶無需寫代碼即可構(gòu)建出企業(yè)級(jí)的應(yīng)用,用來交付產(chǎn)品和項(xiàng)目,大大降低了開發(fā)的復(fù)雜度。更重要的是,構(gòu)建出來的應(yīng)用和寫代碼生成的應(yīng)用一樣可以通過甲方的功能測(cè)試和性能測(cè)試。

這樣的平臺(tái),竟然真有廠商給做出來了,還是純國(guó)產(chǎn)的——企業(yè)級(jí)無代碼軟件平臺(tái)Smartdata。

使用Smartdata開發(fā)的軟件項(xiàng)目在驗(yàn)收后,乙方無需交接代碼,構(gòu)建出來的應(yīng)用作為標(biāo)準(zhǔn)化產(chǎn)品沉淀為企業(yè)資產(chǎn),實(shí)現(xiàn)同類項(xiàng)目的規(guī)?;膹?fù)制交付;甲方無需接收和重構(gòu)代碼,透過平臺(tái)“所見即所得”的應(yīng)用構(gòu)建界面,即可完成二次功能調(diào)整,非常方便,工作效率提升數(shù)倍, 甲乙方關(guān)系迅速升溫。

實(shí)現(xiàn)了自主可控、持續(xù)二開之后,問題又來了:交付的應(yīng)用能滿足涉密企業(yè)的安全需求嗎?能申請(qǐng)軟著嗎?

企業(yè)級(jí)無代碼三把斧

1. 可以申請(qǐng)軟著

通過企業(yè)級(jí)無代碼平臺(tái)Smartdata構(gòu)建的應(yīng)用包含了設(shè)計(jì)者和搭建者的知識(shí)與智慧,毫無疑問創(chuàng)作者(自然人和法人)都享有著作權(quán),是可以申請(qǐng)軟件著作權(quán)的。著作權(quán)保護(hù)的是指用戶在平臺(tái)基礎(chǔ)上構(gòu)筑的應(yīng)用部分,而不包含平臺(tái)本身。這就像通過Office創(chuàng)作小說的作家,只享有小說的知識(shí)產(chǎn)權(quán),而不享有Office軟件的著作權(quán)。

為配合無代碼平臺(tái)用戶申請(qǐng)軟件著作權(quán)的工作,Smartdata方面表示可以為簽約用戶在申請(qǐng)軟件著作權(quán)時(shí),提供相關(guān)的申請(qǐng)材料。

數(shù)睿數(shù)據(jù)深度

以上為平臺(tái)用戶申請(qǐng)軟著中的軟件應(yīng)用(使用無代碼平臺(tái)構(gòu)建)

2.滿足安全合規(guī)要求

在安全合規(guī)這方面,事實(shí)上可能與想得不太一樣,無代碼平臺(tái)深受涉密企業(yè)的青睞。正是因?yàn)樾袠I(yè)保密性和安全性要求極高,參與開發(fā)的外部人員越少安全泄漏風(fēng)險(xiǎn)越小。而無代碼平臺(tái)交付的產(chǎn)品,相關(guān)用戶可自行調(diào)整內(nèi)部需求,進(jìn)行快速迭代,避免過多外部人員長(zhǎng)期介入,大大提高系統(tǒng)的安全性。

3. 造福甲乙雙方

使用無代碼平臺(tái)對(duì)于軟件廠商(乙方)的收益顯而易見,規(guī)?;捻?xiàng)目復(fù)制,可以比傳統(tǒng)開發(fā)方式更加省時(shí)省力降成本,幫助企業(yè)快速擴(kuò)張、占領(lǐng)市場(chǎng)。同時(shí)骨干的開發(fā)人員可以安排去做更高價(jià)值的事情,聚焦行業(yè)領(lǐng)域模型,投入新產(chǎn)品的創(chuàng)新,實(shí)現(xiàn)業(yè)務(wù)增長(zhǎng)。

至于無代碼平臺(tái)對(duì)于甲方的價(jià)值,還是拿三胎政策的例子,需要添加三胎申請(qǐng)頁(yè)面、審批流程、校驗(yàn)邏輯來算個(gè)賬:

數(shù)睿數(shù)據(jù)深度

沒有一勞永逸的成功。筆者不認(rèn)為交付源代碼是原罪,只是如果換個(gè)思路能給乙方更多利潤(rùn)空間,給甲方更多自主權(quán)利,能為當(dāng)下的IT行業(yè)提供更強(qiáng)大的生產(chǎn)力,何不保持思想煥新、付諸實(shí)踐試一下呢。

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )