微信扫一扫关注我~
计算机软件开发合同纠纷中的常见问题及解决
近年来,随着互联网技术的蓬勃发展,“互联网+”的思维理念已经深入人心,而互联网技术往往通过开发软件来实现。实践中,由于委托方和开发方对于软件行业的认知和理解并不一致,双方容易对技术问题的理解产生争议,部分软件开发工作也因此半路停滞,甚至双方将纠纷诉至法院。
笔者结合近期代理的几起该类案件,着重从该类案件的管辖、实践中常见的争议焦点及相应的风险防范建议等入手,重点厘清计算机软件开发合同中的常见纠纷及相应对策,借以提醒委托方和开发方在合同签订时针对可能出现的风险提前进行约定,以避免后续产生的高成本诉讼。
一 计算机软件开发合同纠纷的概述
(一)关于法律概念
我国于2021年1月1日新生效的《民法典》,并未将计算机软件开发合作作为一种典型合同进行规定,实务中一般将其归类为技术合同。由于民事事件案由是对民事法律关系的总结概况,关于该类合同的法律性质,可以借助案由进行探索。
依据《最高人民法院民事案件案由规定理解与适用》(以下简称《理解与适用》),计算机软件开发合同纠纷为第一级案由知识产权与竞争纠纷项下的第四级案由,其中第二级案由为知识产权合同纠纷,第三级案由为著作权合同纠纷。依据《理解与适用》对其案由的规定,计算机软件开发合同纠纷是指双方当事人就计算机软件开发等相关事宜达成的协议而产生的纠纷,包括就计算机软件的委托开发合同、合作开发合同而发生的纠纷。
(二)关于法律适用
首先,由于该类案件属于广义下的合同纠纷,应该适用《民法典·合同编》中对于合同的相关规定,合同通则中对于合同的一般性约束均对该类合同有效,合同的生效、违约、解除等一般性规定均适用于该类案件;
其次,由于该类案件合同标的物的特殊性,根据特殊法优先于一般法的原则,应当适用《著作权法》、《计算机软件保护条例》及最高人民法院下发的《关于审理著作权民事纠纷案件适用法律若干问题的解释》等相关规定。
二 计算机软件开发合同纠纷的管辖
该类案件虽系广义下的合同纠纷,但是由于合同标的物涉及著作权,最高人民法院对其作出了特殊规定,依据最高人民法院《关于审理著作权民事纠纷案件适用法律若干问题的解释(2020修正)》第2条规定:“著作权民事纠纷案件,由中级以上人民法院管辖。各高级人民法院根据本辖区的实际情况,可以报请最高人民法院批准,由若干基层人民法院管辖第一审著作权民事纠纷案件。”
依据最高人民法院《关于北京、上海、广州知识产权法院案件管辖的规定(2020修正)》第一条规定:“知识产权法院管辖所在市辖区内的下列第一审案件:(一)专利、植物新品种、集成电路布图设计、技术秘密、计算机软件民事和行政案件;(二)对国务院部门或者县级以上地方人民政府所作的涉及著作权、商标、不正当竞争等行政行为提起诉讼的行政案件;(三)涉及驰名商标认定的民事案件。”因此,上述知识产权法院对所在市辖区内的计算机软件一审民事和行政案件具有管辖权。
在山东省辖区范围内,并无专门的知识产权法院进行专属管辖。依据山东省高级人民法院下发的《关于明确部分第一审知识产权民事案件管辖法院的通知》第一条规定:“对于诉讼标的额在50万元以下不具有涉外因素的商标权、著作权、特许经营合同纠纷等第一审知识产权民事案件,由各中级人民法院辖区内具有一般知识产权案件管辖权的基层人民法院管辖。”
在青岛辖区范围内,依据青岛市中级人民法院下发的《关于明确部分第一审知识产权民事案件管辖法院的通知》第一条规定:“对于诉讼标的额在50万元以下不具有涉外因素的商标权、著作权、特许经营合同纠纷等第一审知识产权民事案件,由市南区、黄岛区、崂山区、即墨区人民法院分别管辖,具体管辖范围如下:1.市南区人民法院管辖范围:市南区、市北区;2.黄岛区人民法院管辖范围:黄岛区、胶州市;3.崂山区人民法院管辖范围:崂山区、李沧区、城阳区;4.即墨区人民法院管辖范围:即墨区、平度市、莱西”。
因此,该类案件应当按法律规定向具有管辖权的人民法院提起诉讼,当然,如双方在合同中明确约定了合法、有效的仲裁管辖,则仲裁具有优先管辖权。
三 计算机软件开发合同纠纷常见争议焦点及风险防范
(一)功能是否约定清晰
实践中,委托方和开发方一般会签订《软件开发服务合同》,对双方的权利义务进行明确,同时对软件的功能需求进行详细阐述。但是由于双方对软件功能认识的差别等原因,特别是部分委托方缺乏软件行业的工作经验,在后续开发过程中双方很容易对软件的功能产生争议。发生争议后,双方往往各执一词,委托方认为开发方没有实现事前约定的功能,而开发方认为属于新增功能,应该另行付费后进行开发。另外,双方可能在软件开发过程中对软件功能进行变更,如果没有对此进行书面确认,更增加了产生争议的风险。
为防范此类风险,双方可在软件开发合同中对软件要实现的功能明确具体的约定,一方面对软件的组成部分、菜单功能等进行详细描述,双方可提前召开功能展示会,对容易发生纠纷的部分进行特别说明;另一方面明确合同约定支付的费用对应的工作范围,超出此范围的需求即属于新增需求,双方应另行协商付费。通过采用该种方式从正反两方面进行约定,最大限度的将双方意思表达清晰,以避免后续对软件功能范围产生争议。
另外,在软件开发过程中,如存在有争议的部分双方应及时进行沟通。对于开发方来说,如认为委托方提出的需求属于新增需求,应第一时间进行告知,并列明具体的依据,以争取委托方的理解,不能简单以委托方需求不明确为由搁置;对于委托方来说,同样应尽到足够的解释说明义务,以争取合作的顺利进行。如果双方确实就功能无法达成一致,开发方也可按照行业标准完成该部分功能的开发,即便后来发生争议时,可采取委托第三方鉴定的方式来证明。
笔者代理的部分案件中,双方对软件功能发生争议后,开发方以委托方需求不明确为由搁置,最终在发生纠纷时,裁判机关根据案情对双方责任进行了分配,个别开发方因为没有尽到合理应尽义务承担了部分责任。如双方能达成一致,最好另行签订补充协议,即便无法签订书面协议,也可通过邮件等方式对变更后的功能进行确认,以保存好相应证据。
(二)软件是否完成上线
软件开发过程中,委托方一般按照开发进程分阶段付费,而上线作为开发过程中一个重要的环节,对整个软件的开发具有里程碑意义。通常,如果软件成功上线,意味着软件主体功能已经完成,后面仅需对个别bug进行修复完善,反之,不能成功上线意味着开发方未按约定完成义务。
软件的成功上线对双方具有重要意义。关于上线的定义,目前理论界并无统一意见,通常理解为将开发的软件部署在云服务器上,开发方进行现场演示,展示预先设定的功能,以验证是否达到预期状态。为避免双方对上线这一关键环节日后产生争议,双方应在软件开发合同中进行明确定义。
但是,笔者结合代理的该类案件,发现双方对上线的定义并未足够重视,部分在合同中未进行约定,部分沿用了之前的合同模板。分析其内在原因,对于委托方来说,由于其缺乏对软件行业的经验,往往默认接受开发方提出的定义,对于此类风险,委托方可借助于业内专家、大学教授等专业人才进行辅助;对于开发方来说,往往对该问题没有引起足够重视,为防范此类风险,开发方应结合对软件的整体把握进行个别定义。
(三)软件是否完成交付
交付是除了上线外,在软件开发过程中同样具有重要意义的环节,依据笔者的代理经验,裁判者也较为关注软件主体的交付,不仅关注是否线上交付,同样关注有无交付软件源代码。由于交付是一个积极行为,一般认为举证责任在开发方。但是由于软件行业的特殊性,交付一般会在云服务器上,而云服务器大多从网络公司租赁,如现实中应用较多的阿里云服务器。
由于租赁云服务器需要支付一定的费用,双方在签订合同时往往忽视对该部分费用承担的约定。待发生争议后,双方已经陷入僵局,软件开发也大多陷入停滞,承载软件代码的云服务器在租赁到期后因未及时进行付费,导致软件代码被清空,在开庭时即便可以登录服务器,其中也无法找到任何证据,此时应如何分配举证责任对于双方来说显得尤其重要。
根据上海知识产权法院黎淑兰副院长的观点,如果软件开发合同明确约定由某一方承担服务器的租赁费用,则该方应就服务器不能登录而无法查明软件是否交付承担举证责任;如果合同未就租赁费用由谁承担进行约定,原则上应推定由委托方承担相应租赁费用,因为开发费用通常并不包括云服务器的租赁费用[1]。因此,如果开发方已经提交了云服务器的账号、密码等初步证据,成功登录服务器后,即便其中的代码已经被清空,其也已经尽到义务,剩余的举证责任应由委托方承担。
为防范上述风险,双方应及时对软件开发进程进行记录备份,对于开发方,除了将软件在云服务器上部署代码外,应同时将软件代码邮件发送至委托方,同时为后续发生争议,最好由委托方进行书面签署确认。如在中国大百科全书出版社有限公司与北京英捷特数字出版技术有限公司计算机软件开发合同纠纷纠纷中,法官认为“虽大百科公司对邮件的真实性认可,证明目的不予认可,但未提供反证,故本院对英捷特公司主张已按约交付合同软件的事实予以确认”。[2]
(四)软件是否验收合格
委托方和开发方一般会在合同中约定开发完成后进行验收,一般是约定待软件开发完成后,由具有相应资质的机构进行第三方测试,以查验软件是否具备软件的功能。通过验收即意味着开发方完成了己方义务。对于已经陷入停滞的软件来说,即便开发方提起验收,委托方也未必予以理会,为防范此类风险,可在合同中约定应在上线后规定时间内由开发方提起验收申请,双方共同委托具有资质的第三方机构进行验收,如在开发方提起验收申请后委托方拖延验收,应视为默认接受验收合格。
同时,如果由于双方争议在软件开发后期开发工作已经停滞,开发方也可自行验收测试,并保留好测试报告。稳妥起见,可以单方委托具有资质的第三方机构进行验收,以免后续发生纠纷时无法提供相应的证据。关于软件验收的标准,裁判者在审理时一般优先参照合同约定,如合同中未进行约定时参照国家或行业标准,目前,国内软件的验收有GB/T17544和GB/T16260,该标准是推荐性标准,并无强制性效力。因此,双方应在合同中明确,以便发生争议时尽到举证责任。
另外,双方对软件是否具备约定功能发生争议而诉诸法院时,如对是否符合验收标准发生争议,一方面可通过备份的软件代码现场演示,如果符合合同约定的功能,此时可给裁判者以初步印象,认为开发方完成了初步举证责任,如委托方对某项功能有异议,应提出相应的证据;另一方面,也可申请法院进行证据保全并送第三方机构进行鉴定,将开发完成后的软件功能与之前约定的功能进行逐项比对。
(五)是否完成附随义务
由于软件开发行业的特殊性,一般不能一次性完成全部开发,“开发成果在正式交付之前,往往经历交付、测试、修改、再交付、验收等过程”[3],而且在完成软件主体开发后,还要将软件与硬件进行对接,逐步修复产生的bug(漏洞)。实践中,在委托方与开发方发生争议时,双方往往各执一词,委托方以软件存在瑕疵为由不予确认,甚至以此要求解除合同,而开发方认为属于bug(漏洞)等附随义务范围,后续可逐步进行修复完善,不影响软件主体功能的实现。
对于此争议焦点,除了应关注软件的主体功能是否实现外,开发方还应履行好附随义务,包括后期软件的维护、bug(漏洞)的修复和版本升级等,如果不能完成好附随义务,轻则可能构成违约,重则导致根本违约而解除合同。[4]在判断是否属于bug范围时,可参照软件开发合同中约定的功能描述,判断是否影响软件要实现的主体功能,及是否可以及时进行修复。
四 相关意见建议
(一)重视合同文本审核
软件开发合同对双方的权利义务进行了明确的约定,日后发生争议时将成为裁判者审理案件的关键证据,因此,双方在前期协商签订时应引起足够的重视。合同应针对此次开发软件的特点进行个性化设计,避免沿用合同模板直接照抄。
同时合同中双方应结合项目软件实际,对关键词语进行双方认可的定义,并对软件要实现的主体功能、软件参数等进行明确约定。对于上线、验收、交付、维护等关键环节进行详细描述,对付费、完工等关键时间节点应进行特别约定,避免发生歧义。
(二)保存全程沟通记录
由于该类软件开发周期一般较长,实践中部分委托方和开发方通过微信或电话进行沟通,待发生争议时由于微信等聊天记录随着手机的更换而丢失,导致在开庭阶段无法提供关键的沟通证据。
对此,双方都应注意保留好相应记录,尽量指定专人进行对接,对接的形式尽量采取邮箱等易留存的方式,同时对于重要的时间节点和文件应通过指定邮箱发送给委托方。
(三)线上线下同时交付
随着云技术的不断发展,在软件开发过程中,开发方一般将软件代码部署在云服务器上,供委托方实时进行测试,但是由于云服务器租赁的问题,导致发生争议时关键证据可能会灭失,因此开发方可通过邮件等方式将软件代码发送给委托方。
同时,开发方也可将软件同步备份在其他软件库中,如现在通用的Gitee版本库等。由于该类平台一般会载明上传时间,且无法对关键内容进行更改,相关的记录在发生争议时也具有一定的客观性,可作为一项关键证据使用。
2021
08/25
顶部
简单便捷
足不出户咨询律师
金牌服务
一对一专属顾问7*24小时金牌服务
信息保密
个人信息安全有保障
电话咨询
快速通话,高效解答
热线:137-5100-6692(微信同号)
地址:广东省深圳市福田区深南大道1003号大中华国际金融中心A座7层701室
邮箱:13751006692@163.com