在《計算機軟件相關的知識產權合規問題(上)》中,我們已經初步總結了關于通用軟件的盜版或正版化的問題。下篇我們將主要聚焦定制化軟件的“軟件開發合同”相關問題,以及因“軟件代碼抄襲或剽竊”引發的著作權侵權和商業秘密侵權問題,以期為企業提供實操指引與合規思路。
與上篇中討論的標準化通用軟件有所不同,定制化軟件通常是以軟件開發項目的方式為用戶提供個性化的軟件定制解決方案,這種個性化的定制需要技術人員根據企業的具體需求來開發相應軟件模塊,以便更好地與企業的工作流程、服務需求或特定設備相適應。在軟件開發項目中,企業會參與軟件的邏輯框架和功能模塊的設計,以及源代碼的開發和目標代碼的編譯和運行等。因此,定制化軟件通常涉及軟件開發階段的合同糾紛,以及軟件代碼抄襲或剽竊產生的著作權侵權和商業秘密侵權問題。
在軟件開發項目中,一般需要訂立書面的技術合同。因知識產權的特殊性,技術合同的相關法律規定與傳統買賣合同有顯著差異。很多企業對技術合同的相關法律規定不熟悉,不清楚何為委托開發、合作開發,也不清楚各開發模式下當事人的法定權利義務,對很多重要事項僅憑刻板印象想當然,而未在合同中明確約定,導致重要條款缺失或約定不清,成為引發糾紛的最主要的原因。另外,軟件開發周期較長,大型軟件的開發可能歷經一年甚至更長的時間,在開發過程中,根據客觀情況和需求的改變,雙方可能會對軟件需求、驗收標準等內容進行修改,使得最終軟件的交付與最初合同約定的交付內容、時間和方式存在顯著差異,但企業往往因證據意識薄弱,未妥善保存軟件開發過程中對重要內容作出修改的溝通記錄,導致產生糾紛。下文中,我們首先對軟件開發過程中所涉及的兩種主要模式,即委托開發和合作開發的相關法律規定進行簡要介紹,然后將結合實踐經驗,對技術合同中的重要事項及條款進行梳理,指出實踐中的常見風險和誤區,并提供應對建議,以期幫助企業順利推進軟件開發進程并且有效避免糾紛。(1)關于委托開發和合作開發
定制化軟件的開發主要分為委托開發和合作開發兩種模式[1]。在兩種模式下,法律均給予了當事人較大的意思自治空間,雙方可以就開發過程中各自承擔的工作、技術成果的歸屬和使用等做出約定。如果未做約定或者約定不清楚,則分別按照委托開發和合作開發模式下的法定規則執行。因此,企業有必要了解和掌握委托開發和合作開發的相關法律規定。● 委托開發
委托開發是指開發方基于委托方的委托進行軟件開發,委托方一般僅負責提供開發需求、資金、設備等物質條件或者承擔輔助協作事項;而開發方是承擔實質性開發工作的一方,負責制定和實施研究開發計劃,按期完成開發工作,交付開發成果,提供有關技術資料和必要的技術指導,幫助委托人掌握開發成果。在委托開發中,如委托合同未作明確約定或者沒有訂立合同的,著作權屬于受托人[2]。委托人可在約定的使用范圍內享有使用作品的權利,若雙方沒有約定使用作品的范圍,委托人可以在委托創作的特定目的范圍內免費使用該作品。[3]在實踐中,企業經常會委托軟件開發公司開發軟件,由企業提供資金和需求,由軟件開發公司負責開發工作。按照傳統買賣合同的邏輯,企業通常會認為,開發的軟件理所應當歸企業單獨所有,而軟件開發公司除收取約定報酬外不再享有其他權利。但是,在知識產權的法律框架下,法律傾向于保護付出智力勞動的一方,而不是提供物質支持的一方。因此,如果企業與軟件開發公司未在委托開發合同中明確約定,那么開發的軟件將歸軟件開發公司所有,企業僅可在約定的范圍內(例如約定的地域、期限、用途)免費使用。如果后續出現業務擴張、軟件升級、在集團內部的其他關聯公司需要同步使用的情況,企業對軟件的使用很有可能超出當初約定的范圍,此時則需要重新獲得軟件開發公司的許可,否則可能構成著作權侵權。為避免這種被動局面,企業可以根據自身情況在委托開發合同中約定軟件的權屬,具體將在下文中詳細闡述。● 合作開發
合作開發是指雙方基于共同的創作意愿,均需要分別投入資金、人員或技術,通過技術投資、分工參與、協作配合等方式,共同參與軟件的開發過程。[4]在合作開發中,軟件著作權由合作方共同享有。合作作品的著作權由合作作者協商一致行使。如果雙方不能協商一致,又無正當理由的情況下,任何一方不得阻止他方行使除轉讓、許可他人專有使用、出質以外的其他權利,但是所得收益應當合理分配給所有合作作者。[5]在權利共有的情況下,權利人對軟件的后續使用會受到其他權利人的限制,尤其涉及到轉讓、許可他人專有使用的情況,需要征得全部共有人的同意。在實踐中,在合作開發的初期,雙方的創作意愿、合作、分工相對容易達成一致,但隨著各自商業布局的發展,對軟件的后續使用方式很難長期保持步調一致,非常容易產生分歧。在筆者處理的一起案件中,A公司與B公司合作開發了一款金融軟件,兩者為共同權利人,后A公司參與了某政府項目,需要在全國范圍內獨家運營該金融軟件并對其進行升級及維護,雖最終經過談判B公司同意由A公司獨家運營,但A公司也付出了額外的代價。因此,建議企業提前規劃好未來的發展和可能遇到的問題,評估共有權利的情況下,是否會限制企業發展以及潛在的業務機會。(2)軟件開發合同中的關鍵條款
● 權利歸屬
如上所述,開發成果的權利歸屬直接決定雙方今后對軟件享有的權益,對軟件后續的使用、許可、轉讓、二次開發等有重要影響。在委托開發和合作開發兩種模式下,法律均給予了當事人較大的意思自治空間,企業應當對軟件的權屬進行明確約定。首先,無論是委托開發還是合作開發,對企業最有利的方案是約定軟件歸企業單獨所有,同時可以結合企業自身的業務發展方向,約定允許另一方使用軟件的權限及范圍。此時,企業對軟件的后續使用有較大的自主權,對相關業務的發展限制較小。其次,如果約定雙方共同享有軟件著作權時,著作權由共有權利人協商一致行使,軟件的后續使用在很大程度上會受到其他權利人的限制。雖然法律規定,如果雙方不能協商一致,又無正當理由的情況下,任何一方不得阻止他方行使除轉讓、許可他人專有使用、出質以外的其他權利,但是對于何種情況為“無正當理由”并無明確規定,在實踐中也很難判斷何為“正當理由”。因此,建議在合作初期就約定各方行使各項權利的前提條件,并約定如果無法協商一致的情況下的解決機制。● 軟件開發需求及其細化、增加與變更
軟件作為開發合同的標的,相應軟件需求的清晰與完整程度決定了合同目的是否能夠最終實現。在簽訂合同時,雙方應當確定待開發軟件的功能需求,對其進行詳細說明并將其作為合同附件,例如,軟件需要包含哪些功能模塊,需要與哪些業務系統進行適配和對接,需要處理的數據量等等。如果合同未約定或約定不明確,雙方可能會對軟件的具體功能或者開發范圍的理解產生爭議。在實踐中,可先從用戶界面的設計入手,通過用戶界面,可以初步確定軟件的交互方式、實現功能、操作邏輯、運行過程和輸出結果等。書面確定用戶界面設計之后,受托方再進行具體開發工作,避免雙方對軟件需求的理解產生分歧。此外,隨著開發的不斷推進以及雙方溝通的不斷深入,最初約定的功能需求會不斷細化,有可能產生軟件功能的刪減、增加或變更的情況,也可能導致開發周期的延長或者開發費用的增加。在實踐中,企業往往因證據意識薄弱,未妥善保存軟件開發過程中對重要內容做出修改的溝通記錄,無法證明需求的變更是由委托方提出的還是由受托方的失誤導致的,從而引發糾紛。為此,企業應當明確指定雙方的聯絡人,并將溝通等過程中的聊天記錄、郵件、電話、短信等記錄妥善保存;當涉及合同重要事項的變更時,建議另行簽訂補充協議,以書面形式進行確認。● 軟件的交付
軟件開發項目的交付范圍包括軟件程序本身(源程序和目標程序)、與程序配套的程序設計說明書、流程圖、用戶手冊等文件,以及用戶界面的設計等。需要說明的是,如果企業計劃對開發的軟件進行功能調整、后續升級或二次開發,則需要在合同中明確約定交付范圍也包括源程序,以避免在是否需要交付源代碼的問題上產生爭議。此外,關于軟件交付的方式,通常開發方會在自己的服務器上進行開發,軟件交付方式可以包括通過交付軟件安裝包以及相關文檔方式,或者提供鏈接地址、用戶名及密碼等方式、由委托方自行下載。在實踐中,當約定的交付期限結束后,開發方可能會將相關文件從服務器中刪除、斷開相關鏈接或者更改用戶名和密碼,或者由于服務器故障等技術原因,使得委托方無法再獲取相關文件,這種情況下可能會產生是否實際完成軟件交付的爭議。對此,雙方應當對開發方提供的交付內容進行核對,并且對委托方收到的交付內容和收到時間進行書面記錄。● 軟件的驗收
驗收標準是判斷合同目的是否實現的重要依據,合同雙方據此對軟件需求和交付成果的質量進行審核。出于計算機軟件自身特性,最終交付成果難以避免地存在技術瑕疵或漏洞,不同的瑕疵或漏洞對于軟件正常運行的影響差異很大。明確完善的驗收標準有助于在雙方對成果產生爭議時提供統一明確的參考。為避免對驗收標準產生爭議,雙方可以共同委托具有資質的第三方機構進行驗收,或者參考國家或行業標準進行驗收,例如GB/T17544和GB/T16260,該標準是推薦性標準,并無強制性效力。
在定制化軟件的開發或者后續運行過程中,如果企業或者開發方未能采取合理的保密措施,可能會導致軟件代碼被抄襲或剽竊。常見的情形包括企業內部員工為獲得不當利益將軟件代碼出售或披露給第三方,核心技術人員離職后帶走代碼、披露給新單位并允許新單位使用,開發方違反保密義務將代碼披露給第三方或允許第三方使用代碼等。軟件代碼抄襲或剽竊除可能引發著作權侵權之外,若涉案軟件/代碼及相關文檔滿足商業秘密的構成要件,也同時構成商業秘密侵權,權利人可以擇一主張。例如,在(2012)京刑終字第5321號案[6]中,被告一非法獲取他人的游戲引擎程序,將該軟件的源代碼程序披露給其他被告。其他被告復制并抄襲從被告一處獲得的源代碼,在私自架設的服務器上運行,獲取巨額利潤。最終,法院認定被告一的行為構成侵犯商業秘密罪,其他被告構成侵犯著作權罪。著作權侵權和商業秘密侵權的判定均需要對軟件代碼進行同一性比對,即比較權利人的代碼與被控侵權人掌握的代碼的相似程度,這是侵權認定過程中最為復雜困難的部分,一般需要引入專業鑒定機構。比如,在著作權侵權案件中,在比對之前,一般需要首先排除以下部分內容:(1)構成抽象思想的部分;(2)邏輯和使軟件具有效率所必須的代碼,例如與數據分類和查找功能的代碼;(3)“標準程序”所對應的代碼,例如硬件標準、軟件標準、制造商標準等;(4)通用編程技術、商業慣例和用戶習慣;(5)從公共領域獲得的程序部分。在排除上述內容后,對剩余的軟件代碼進行比對。鑒于傳統的同一性對比方式成本較高,近年來法院也在不斷探索其他侵權認定思路,以期以較低的審判成本達到與代碼比對同樣的效果。根據筆者的經驗,以下因素也可以作為判斷軟件侵權的考量因素:● 軟件界面
在權利人客觀上無法獲得對方代碼和軟件版本等信息的情況下,軟件界面可以作為認定同一性的初步證據,使舉證責任轉移至被告,由被告針對軟件近似提供合理說明或相反證據。但值得注意的是,如果權利人有機會或有能力獲得對方代碼和版本信息而未獲取,僅通過主張單獨的軟件界面相同或相似,尚不足以完成初步舉證責任并使舉證責任轉移至被告。例如,在(2019)最高法知民終816號案中[7],原告在一審過程中僅提交了雙方的軟件界面,認為相同,但未提交雙方的軟件程序,一審法院認為原告有機會獲取對方的軟件程序但未獲取,未完成原告的初步舉證責任。雖然原告在二審中提交了雙方軟件的相關文檔,但二審法院認為原告的軟件為android版本,而被告的軟件為iOS版本,雙方使用的開發軟件不同,不可能存在相同或近似的源程序,進而無法認定為相同或實質相似的軟件。● 軟件名稱、目錄結構、錯誤信息
根據計算機軟件設計的慣例,軟件名稱、目錄結構、錯誤信息等均是開發者進行軟件編譯設計后的獨特表現形式。不同編譯方式和邏輯下,目錄結構等信息具有很多選擇性。因此,從技術角度,兩套獨立編譯的軟件在名稱、目錄、文件名、錯誤信息方面完全相同的可能性極小。如權利人已經舉證雙方軟件名稱、目錄、文件名,甚至錯誤信息等方面完全相同,此時被告如不能對此進行合理說明、以證明軟件具有合法來源,則人民法院可以認定雙方軟件構成實質性相似。例如,在(2020)最高法知民終1164號[8]中,一審法院在保全過程中通過輸入探查命令來查詢被告電腦中涉案軟件的客觀狀態,獲得了軟件名稱、文件名稱、目錄結構、錯誤信息等信息,但由于被告認為其電腦中存在保密信息而拒絕了拷貝硬盤的要求,而使法院未獲得涉案軟件的源代碼。最高院認為被告電腦中存在與原告涉案計算機軟件的名稱、目錄結構、錯誤信息等方面均相同的軟件信息,顯示被告存在侵犯原告計算機軟件著作權的可能,但被告未能就上述保全過程中發現的信息提供合理解釋,也未能提交其實際安裝使用其他軟件的確鑿證據,對于被告的侵權行為已無進行源代碼比對的必要,最終認定被告侵權成立。
● 多個界面、配置文件、注冊表保留了原告的標識和痕跡
如果被告的軟件程序界面、配置文件、注冊表等文件中包含了原告的標識,而無法進行合理說明或提供相反證據,則人民法院可以認定雙方軟件構成實質性近似。在(2020)最高法知民終319號案中[9],被告軟件的多個界面、配置文件、注冊表等信息與原告相應信息的相似比例極高,且被告軟件中含有原告標識。在被告無法進行合理說明且沒有提供相反證據的情況下,人民法院認為沒有進行代碼比對的必要,認定被告侵權成立。在互聯網時代,計算機軟件儼然已經成為國民經濟的重要引擎。面對軟件糾紛數量的急劇增加、新類型知識產權糾紛的不斷涌現,國家立法和各地司法層面都在不斷進行調整以回應如何更好保護軟件相關的知識產權這一難題。計算機軟件的知識產權合規涉及到多種知識產權類型,不僅需要對計算機技術的深入了解和法律實踐經驗,也需要豐富的行業經驗,而業內許多企業尚未建立完善的合規制度,為企業的正常生產經營留下了隱患。本文結合司法審判要點和處理計算機軟件知識產權糾紛的實踐經驗,以期為企業合規提供方向和建議。同時,也歡迎各位讀者掃碼觀看本文作者賈媛媛律師在知享課堂錄制的相關課程。或點擊鏈接跳轉播放地址:https://aglc.cn/v-XUKWI
[1]《中華人民共和國民法典》第八百五十一條
[2]《中華人民共和國著作權法》第十九條
[3]《最高人民法院關于審理著作權民事糾紛案件適用法律若干問題的解釋》第十二條
[4]《中華人民共和國民法典》第八百五十五條
[5]《中華人民共和國著作權法》第十四條
[6] 北京市第一中級人民法院 (2012)京刑終字第5321號
[7] 最高人民法院(2019)最高法知民終816號
[8] 最高人民法院(2020)最高法知民終1164號
[9] 最高人民法院(2020)最高法知民終319號