网络基础设施的性能提升以及用户规模的快速增长为网络应用带来前所未有的快捷方便,越来越多的企业和个人需要搭建移动 WAP网站和手机应用App进行商业营销活动。在这样的背景下,计算机软件合同纠纷案件呈现增长趋势,其中涉及的问题不仅包括计算机软件的技术问题,还包括合同履行过程中的事实和法律问题。例如,开发成果是否交付以及交付内容是否符合合同约定,开发成果的在线测试以及验收是否合格等等,成为计算机软件合同纠纷案件的重点以难点所在。
一、计算机软件合同纠纷的类型
按照案由不同,计算机软件合同纠纷案件可以分为计算机软件开发合同纠纷案件、计算机软件著作权许可使用合同纠纷案件、计算机软件著作权转让合同纠纷案件。其中,计算机软件开发合同纠纷案件数量占比较大,计算机软件著作权许可使用合同纠纷案件、计算机软件著作权转让合同纠纷案件相对较少。
二、计算机软件合同纠纷的管辖
根据最高人民法院2022年4月20日施行的《最高人民法院关于第一审知识产权民事、行政案件管辖的若干规定》(法释〔2022〕13号)及2022年5月1日起施行的《最高人民法院关于第一审知识产权民事、行政案件管辖的若干规定》(法释〔2022〕13号)的相关规定,计算机软件的权属、侵权纠纷由知识产权法院,省、自治区、直辖市人民政府所在地的中级人民法院和最高人民法院确定的中级人民法院管辖,而对于本文讨论的计算机软件合同纠纷案件,与上述计算机软件的权属、侵权纠纷管辖不同,计算机软件合同纠纷案件的管辖应根据最高人民法院确定标的额大小标准来确定由中级人民法院管辖还是由基层人民法院管辖。具体到河北省来讲,诉讼标的额100万元以上(包含本数)、50亿元以下(不包括本数)的计算机软件的合同纠纷第一审民事案件,由各市、雄安新区中级人民法院按行政区管辖;诉讼标的额100万元以下(不包含本数),计算机软件的合同纠纷第一审民事案件由基层人民法院管辖。具体基层法院名单可见笔者撰写的《上班第一天,您应该了解的河北省知识产权民事、行政案件最新管辖看这里!》一文。
三、计算机软件合同纠纷的难点与对策
(一)合同约定与合同变更
计算机软件合同在签订和履行过程中,当事人的需求往往会根据进展而发生变化,尤其是委托方经常会提出增加或者减少需求,相对于其他合同来讲,合同文本与合同变更内容的确定是计算机软件合同纠纷的特点。
在合同签订时,双方常常仅在合同文本或者附件中约定软件名称、架构及要实现的目的,而对于软件具体的、详细的功能需求并不能进行详细、准确的描述。因此,对于合同是否变更应考察是否有书面协议的变更和确认、是否进行邮件或微信等数据电文形式确认等等,以确认是否达成法律意义上的一致意思的表示。
在最高人民法院(2020)最高法知民终222号乘如(上海)国际贸易有限公司、上海八图网络科技有限公司计算机软件开发合同纠纷一案中,法院认为,在计算机软件开发合同的履行过程中,对于原约定内容的增减、变更均属于较为普遍的现象,双方当事人订立合同时在附件中已经对功能清单进行了详细约定,双方对于其中的内容均应知晓。而在八图公司开发项目的过程中,双方对于系统运行、测试、修改等问题保持高频率的沟通,乘如公司在此过程中并没有提出该项目存在未按合同约定完成的内容。结合乘如公司已经认可该项目已经正常运行且支付了全部项目款项的行为,八图公司对于该项目中存在部分未完成合同约定内容的解释具有一定的合理性。结合案件相关事实,法院认定双方对于合同内容的变更达成了合意。
(二)开发成果是否交付
有观点认为,由于开发方通常是在自己的服务器上编写代码,再通过合同约定的方式交付委托方,即使因委托方或者其他客观原因导致诉讼中已无法提供软件,开发方也应当提供备份软件以证明开发工作已经完成,否则应承担一定的不利后果。而根据法律规定,当事人对于案件事实的查明都具有积极的举证义务,即使开发方在此情形下未提供备份软件,开发方亦不应承担不利后果,否则有违举证责任的分担规则。计算机软件代码具有可复制性,当开发方已将代码交付委托方后,其在法律上并无备份义务,相应的举证责任仍应由委托方承担。例如,司法实践中常见的委托方已经书面签署确认的,原则上应视为交付。
在开发成果通过云服务器交付的情形中,当事人在提起计算机软件开发合同纠纷诉讼时,合同履行往往已经处在停滞状态,由于服务器的租赁有一定的成本,实践中服务器无法登录主要是由于当事人未续费租赁所致。如果合同明确约定由某一方承担服务器的租赁费用,则该方应就服务器不能登录而无法查明软件是否交付承担举证责任。如果合同未就租赁费用由谁承担进行约定,原则上应推定由委托方承担相应的租赁费用,查明软件是否交付的举证责任应当由委托方承担。
(三)关于开发成果是否符合合同约定
开发成果是否满足合同约定是大多数计算机软件开发合同纠纷的主要争议点。司法实践中,判断开发成果是否符合合同的约定,一般从两个方面进行:
一方面,结合合同关于软件功能的约定内容,查明开发方交付的软件在界面、模块、功能等方面是否能够符合合同的相关约定,这一查明过程是技术事实的查明过程。如果合同中没有对软件需求进行明确具体的约定,法院应当审查双方当事人在合同履行过程中,是否通过需求确认的流程将委托方的软件需求予以明确。如果双方当事人既未在合同中约定需求标准,受托方亦未在合同履行过程中对委托方的软件需求进行确认,则法院应当根据《民法典》的规定,按照国家标准、行业标准、通常标准、交易习惯、或者现场勘验等对交付的软件功能进行审查。
例如,在原告北京维华嘉业信息技术有限公司(以下简称维华嘉业公司)诉被告北京鑫兴宝网络技术有限公司(以下简称鑫兴宝公司)计算机软件开发合同纠纷一案【(2015)京知民初字第2266号】中,法院通过现场勘验查明了鑫兴宝公司所完成的软件成果,包括涉案软件U及前端的完成情况,并结合维华嘉业公司的付款情况,认定鑫兴宝公司交付的部分软件成果符合合同约定。
另一方面,在技术事实查明的基础上,法院适用法律规定对软件成果能否实现合同目的的判断和解释,是合同解释的法律适用过程。在朱勇钢与魏超计算机软件开发合同纠纷一案【(2018)京民终1号】中,合同仅约定了“以‘网易一元夺宝网站’为准”,但对于“网易一元夺宝网站”的具体功能包括哪些双方当事人并未明确约定。庭审中,双方明确涉案软件的功能应包括红包奖励、中奖开奖设置、商品展示、线上交易四个主要模块,故法院以能否实现上述功能作为判断涉案软件质量的依据。
(四)合同解除
在计算机软件开发合同中,委托方的交易目的是取得开发成果,运用软件成果的技术功能,实现其商业或其他用途;开发方的交易目的是取得价款。在判断委托方合同目的是否实现时,应着重判断软件的主体功能是否完成。如果软件主体功能已经完成,软件基本可以正常使用,个别功能缺失或者存在瑕疵,委托方不能据此主张解除合同。
需要指出的是,计算机软件开发合同中,合同解除后,是否适用恢复原状应当考虑合同的性质和履行情况。如果开发方开发的软件是根据委托方提出的功能需求量身定做的,当事人付出的成本和劳动凝结在已交付的软件中,不适用恢复原状的违约责任承担方式。在北京市高级人民法院(2018)京民终1号朱勇钢与魏超计算机软件开发合同纠纷一案中,法院认为,合同解除后是否适用恢复原状应当考虑合同的性质和履行情况。恢复原状的含义是使双方当事人恢复到合同订立前的状态。魏超已经进行了涉案软件的开发,向朱勇钢交付了开发成果,可见,涉案合同的性质决定了双方当事人付出的成本和劳动已经凝结在已交付的涉案软件中,且涉案软件系为朱勇钢量身定做,故本案不具备适用恢复原状的条件。但对于合同履行中双方当事人付出的成本,应当根据责任的认定相互确定。魏超进行了涉案软件开发,付出了相应成本,虽然其存在迟延交付涉案软件的违约行为,但双方当事人对迟延交付的发生均有一定责任,只是朱勇钢负次要责任。在朱勇钢未能充分举证证明其已经支付的4万元合同款项超出了魏超已经履行的合同义务的前提下,朱勇钢要求返还支付的4万元不能得到支持。总之,应当避免出现将无法实现合同目的的“半成品”强加给委托人的结果;又应当避免出现将已经独立实现部分合同目的的成果返还给受托人的结果。
律师提示:计算机软件开发合同专业性较强,应尽量委托专业人士起草或者审查合同文本,对于相关条款内容应尽可能明确,如有变更,应保存变更及确认记录,相关要求应以附件或者会议纪要的形式及时跟进,以保持约定的工作内容可固定,防止争议发生。