从七个案例看“软件开发合同”风险防范
基本案情:饰汇通公司(下称“原告”)委托亿合公司(下称“被告”)为其开发软件,原告先后确认了软件需求方案及界面设计。被告将软件上架多个应用平台,经原告同意开通应用数据,原告使用后反馈问题但未支付后续款项,被告遂关闭软件服务器。庭审中被告认可软件曾有三个功能未实现,但称均已修复且同意交付源代码。
法院认为:本案中,原告与被告签订的涉案合同系双方真实意思表示,内容不违反法律、行政法规的强制性规定,合法有效,双方均应依约履行。
笔者简析:在计算机软件开发合同纠纷中,权利基础认定是解决后续违约、解除、赔偿及知识产权归属等问题的逻辑起点,核心是明确合同是否成立并生效,是否存在可撤销、无效或未生效情形;双方核心权利义务的边界(如开发范围、交付标准、验收节点、付款条件);涉案软件成果的知识产权归属与使用权限。只有先厘清权利基础,才能准确判断某方行为是否构成违约、合同解除是否合法、损失赔偿是否有依据。
案例二、
一审(2020)浙02知民初397号
二审(2021)最高法知民终869号
违约行为的认定
在计算机软件开发合同纠纷案件中,委托方通常会主张开发方未能按照合同约定的时间或具体功能要求完成软件开发任务,开发方则可能提出委托方迟延付款等主张,并根据相关违约行为提出请求解除合同、要求对方承担违约责任等主张。要查明是否存在违约行为,首先,要确定按照合同约定完成的开发成果,其次,确定开发成果后,再查明是否存在违反合同约定的行为。
基本案情:2018年8月,皇客公司(下称“原告”)与圣代公司(下称“被告”)签订《计算机软件技术开发合同书》,约定由被告为原告开发“皇客网平台”应用软件,开发周期为120天,并对开发项目范围、价款、技术指标、分期付款方式及违约金计算方式等进行了约定。2018年8月-2020年初,双方在合同履行过程中,就涉案项目的研发进度及核心需求功能持续沟通并反馈存在问题,期间皇客网1.5.5安卓版APP和小程序于2019年8月上线试运行。原告向被告及其相关人员累计支付73.1万元,作为涉案项目的部分技术服务费。2020年10月,司法鉴定报告认定被告完成了合同任务的53.42%,但未完成核心模块。原告以被告构成根本违约为由,请求解除合同并主张被告应返还已支付的技术服务费73.1万元并支付违约金34万元。
裁判结果:一审判决被告向原告返还已支付的合同款20万元,并支付违约金34万元,合计54万元。二审维持原判。
法院认为:从双方往来的聊天记录及合同的实际履行情况来看,在约定的研究开发周期结束后,双方仍持续就涉案项目的研发进度及核心需求功能进行沟通,并反馈软件存在问题,聊天记录可佐证被告并未按时交付符合约定的研发成果,即未完成的软件/事项/项目模块属于核心部分。另外,被告未提供证据证明,原告存在变更研发需求导致其延迟交付的行为,同时鉴定意见亦载明,在以量化手段分析认定被告完成合同44个子项情况时,专家评估数值已把需求变更20.93%的因素结合在内,即在案证据难以佐证被告迟延交付系原告变更研发需求所致,因此被告已构成违约。
笔者简析:法院认定被告构成违约,核心在于其履行程度未达合同核心要求——即便司法鉴定显示其完成了53.42%的合同任务,但未完成部分系涉案软件的核心模块,该等核心模块直接决定软件是否符合委托方根本使用需求,未完成核心义务,即便非核心部分有一定履行,仍应认定构成违约。另,即使鉴定意见已将20.93%的需求变更因素纳入量化评估,但由于在案证据难以佐证被告迟延交付系原告变更研发需求所致,法院仍认定被告未完成核心义务。
开发方若以“委托方变更需求”抗辩迟延交付,需提交明确证据佐证需求变更与迟延交付存在直接因果关系,仅以存在需求变更为由抗辩,无充分因果证据的,难以得到法院支持。同时,委托方亦应规范需求变更流程,留存书面确认文件,避免后续纠纷。从本案的裁判说理可以看出微信聊天记录是本案关键佐证,其可证实合同履行中双方就研发进度、软件问题的沟通情况,佐证被告未按时交付符合约定的成果。这提示企业,履行软件开发合同时,应留存好微信、邮件等沟通记录,该等材料可作为认定履约情况、违约事实的重要证据,防范后续举证不能的风险。
案例三、
(2023)京民终57号
合格交付的认定
在计算机软件开发合同纠纷案件中,当事人争议最大的问题就在于软件开发义务的履行是否符合双方合同的约定,是否按照合同约定按时交付、及时验收确认,是否支付或返还相关开发费用。
基本案情:2019年2月,槟购公司(下称“原告”)与青柠彩虹公司(下称“被告”)签订《服务协议》,约定由被告开发槟购商城及微商系统APP等软件,明确了测试版、正式版的交付时间、验收标准及付款节点,约定交付后十个工作日内原告需验收,未如期提出异议视为验收合格。合同履行中,被告按约提交槟购系统测试版本,原告支付二期款,后被告陆续交付测试版本并上架部分应用市场,双方持续沟通修改软件问题。2019年7月,原告发测试报告指出槟购、素耳APP存在大量致命及严重BUG,被告后续仍按要求修改优化,原告亦有订单运营、需求调整等行为。2019年9月后,原告未再提出验收相关新问题,2020年1月其以被告未交付合格软件为由发函解除合同,要求返还费用并赔偿。被告辩称已完成交付且软件上线使用,反诉要求原告支付剩余尾款。双方就软件是否完成合格交付、是否通过验收产生核心争议。
法院认为:涉案合同中,就“验收”与“上线”的关系并未做约定,而是在工作说明第6-2条中合称为“项目验收系统上线”“项目验收上线”。涉案合同约定了验收的定义是指对工作成果在外观、形式和数量以及内在质量上的验收,还约定了验收不合格的整改流程,并无“验收通过才可以上线,或者上线即意味着验收通过”的表述。
本案中,虽然上线应用市场并非验收通过的标志,但根据计算机软件领域的惯例,在应用市场上线发布的软件一般应为该软件的正式版本,具备支持上线运行的主要功能并能够独立运行。槟购系统APP已经在多个应用市场上线,已有用户使用并发生交易,原告在2019年9月至2020年1月之间,未再提出新的问题,且对于APP存在功能未通过验收、未制作的问题,其并未提交证据证明就上述问题在合同履行中已经告知被告。综上,一审法院认定,被告已经提交了槟购系统APP,且通过验收并上线。
案例四、
(2019)粤03民终10646号
分阶段验收的认定
基本案情:2015年11月,滨海升阳公司(下称“原告”)与途鸥公司(下称“被告”)签订微店平台系统开发合同,约定分初验、终验两阶段验收,明确初验需交付指定文档且无重大错误,甲方15日内未提书面异议视为合格,还约定了各阶段交付验收时间与付款节点。合同约定的2016年4月初验时间届满后,因ERP对接接口、数据对接方案多次调整,被告迟至2016年11月完成系统演示验收,原告员工签字时备注了功能使用及对接细节要求,未提重大错误异议,后签收了合同约定的初验文档。原告主张系统未通过初验、被告逾期交付构成违约,诉请退款并支付违约金;被告则主张系统已完成初验且终验合格,反诉要求支付剩余款项,双方就验收合格与否、逾期交付责任归属产生核心争议。
法院认为:关于初验,合同约定初验无重大错误或修复影响正式上线的错误即视为合格,甲方未在约定期限提书面异议亦视为合格。被告提交的系统虽有原告员工备注的功能使用、ERP对接细节要求,但该备注并非针对重大错误的异议,原告亦未举证证明案涉系统存在影响上线的重大错误,且其后续签收了合同约定的初验相关文档,故案涉系统初验合格。
关于终验,合同约定初验遗留问题解决后,系统具备正常运行条件并通过测试,且甲方签发终验报告,方为终验合格。本案中,被告未举证证明双方已完成初验且解决遗留问题,其交付系统时仍存在待解决问题,亦未取得原告签字确认的终验报告,提交的交易记录也仅为测试记录,系统未达正常上线的终验条件,故认定案涉系统未完成终验。
笔者简析:1.验收异议需及时书面提出,无异议视为验收合格。原告在2019年9月后未再就软件问题提新异议,其员工仅备注功能细节未提重大错误,法院均据此认定验收合格。可见委托方未按约定期限以书面形式提出实质性异议,将视为认可开发成果,口头或非实质性备注无法构成有效验收抗辩。
2.验收标准以合同约定为核心,结合行业惯例认定。合同未约定验收与上线的关联时,法院参照软件行业惯例,认定应用市场上线且能独立运行的软件具备验收合格的基础;同时以合同约定的“无重大错误”等为核心标准,区分实质性问题与细节优化要求,非影响上线的问题不影响验收合格的认定。
3.验收举证责任分配清晰,双方均需留存履行证据。开发方需举证完成成果交付、符合合同约定的验收条件,如举证软件上线运营、举证交付初验文档;委托方需举证已提出有效验收异议、开发成果存在实质性缺陷,否则将承担举证不能的不利后果。
案例五、
(2023)最高法知民终928号
违约责任的认定
基本案情:2019-2020年,成都某科技公司与四川某软件公司先后签订五份软件开发合同,委托开发小程序、聊天APP等系统并支付费用192450元。履行中,科技公司多次变更、增加功能需求,双方持续沟通调试,软件公司交付了部分源代码并完成阶段性开发,科技公司未支付尾款。后科技公司以软件公司未按约交付合格软件为由诉请解除合同、返还费用并赔偿损失,软件公司同意解除合同,但辩称已依约履约,不应承担违约责任。
法院认为:关于是否构成违约:虽合同约定了开发周期,但同时约定委托方提出修改意见时开发周期顺延。履行中科技公司多次变更、增加功能需求,双方持续沟通调整,且约定周期届满后仍在合作,应视为以实际行为变更开发周期,故软件公司不构成迟延交付的违约行为。
关于解除后责任:合同解除后,尚未履行的终止履行。因软件开发成果具有不可返还性,且科技公司未明确需求、多次变更需求,对合同解除负主要责任;软件公司已完成阶段性开发工作,交付部分源代码并实现小程序上线,其工作量与已收开发费用相当,且合同约定委托方单方解除合同无权要求返还已付款项,故对科技公司要求返还费用、支付违约金及赔偿损失的请求不予支持。
案例六、
(2020)京73民初798号
法定解除权的认定
基本案情:2016年,北京某投资公司(下称“原告”)通过招标与思某某公司(下称“被告”)签订ERP软件开发相关合同及附件,约定分阶段推进项目,被告需按里程碑提交业务蓝图。合同履行中,被告未按约定时间提交业务蓝图,主张系因原告未及时提供软硬件环境、关键用户配合不足、组织架构变革且拒绝确认新需求等导致;原告则认为需求已在招投标文件中明确,迟延责任在被告。双方就需求确认、业务流程调整产生分歧。2017年4月,原告以被告构成根本违约为由发函解除合同,要求返还593万余元开发费并赔偿软件许可费损失,被告同意解除但拒绝退款,双方就合同解除后果产生争议。
裁判结果:被告需返还原告开发费3,560,279.4元。
法院认为:关于是否构成违约:被告未按约定时间提交业务蓝图构成迟延履行,但迟延系双方共同过错导致。原告未及时提供软硬件环境、关键用户配合不足、组织架构变革且拒绝确认新需求,未履行合同约定的配合义务;被告作为专业方,对项目复杂性预判不足、未及时提示风险,自身履行亦存在瑕疵,故被告不构成根本违约,原告不享有法定解除权。
关于解除后责任:双方均存在违约,应各自承担相应责任。被告已投入相应工作量,合同约定的“终止不退还费用”条款不适用于本案解除情形,故酌情判令其部分返还开发费;软件许可费系基于另一独立合同产生,且损失金额尚未确定,原告可待损失确定后另行主张,本案中对该项赔偿请求不予支持。
笔者简析:软件开发合同纠纷中,需求变更、配合义务、双方过错是认定违约及合同解除后责任分担的关键。在开发周期约定与实际履行不一致时,法院会以双方实际沟通、变更需求、持续调试等行为,认定是否合意顺延工期。委托方频繁变更、新增需求,或未提供必要配合条件,往往构成开发方迟延履行的合理抗辩,不能简单认定开发方违约。
合同解除后,责任并非一概由开发方返还费用,而应根据双方过错程度、已完成工作量、成果可利用性综合判定。委托方对需求不明、频繁变更存在主要过错的,已付款项可不予返还;双方均存在违约或履行瑕疵的,适用过错相抵规则,按实际履约情况酌定返还比例。同时,合同中“单方解除不予退款”的约定,并不适用于双方均有过错导致的合同解除。
实践中,委托方应固定需求、规范变更流程,履行配合义务;开发方应做好风险提示、留存沟通证据。双方均应恪守诚信,避免因单方过错或共同瑕疵导致项目停滞,减少不必要的损失。
案例七、
(2022)最高法知民终655号
赔偿数额的认定
基本案情:2020年8月,刘某委托某甲公司开发微信小程序,双方通过“猪八戒网”签订合同,约定总金额12000元,分两期支付,刘某需提供资料且功能需求确定后不得变更,某甲公司应于同年9月28日前完成主框架开发。刘某支付首期款6000元后,某甲公司因自身原因未能按期完成开发,双方于10月初协商变更合同:刘某无需支付剩余尾款,某甲公司继续履行开发义务。2020年10月,某甲公司交付部分程序功能截图,刘某认为与约定需求不符,双方产生争议。经多次沟通未能达成一致,某甲公司停止开发工作。后双方均同意解除涉案合同,且确认合同解除后不涉及物品返还或知识产权争议。
法院认为:涉案合同是双方当事人基于平等的法律地位、在自愿的情况下签订的,其对双方当事人均有法律约束力,双方当事人均应按照合同的约定履行自己义务。本案中,某甲公司没有提交刘某变更开发需求的充分证据,其仅因工作支出超出刘某支付的费用为由,在涉案软件没有通过刘某验收的情况下,不再履行合同义务。鉴于涉案合同已经解除,由于合同解除的原因在于某甲公司迟延履行合同义务,且经多次催告仍未交付符合约定的成果,因此其对于合同的解除具有明显过错,故刘某主张某甲公司返还已支付合同款的诉讼请求有事实与法律依据,即某甲公司违约导致合同解除,刘某依法可以要求其恢复原状,并有权要求赔偿损失。
笔者简析:合同解除后责任认定,可遵循“终止履行—恢复原状—赔偿损失”三步法,在具体适用中是采用恢复原状还是其他补救措施,可以综合考虑以下因素:1.开发任务的完成度;2.双方在合同履行中的过错;3.由谁保有更有利于发挥开发成果经济价值。
因此,软件开发合同解除后,责任承担需结合“三步法”综合判断,当开发方已完成大部分开发任务且无明显过错时,通常不再对已交付成果适用物理性恢复原状,而是根据已完成工作量占比、后续义务免除等情况,参照合同总价核算对应价值,由委托方对开发方予以相应的价值补偿。反之,若适用恢复原状、将已部分完成的开发成果返还开发方,则开发方在开发过程中投入的成本可纳入其损失范围。该损失数额的确定,可参考合同分阶段履行约定的对应价款,结合开发成果的实际完成度,并综合考量双方在履约过程中的过错程度进行合理分担。
结语
计算机软件开发合同的履行具有需求动态调整、技术专业性强、履约环节复杂等特点,违约认定、验收把关、合同解除等问题是多发争议焦点。企业在签订和履行计算机软件开发合同时,应细化需求约定、规范变更流程、留存履约证据,重视验收环节的权责划分等,提前防范法律风险。
(作者:赵俊杰、侯慧怡 广东翰锐律师事务所)
知产库【视频号】不定期直播🎬

你点的每一个“在看”,我都认真当成了喜欢
备注”姓名+城市”交流

知产库干货下载
回复’商标解析‘下载《企业常见商标问题解析》
回复’专利指南‘下载《北高院专利侵权判定指南》
回复’版权指南‘下载《北高院著作权侵权审理指南》
回复‘商标确权‘下载《北高院商标确权审理指南》
回复’知产管辖‘下载《全国知识产权法庭管辖图》
回复’贴牌加工‘下载《北上广苏浙:贴牌加工认定》
回复’注册流程‘下载《商标/专利/版权/流程图》
夜雨聆风