都快2022年了,為什么軟件項目還要求廠商交付源代碼?
千行代碼萬行愁,
一行注釋思千秋。
若讓我知誰人寫,
定然讓他斷雙手。
——佚名
這是筆者最近5G沖浪時看到的一首打油詩,用語文老師的套路來解讀就是:這首詩通過夸張的比擬手法,深刻地體現(xiàn)了詩人對于代碼維護的深惡痛絕之情。
如題所述,為什么甲方驗收項目堅持要交付源代碼?要到源碼就能高枕無憂了嗎?如何理性看待代碼的商業(yè)價值?
為什么甲方要求交付源代碼?
軟件的交付就像是交付一棟建好的房子,那么建筑圖紙、布線圖什么都需要一并交付,以便房子的后期維護。在軟件項目中,源代碼就好比這些建筑圖紙,項目驗收時交付源代碼以便于甲方后續(xù)對軟件進行維護。
對于軟件交付這種交鑰匙工程,客戶認為掌握源代碼就掌握了軟件主動權(quán)的鑰匙,未來有新的需求變更可以自己修改代碼來適應(yīng),不需要再付高昂的維護費用。
另外甲方會認為源代碼是軟件的核心價值,是原創(chuàng)標識,屬于擁有者的知識產(chǎn)權(quán)。源代碼上交后,有一定能力的甲方還能將代碼二次修改后成為自己的東西,申請軟著陳列在公司的榮譽柜里,或者自己接單繼續(xù)做第二三個項目。
小編就聽過一個電信軟件供應(yīng)商的A公司的朋友提到一個故事,當(dāng)時國內(nèi)開始推廣虛擬運營商,某電商巨頭J拿了工信部牌照,采購了A司的少量license的電信計費系統(tǒng)后并要求上繳所有的源代碼。A司認為虛擬運營商在國內(nèi)藍海一片,愉快地簽了合同。結(jié)果J司利用上繳的源代碼重構(gòu)了計費系統(tǒng),第二年A上門收授權(quán)費時將A司一腳踢出門。
除了以上兩種情況,在中國還有一種特殊情況,就是一些涉密行業(yè)的政策要求,對安全性要求很高的企業(yè)會掃描源代碼來保障軟件系統(tǒng)的整體合規(guī)性。
總結(jié)來說,甲方要源代碼無非是為了自主可控、持續(xù)二開、安全合規(guī)。這么看來,只要合同中有相關(guān)條款,交付源代碼合情合理,一本萬利。
事實真是如此嗎?
想實現(xiàn)“軟件開發(fā)自由”,不能高估源代碼的作用
來看一個源于生活的段子,說國內(nèi)大廠的代碼不愿意開放的重要原因是寫得太爛了,一旦開源,就沒人敢用他們的產(chǎn)品。這告訴我們,互聯(lián)網(wǎng)上已經(jīng)有許多非常優(yōu)秀的像Linux的開源代碼,千萬不要高估自己或別人寫的代碼真的有巨大的“商業(yè)價值”。
政策說變就變,項目交付的時候還是二胎政策,剛交付完三胎政策開放了,需要加個流程。
領(lǐng)導(dǎo)把這個需求傳遞給開發(fā)經(jīng)理,你想想辦法把乙方代碼改改用,下個月上線。
但如果單純指望擁有源代碼就能實現(xiàn)“軟件開發(fā)自由”、可以為所欲為,恐怕要失望了。
前面也說了,軟件開發(fā)就像建房子,代碼就好比蓋房子用的磚,當(dāng)磚的質(zhì)量不好,建造出來的系統(tǒng)的穩(wěn)定性和可靠性都不能保證。我們要面對一個現(xiàn)實,有些公司為了趕項目進度其實交付的代碼質(zhì)量一般,程序員在寫代碼的時候也不會太多考慮復(fù)用的問題。
并不是所有公司都能提交出完全標準化的產(chǎn)品,甲方最終驗收的也只是功能測試、性能測試,代碼質(zhì)量這一項無從考證。所以即使不情愿,也必須承認,乙方交付的代碼能正常運行,且不出錯,那就是牛x,不要指望質(zhì)量有多高。
另外,交付源代碼對乙方來說也有“砸自己飯碗”的風(fēng)險,如果客戶完全有能力自己維護、開發(fā)軟件了,還找你干嘛。在不情不愿又不得不交付源碼的這件事上,國內(nèi)某論壇上祭出了“給一部分,他們只有一部分代碼是沒有太大用處的”、“給一些版本有誤的”、“源代碼文檔給個簡單點的”這樣的建議。
千行代碼萬行愁,一行注釋思千秋。
這樣交付的代碼有多難維護?這里引用看過的另一個帖子:程序員被公司辭退都12天了,原團隊沒人能接手他寫的代碼,前領(lǐng)導(dǎo)要求他回公司講清楚代碼,員工回復(fù):一次一萬。
自己團隊產(chǎn)出的代碼都沒法接手,更別提是別人寫出來的代碼了。舊代碼不易測試、無法保證新代碼的正確性、或者改一個新需求引入舊功能報錯...這些也會給系統(tǒng)帶來極大的不穩(wěn)定性。
修改乙方代碼費時費力,實際能給甲方帶來多少自主可控的空間?
這個問題很難答上來,爛代碼本身就不是一個可以簡單的可衡量的東西,沒有可評估性。
最后,放大一點格局,交付源代碼不利于軟件行業(yè)的標準化發(fā)展。
把目光脫離源代碼本身,來看看整個軟件行業(yè)。2020年,SaaS在中國公有云中的占比僅為25.5%,遠低于SaaS在美國公有云中的占比67.1%。
我們知道,軟件的標準化將大大降低應(yīng)用軟件的總擁有成本(TCO),提高整個行業(yè)的效率。而國內(nèi)由于市場競爭激烈、甲方客戶對產(chǎn)品功能需求模糊、多變等原因,項目上定制化代碼的占比越來越高,軟件行業(yè)的標準化之路可謂說是任重道遠。
軟件廠商面臨著大客戶復(fù)雜的定制需求與高昂的人工成本,根本無暇顧及提升代碼質(zhì)量,打造標準化產(chǎn)品。
不需要源代碼,依然可以實現(xiàn)自主可控
前面說了那么多,好像交付源代碼是甲方原罪,都嚴重到影響中國軟件業(yè)的標準化發(fā)展了。甲方爸爸何其無辜,他們只是想要自主可控而已啊!他們有什么錯!
如果短期內(nèi)無法解決代碼質(zhì)量的問題,拿到源代碼進行二次開發(fā)不過是戴著腳鏈跳舞,想實現(xiàn)自主可控也不是只有源代碼這一條路,我們逃避寫代碼不就可以了嗎?逃避雖然可恥但有用。
試想一下,如果有這樣的一個平臺,平臺將企業(yè)級軟件中的各類元素,包括表單、導(dǎo)航、視圖、菜單等高度抽象成一個個可拖拽的組件,用戶無需寫代碼即可構(gòu)建出企業(yè)級的應(yīng)用,用來交付產(chǎn)品和項目,大大降低了開發(fā)的復(fù)雜度。更重要的是,構(gòu)建出來的應(yīng)用和寫代碼生成的應(yīng)用一樣可以通過甲方的功能測試和性能測試。
這樣的平臺,竟然真有廠商給做出來了,還是純國產(chǎn)的——企業(yè)級無代碼軟件平臺Smartdata。
使用Smartdata開發(fā)的軟件項目在驗收后,乙方無需交接代碼,構(gòu)建出來的應(yīng)用作為標準化產(chǎn)品沉淀為企業(yè)資產(chǎn),實現(xiàn)同類項目的規(guī)?;膹?fù)制交付;甲方無需接收和重構(gòu)代碼,透過平臺“所見即所得”的應(yīng)用構(gòu)建界面,即可完成二次功能調(diào)整,非常方便,工作效率提升數(shù)倍, 甲乙方關(guān)系迅速升溫。
實現(xiàn)了自主可控、持續(xù)二開之后,問題又來了:交付的應(yīng)用能滿足涉密企業(yè)的安全需求嗎?能申請軟著嗎?
企業(yè)級無代碼三把斧
1. 可以申請軟著
通過企業(yè)級無代碼平臺Smartdata構(gòu)建的應(yīng)用包含了設(shè)計者和搭建者的知識與智慧,毫無疑問創(chuàng)作者(自然人和法人)都享有著作權(quán),是可以申請軟件著作權(quán)的。著作權(quán)保護的是指用戶在平臺基礎(chǔ)上構(gòu)筑的應(yīng)用部分,而不包含平臺本身。這就像通過Office創(chuàng)作小說的作家,只享有小說的知識產(chǎn)權(quán),而不享有Office軟件的著作權(quán)。
為配合無代碼平臺用戶申請軟件著作權(quán)的工作,Smartdata方面表示可以為簽約用戶在申請軟件著作權(quán)時,提供相關(guān)的申請材料。
以上為平臺用戶申請軟著中的軟件應(yīng)用(使用無代碼平臺構(gòu)建)
2.滿足安全合規(guī)要求
在安全合規(guī)這方面,事實上可能與想得不太一樣,無代碼平臺深受涉密企業(yè)的青睞。正是因為行業(yè)保密性和安全性要求極高,參與開發(fā)的外部人員越少安全泄漏風(fēng)險越小。而無代碼平臺交付的產(chǎn)品,相關(guān)用戶可自行調(diào)整內(nèi)部需求,進行快速迭代,避免過多外部人員長期介入,大大提高系統(tǒng)的安全性。
3. 造福甲乙雙方
使用無代碼平臺對于軟件廠商(乙方)的收益顯而易見,規(guī)?;捻椖繌?fù)制,可以比傳統(tǒng)開發(fā)方式更加省時省力降成本,幫助企業(yè)快速擴張、占領(lǐng)市場。同時骨干的開發(fā)人員可以安排去做更高價值的事情,聚焦行業(yè)領(lǐng)域模型,投入新產(chǎn)品的創(chuàng)新,實現(xiàn)業(yè)務(wù)增長。
至于無代碼平臺對于甲方的價值,還是拿三胎政策的例子,需要添加三胎申請頁面、審批流程、校驗邏輯來算個賬:
沒有一勞永逸的成功。筆者不認為交付源代碼是原罪,只是如果換個思路能給乙方更多利潤空間,給甲方更多自主權(quán)利,能為當(dāng)下的IT行業(yè)提供更強大的生產(chǎn)力,何不保持思想煥新、付諸實踐試一下呢。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責(zé)任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )