法官一文讲明白如何处理计算机软件开发合同纠纷

法官一文讲明白如何处理计算机软件开发合同纠纷

作者介绍:凌宗亮,法学博士,上海知识产权法院知识产权综合审判二庭三级高级法官。曾借调最高人民法院知识产权法庭工作。获评上海法院“十佳青年”等。承办的十余起案件入选《最高人民法院公报》、上海法院知识产权保护十大案件,在《知识产权》《法制日报》《电子知识产权》《人民法院报》等刊物公开发表各类调研文章100多篇。

01 审理的前提:计算机软件开发合同的识别

计算机软件开发合同的标的为计算机软件,软件开发合同的最终目的是开发方通过计算机软件编程的方式实现委托方特定功能需求,合同履行最终交付的通常也是计算机软件源代码及相关文档。

因此,在判断合同性质时应当审查合同的主要权利义务是否涉及计算机软件的开发,合同的标的是否涉及计算机软件代码的交付。如果系争合同的权利义务不仅涉及计算机软件的开发,还涉及其他硬件等权利义务,当事人因计算机软件产生纠纷的,也应按照计算机软件开发合同确定管辖。

在上诉人广境公司与被上诉人能欣公司计算机软件开发合同纠纷管辖权异议案中,最高人民法院二审认为,合同性质的认定应根据合同约定的主要权利义务的内容进行判断。

本案中,能欣公司与广境公司签订的《利添水果产业示范区提升工程——多媒体展示项目合同》在“项目内容”“交货约定”“违约责任”等条款中约定了软件开发服务的内容和违约责任等,符合计算机软件开发合同的特征。广境公司主张本案不是计算机软件开发合同纠纷而是工程承揽合同纠纷与事实不符。2

在具体认定时,还应当注意计算机软件开发合同与委托合同、承揽合同以及技术合同等的区别。

1.计算机软件开发合同与委托合同

计算机软件开发合同的当事人通常被称为委托方与开发方,但此处的“委托”与《民法典》规定的委托合同存在本质区别。委托合同是委托人和受托人约定,由受托人处理委托人事务的合同。

计算机软件开发合同与委托合同的区别主要体现在:

其一,委托合同履行过程中,受托人处理的事项通常发生在受托人与合同以外的第三人之间,受托人系代表委托人为某种法律行为或者处理其他事务。而计算机软件开发合同的履行则主要发生在委托方和开发方之间,并不涉及合同以外的第三方。

其二,委托合同履行过程中,委托方和受托方都可以随时解除合同,但计算机软件开发合同原则上应当按照合同约定全面履行义务,委托方和开发方都不享有任意解除权。

其三,委托合同重在履行过程而非结果,即受托人只要按照委托人的要求从事了某项事务的处理即可,至于结果是否符合委托人的预期并不影响合同的履行。但计算机软件开发合同重在履行结果,而不在履行过程。只要开发方能够交付符合合同要求的计算机软件,即可认定开发方履行了合同义务。

2.计算机软件开发合同与承揽合同

承揽合同是承揽人按照定作人的要求完成工作,交付工作成果,定作人支付报酬的合同。计算机软件开发合同与承揽合同在合同权利义务方面有些类似,某种程度上也可以说是特殊的承揽合同。

但计算机软件开发合同的合同标的为计算机软件,故而并不完全等同于承揽合同,特别是计算机软件开发合同的委托方并不享有任意解除权。

3.计算机软件开发合同与技术开发合同

技术合同是当事人就技术开发、转让、许可、咨询或者服务订立的确立相互之间权利义务的合同。计算机软件开发也属于技术开发的范畴,因此,计算机软件开发合同某种程度上也可以说属于技术开发合同。

但根据《民法典》第八百五十一条的规定,技术开发合同是当事人之间就新技术、新产品、新工艺、新品种或者新材料及其系统的研究开发所订立的合同。从技术开发合同的标的看,技术开发合同与计算机软件开发合同又存在某种区别。技术开发合同强调技术的“新”,要求在市场中尚未被公开。如果作为技术开发合同标的的技术已经由他人公开,致使技术开发合同的履行没有意义,当事人可以解除合同。但计算机软件开发合同的标的并不要求必须是新的软件,对于市场中已经出现的软件,委托人仍然可以委托他人开发相同或类似的软件。

此外,具体案件审理中还应当注意区分计算机软件开发合同与技术服务合同、劳务派遣合同等的区别,并不是只要涉及计算机软件均属于计算机软件开发合同,关键看合同的主要权利义务是否涉及计算机软件,是否需要交付特定的计算机软件作为合同履行的成果。

在原告杨某与被告晤桥公司技术合同纠纷管辖权异议案中,原告与被告签订《软件开发顾问协议》,约定原告担任被告的软件开发顾问,为被告数据结构以及软件架构师提供顾问服务,为被告团队完成编程进行评估并提供顾问服务。

法院经审理认为,涉案合同虽然涉及计算机软件,但并不是原告为被告提供计算机软件开发,而是为被告自己的软件开发提供技术咨询服务,总体上属于技术合同,并不属于计算机软件开发合同。

在上诉人航天公司与被上诉人盖讯公司劳务派遣合同纠纷案中,最高人民法院认为,双方签订的《劳务派遣协议书》项下的费用支付以上诉人所确认的派遣人员的实际评估及级别为主要依据,而非以某个软件开发完成作为结算条件,显然该协议并未涉及到具体的软件开发任务,系劳务派遣协议。3

 

02 容易产生的争议:明确合同是否成立及生效

大多数计算机软件开发合同纠纷中,当事人对于合同是否成立以及合同的效力并不存在争议。

容易产生争议的问题在于,未签订书面协议是否会影响合同成立与生效。

关于合同的成立:

在原告超浪公司与被告太月公司计算机软件开发合同纠纷案中,法院认为,订立计算机软件开发合同应当采用书面形式,当事人未采用书面形式但一方已经履行主要义务,且对方接受的,法院应当认定该合同成立。4

当然,书面形式并不限于传统的纸质方式,以电子数据交换、电子邮件等方式能够有形地表现所载内容,并可以随时调取查用的数据电文,也被视为书面形式。

关于合同的效力:

实践中,有的当事人可能会主张合同约定的开发费用明显超出行业平均水平,开发方在宣传过程中隐瞒重要信息构成合同欺诈,开发方通过计算机软件开发合同套取相关政府资助等等。对这些问题的审查判断需要结合具体案件进行,与一般的合同纠纷并无实质性区别。

此外,如果审理中发现可能涉及经济犯罪嫌疑,法院可以裁定驳回起诉,将有关材料移送公安机关。

 

03 正确审理的基础:软件开发功能需求的确定

计算机软件开发是将委托方的主观需求不断客观化的过程。在签订合同时,双方一般会确定大致的功能需求说明作为合同附件,但在合同履行过程中,原初确定的功能点通常会进一步细化,也有可能发生功能的删减、增加等变更。

绝大多数纠纷中,软件开发方都会提出抗辩认为,在合同履行中存在功能需求的变更,进而导致开发周期的延长或者开发费用的增加。

区分原有功能范围的细化与功能的变更是确定软件开发功能需求的重点,也是大多数纠纷会涉及的问题。

例如,合同签订时明确的功能包括A、B、C、D,如果合同履行中双方对功能A经过沟通确定为A1、A2、A3,这通常属于功能的细化,属于计算机软件开发功能需求调研的正常过程。因为原本确定的功能往往比较宏观,随着开发的不断推进以及双方沟通的不断深入,较为宏观的功能也会不断的具体化,这符合软件开发的基本规律,并不会影响软件正常的开发周期。

但如果合同履行中,委托方提出需要开发E功能,由于原合同并未约定,这属于功能的增加,通常会导致软件开发周期的延长或者软件开发费用的增加。

在确定软件功能需求时,由于合同约定的不明确或者抽象的、存在歧义的语言文字表述,当事人往往对于具体的功能约定或者开发范围的理解产生争议,这就需要对合同的相关条款进行解释。

在原告睿奇公司与被告快发公司侵害计算机软件纠纷案中,原告主张被告在线下门店使用的快剪购票机软件侵害其著作权,被告辩称,双方之间曾签订《技术开发委托合同》,被告委托原告开发“QCHouse线上平台开发项目”,被诉侵权软件也属于合同开发的范围。原告则认为合同约定的软件仅为线上软件,并不包括线下软件。

最高人民法院经审理认为,对于被诉侵权软件是否属于合同范围的理解不应机械、静态地分析其是否属于线上还是线下软件,特别是考虑到合同履行过程中,当事人根据业务需求以及软件开发的进程亦有可能对开发范围进行调整。故应该综合考虑涉案合同目的、被诉侵权软件与合同约定软件的功能配套性以及合同履行情况进行判断。

在涉案合同履行过程中,基于被告的需求,原告开发完成了被诉侵权软件,除非有相反的特别约定,应当认定被诉侵权软件属于合同的范围。根据合同约定,被诉侵权软件的著作权应当归被告所有,故被告并不构成侵权。5

 

04 时间节点的确定:明确计算机软件开发成果是否交付

因此,案件审理中,应当让开发方明确其认为满足合同要求的软件最早何时交付以及通过什么方式交付。由于软件交付后,双方通常存在测试问题反馈、修改完善、再交付、再反馈等过程,软件成果也可能需要多次提交测试,我们需要明确符合合同基本要求的软件最早交付的时间。

需要说明的是,通常情况下除非有相反约定,软件的首次交付并不是指最终源代码,而是目标程序。只有双方对目标程序经测试修改验收无误,委托方付清相应款项后,开发方才最终交付源代码。

因此,审理中也要明确当事人主张的未交付软件是指未交付最终的源代码还是目标程序。实践中,大多数纠纷都不涉及交付源代码的问题,而是在此之前双方即已经就合同的履行产生纠纷。

关于交付的方式,通常情况下,开发方都在自己所有的服务器上进行开发,此时的软件交付通常应当是软件安装包以及相关文档,以供委托方安装测试,也有可能是向委托方交付链接地址、用户名及密码。当然,也有在委托方现场开发或者在委托方提供的服务器上进行开发,此时可能不存在提交安装包的问题,但应当提交登录软件的用户名或者密码。

软件开发服务器的权属不同,有时也直接影响软件灭失时的责任承担问题。如果软件是部署在开发方自己的服务器上,由于服务器故障导致软件无法测试或者勘验的风险通常由开发方承担;如果软件是直接在委托方所有的服务器上开发,开发方证明其已经交付了相关软件,但软件最终无法测试或勘验的,相关风险则应由委托方自行承担。

在开垦公司与乐君公司计算机软件开发合同纠纷案中,双方确认涉案软件系通过云服务器交付,开垦公司曾支付费用给乐君公司购买云服务器,后由于云服务器到期未续费已无法打开。乐君公司已经提供了交付的初步证据,由于开垦公司未续费导致云服务器不能登录且其未提供任何反证,故法院认为乐君公司已经交付了软件。6

 

05 是否迟延交付:判断交付软件是否超出合同约定期限

委托方主张开发方违约的一个常见理由是开发方迟延交付开发成果。开发方则往往抗辩迟延是因为委托方对于阶段性成果存在迟延确认,比如UI设计没有及时予以确认,合同履行中存在功能需求变更导致开发周期延长等。

对于委托方的主张,首先应当判断开发成果是否进行了交付,如果在合同约定的期限内开发方并未交付软件,则自然构成迟延履行;如果已经进行了交付,则需要判断交付成果的时间是否客观上超出了合同约定的期限。

如果超出了,则审查判断开发方提出的抗辩理由是否具有证据支持,是否具有合理性。由于软件开发的过程是将主观需求客观化的过程,双方之间很有可能会对原本约定的功能进行修改,因此,在判断合同履行是否超期时不宜过于严格。

实践中,比较常见的情况是,开发方的履行客观上超出了合同约定的期限,但委托方并未提出异议,而是继续与开发方就软件开发的内容进行沟通,对开发方交付的软件进行测试反馈,开发方也继续予以修改完善,由于最终交付的软件仍然未满足委托方的要求,委托方提出开发方构成迟延履行。

在上诉人融卫公司与被上诉人捷途公司等计算机软件开发合同纠纷案中,最高人民法院认为,捷途公司于2018年4月29日提交软件验收,该日期显然已经超过了《APP制作合同书》关于交付时间的约定,但是融卫公司和捷途公司在交付日期届满后仍然继续就修改、优化软件交换意见并付诸实施,由此可知,双方当事人就延长交付验收时间达成了合意,捷途公司在2018年4月29日交付软件没有违反约定。7

 

06 合同履行的重要依据:交付的开发成果与合同约定功能的比对

在进行功能比对时首先应当确定用于比对的软件版本。因为有的案件中,原告起诉到法院时距双方发生纠纷已经有较长的时间间隔,此时用于比对的软件版本应当是发生纠纷时的版本,因为只有当时的版本才能反映合同履行当时的真实状态。毕竟开发方可能利用起诉前的时间间隔继续对软件进行开发、完善,而后续补充开发完善的软件不能也不应作为证明开发方在纠纷发生前已经完成软件开发的证据。

在上诉人融卫公司与被上诉人捷途公司等计算机软件开发合同纠纷案中,最高人民法院认为,勘验软件源代码显示该软件完成时间是2018年4月27日,与终验软件的验收时间相契合;勘验软件与终验软件的界面基本相同,虽然二者在功能子项以及网页自适应存在差异,但是上述差异非软件本身的差异导致,在融卫公司未举证证明勘验软件完成时间被刻意修改的情况下,应认定勘验软件与终验软件一致。8

双方确定用于功能比对的软件版本后,应当结合双方确认的功能需求点,勘验开发方交付的软件与合同约定的功能需求是否一致。为提高此类案件的审理效率,此项工作可以在庭前先由当事人自行比对。

例如,先由委托方提交开发方交付软件具体问题的清单,然后由开发方对委托方提出的问题清单予以回复确认。开发方回复的意见主要包括以下几种情形:问题客观上存在;问题属于软件配置的外部软硬件环境导致,并非软件自身问题;问题并非合同约定的范围;问题相关的功能已经在合同履行中进行了变更等。

之后,再由委托方对开发方的回复进行再反馈,明确哪些方面认可开发方的意见,哪些方面不认可开发方的意见。

经过上述沟通,可以聚焦涉案软件与合同约定相比存在的问题,即双方对软件功能的争议焦点。如有需要,可在庭审或庭前会议中由法官组织查看软件,判断当事人争议的功能点的客观运行情况,作为后续判断谁应对相关问题承担责任的事实基础。

至于相关问题产生的原因则遵循“谁主张、谁举证”的原则,根据双方当事人提交的证据判断哪一方应当对软件存在的问题承担责任。

在判断开发方交付的软件是否符合合同要求时,还应注意如果委托方收到软件后无正当理由怠于测试验收,也未及时提出软件存在问题,应当视为软件符合合同要求,视为验收通过,事后委托方不应再以软件功能不符合合同要求为由起诉主张解除合同。

 

07 合同目的是否无法实现:判断合同是否因一方根本违约而解除

就委托方而言,其合同目的在于按时获得能够满足合同约定功能的计算机软件;就开发方而言,其合同目的在于按时获得软件开发的费用。因此,应当在前期事实查明的基础上准确判断合同目的能否实现。在具体判断时总体上要把握以下几个方面的问题:

一是区分签订合同的目的与动机。委托方签订计算机软件开发合同的目的是为了获得符合要求的计算机软件,至于其当初为什么打算开发计算机软件、开发该软件意图实现何种用途等,更多属于动机的范畴。除非双方明确将动机作为合同的重要条件予以约定,否则在软件符合合同要求的情况下,仅仅因为该软件相关的市场机会不再存在、不再需要使用该软件等都不应成为当事人解除合同的正当理由。

在大猫公司与飞燕公司计算机软件开发合同纠纷案中,法院认为,大猫公司作为涉案计算机软件开发合同的委托方,其合同目的是取得约定的软件,而订立合同的动机为通过开发的软件优化库存管理,促进其租赁业务。大猫公司的上述动机没有在合同中通过某种约定明确体现出来,且开发方飞燕公司并不接受其在合同订立后增加开发软件的库存功能,由此大猫公司主张其无法实现合同目的,法院不予支持。9

二是区分软件功能缺失与软件功能瑕疵。软件开发的过程是一个不断调试完善的过程,不可能一蹴而就。被告交付软件存在的问题应当区分软件功能缺失和软件功能瑕疵。

例如,合同约定软件应当具备A、B、C、D等功能,但经测试并不具备D功能,由于计算机软件的运行需要不同模块的相互配合,其中某个模块的功能缺失直接影响软件的整体运行,此种情况下通常可以认定被告交付的软件不符合合同约定,无法实现合同目的。如果经测试软件具备D功能模块,但在具体运行中存在一些Bug,这些Bug可以经过后续修改完善予以弥补,此种情况下,通常不应认定被告交付的软件无法实现合同目的,不应认定构成根本违约。

三是区分核心功能与非核心功能。功能的缺失通常可以认定开发方存在违约行为,但并不必然导致合同目的无法实现。如果仅仅是软件中的非核心功能缺失,并不对软件运行或者使用产生实质性影响,通常也不宜认定构成根本违约,可以通过让被告承担违约责任的方式赔偿委托方受到的损失。

在越诚公司与辅昊公司计算机软件开发合同纠纷案中,越诚公司所开发的软件存在打印、电缆井示意图的导出、系统管理、系统日志等功能未完成或存在缺陷,但这些功能并非涉案软件的主要功能,也未实质性地影响软件的正常使用,法院认为,辅昊公司以此主张越诚公司构成根本违约不能成立。10

四是区分主给付义务与从义务或者附随义务。计算机软件开发合同的主给付义务是委托方向开发方支付价款,开发方向委托方提交符合合同要求的软件。任何一方违反主给付义务均构成根本违约,非违约方有权据此解除合同。

除了主给付义务,当事人还应当遵循诚实信用的原则,根据合同性质、目的和交易习惯履行通知、协助、保密等义务。就计算机软件开发而言,开发方通常应当为委托方开具付款发票,交付软件后还应当提供必要的安装使用指导服务。通常情况下,违反上述义务并不会导致合同解除,但如果开发方开发的软件较为特殊,运用通常的技术手段无法安装使用,开发方又拒绝提供必要的指导导致软件无法使用的,委托方有权解除合同。

在原告亚力公司与被告探谋公司计算机软件开发合同纠纷案中,被告向原告提供的源代码使用了特殊的编程方法,一般的技术人员无法安装使用,而被告拒绝提供必要的指导。

法院认为,被告作为软件开发者在向原告交付软件时应当一并交付安装所需的相应技术资料,亦应在原告表示无法安装涉案软件时提供协助或者指导。但被告拒绝为原告安装涉案软件提供协助、指导,有违诚实信用原则,导致涉案网站源代码无法正常安装并投入使用。原告有权解除涉案合同,要求被告返还已经支付的合同款项。11

08 一些特别情况:非根本违约时的合同解除

通常情况下,只有一方当事人存在根本违约时,合同才可能由非违约方解除。但考虑到合同的实际履行情况以及双方当事人的意思表示,即使不构成根本违约,合同也可能基于当事人的协商或者因合同履行陷入僵局而解除。特殊情况下,违约方也可以请求解除合同。

1.双方就解除合同达成合意而解除

诉讼过程中,被告虽然并不构成根本违约,但考虑到合同履行实际情况,其对于原告解除合同的诉请本身并不持异议,此时可以认为双方就合同解除已经形成合意,均同意解除合同,法院可以确认合同在双方达成合意时解除。

需要注意的是,当事人对于合同解除达成的合意不应附加前提或条件。例如,一方表示如果对方退还开发费,那么其同意解除合同,而另一方不可能同意退还开发费,此种情况下不应认定双方就合同解除达成了合意。

双方就解除合同本身不持异议,通常会请求法院根据案件具体情况裁判合同解除的后果。因此,在具体案件审理中,如果法院经审理认为合同可能不具备因根本违约解除的条件,虽然可以判决驳回原告的诉讼请求,但当事人的合同纠纷并未得到实质性解决。此时可以向当事人释明,如果原告关于根本违约解除合同的诉请得不到法院支持,其对于合同履行的态度,是希望继续履行还是仍然希望解除合同。如果双方当事人均不愿意继续履行合同,法院可以基于当事人的合意解除合同,并对合同解除的后果予以处理。

2.非违约行为导致合同陷入履行僵局而解除

计算机软件开发合同是双务合同,而且软件功能需求的确认离不开委托方的配合,否则合同的履行将无法进行。如果在需求调研阶段或者软件开发过程中,双方当事人对于某个功能如何开发无法达成一致,而且也无法基于行业内普遍的理解予以确定,特别是对于某个功能点的理解出现不一致,双方又无法通过协商解决时,合同的履行很容易陷入僵局。此时由于很难将合同的无法履行归因于其中一方当事人,也就是说双方当事人可能均无过错(当然也可能均有过错),但合同又无法继续履行,也可以基于合同客观上无法继续履行而解除合同。

此种情形的合同解除既不同于一方根本违约导致的合同解除,也不同于违约方的合同解除,而是基于合同客观上陷入僵局而导致的履行不能。

3.违约方基于特定情形主张合同解除

根据《民法典》第五百八十条的规定,当事人一方不履行非金钱债务或者履行非金钱债务不符合约定的,对方可以请求履行。但如果法律上或者事实上不能履行、债务的标的不适于强制履行或者履行费用过高、债权人在合理期限内未请求履行,致使不能实现合同目的的,人民法院或者仲裁机构可以根据当事人的请求终止合同权利义务关系,但不影响违约责任的承担。

就计算机软件开发合同而言,一方面,由于合同的履行特别是软件功能需求的确认离不开委托方的配合,故在委托方不配合的情况下,软件开发合同在事实上不能履行,也不适于强制履行。另一方面,计算机软件开发需要由具体的开发人员完成,具有一定的人身属性,如果开发方不愿意继续履行,也无法强制开发人员履行。事实上,对于计算机软件开发合同履行中违约方提出的解除合同的请求,通常也会得到准许。对于继续履行的诉讼请求,如果合同客观上无法强制履行,应当通过释明让守约方选择违约损害赔偿代替继续履行弥补其因对方违约遭受的损失。

在上诉人鼎捷公司与被上诉人麦点公司计算机软件开发合同纠纷案中,最高人民法院认为,ERP系统需要根据麦点公司的具体需求、资源、管理流程实现,没有麦点公司的配合,鼎捷公司无法独立完成涉案合同的继续履行。虽然麦点公司在本案中主张解除合同所提出的事实依据均不能成立,但如果不允许麦点公司请求解除合同,对合同双方都不利,因此本院对麦点公司解除合同的诉讼请求予以支持。12

09 责任承担:合同解除(终止)的法律后果

计算机软件开发的过程在纠纷发生时系已经发生的事实,客观上无法恢复原状。因此,计算机软件开发合同解除后的责任承担通常应当区分合同是否系根本违约解除,以确定对于已经完成的开发内容是否需要折价补偿。

在上诉人中新蓝软件有限公司、李群与被上诉人精科公司计算机软件开发合同纠纷案中,最高人民法院指出,合同解除后已经履行的部分并非当然恢复原状,而是应根据履行情况和合同性质加以权衡。涉及计算机软件开发合同解除后应否恢复原状,特别是开发方先期收取的开发款应否全部或部分返还的问题,需综合考量计算机软件开发合同自身特点、开发方实际履行情况、开发方有无过错及过错大小、开发方实际投入的工作量及已完成的开发成果等多种因素,秉持诚信原则和公平原则加以判断。13

1.因根本违约而解除

计算机软件开发合同因根本违约而解除通常发生在委托方享有合同解除权的情形,此时委托方一般有权要求开发方返还已经支付的开发费用并按照合同约定承担违约责任。

如果合同没有约定违约责任,委托方有证据证明其存在其他损失的,违约方也应予以赔偿。开发方已经完成的开发内容并不需要委托方进行折价补偿,因为合同无法履行的责任主要或者完全在于开发方。

2.双方对于合同解除均有过错

如果双方对于合同的解除均有一定过错,那么在确定合同解除后的法律责任时不应简单地采取“恢复原状”的责任承担方式,而应综合考虑双方的过错程度、已经完成的开发成果所占的工作量等因素,确定是由开发方返还相应的开发费,还是由委托方继续折价补偿开发方已经完成的工作成果。

至于违约责任,可以基于双方的过错程度予以折抵。

在上诉人远健公司与被上诉人睿思玛特公司计算机软件开发合同纠纷案中,最高人民法院认为,虽然本案导致合同未能继续履行并解除的主要原因在于睿思玛特公司拒绝提供一期工程进行测试验收,但远健公司对于该结果的发生亦负有不可推卸的责任。远健公司对合同解除亦应承担相应的责任。合同解除后,睿思玛特公司虽因其违约行为不能获得一期工程剩余合同款,但对其已完成的一期网站开发工作的开发成本,远健公司就其过错应与睿思玛特公司进行分担。14

3.违约方解除合同

对于违约方解除合同的情形,虽然合同解除后应当恢复原状,但是不能免除违约方的赔偿责任,违约方仍应就合同解除给非违约方造成的损失承担相应的违约责任。

在上诉人鼎捷公司与被上诉麦点公司计算机软件开发合同纠纷案中,最高人民法院认为,麦点公司作为违约方所本应承担的违约责任不能因解除合同而减少或者免除。在麦点公司返还鼎捷公司已交付标的物的情况下,鼎捷公司仅能请求除返还原物之外所遭受的损失,即因已经提供的二次开发和技术服务遭受的损失。对于该部分损失,应当根据鼎捷公司的已付开发和服务成本、后续维护义务的免除等因素,合理确定其金额。虽然鼎捷公司已经完成了绝大部分功能点的开发,但是合同终止履行后也免除了其后期免费维护义务,同时考虑麦点公司主张的人员工资损失等经营成本与本案的关联程度等因素,维持原审法院认定麦点公司赔偿鼎捷公司75万元的认定。15

 

10 结语

计算机软件开发合同纠纷的审理在事实查明和法律适用方面均较为复杂,裁判结果可能与当事人诉请有所偏离。

为避免当事人诉累,达到实质性化解纠纷的目的,在审理过程中还应当注重发挥释明的作用,对于基于事实查明可能产生的不同法律适用,及时通过释明的方式引导当事人适时调整诉讼请求。

通过依法释明,在查明事实的基础上对合同是否解除、合同解除的后果等作出公平合理的认定。

 

注释:

1《最高人民法院关于第一审知识产权民事、行政案件管辖的若干规定》(法释〔2022〕13号)于2022年5月1日起施行,自此之后,计算机软件开发合同纠纷原则上由有管辖权的基层人民法院审理。在此之前,由知识产权法院或者省、自治区、直辖市人民政府所在地的中级人民法院和最高人民法院确定的中级人民法院管辖。

2参见最高人民法院(2021)最高法知民辖终230号民事裁定书。

3参见最高人民法院(2021)最高法知民辖终73号民事裁定书。

4参见北京市第一中级人民法院(2002)一中民终字第2424号民事判决书。

5参见最高人民法院(2019)最高法知民终694号民事判决书。

6参见上海知识产权法院(2017)沪73民初12号民事判决书。

7参见最高人民法院(2020)最高法知民终592号民事判决书。

8参见最高人民法院(2020)最高法知民终592号民事判决书。

9参见最高人民法院(2021)最高法知民终727号民事判决书。

10参见上海知识产权法院(2015)沪知民初字第594号民事判决书。

11参见上海知识产权法院(2016)沪73民初112号民事判决书。

12参见最高人民法院(2021)最高法知民终1431号民事判决书。

13参见最高人民法院(2020)最高法知民终1545号民事判决书。

14参见最高人民法院(2020)最高法知民终72号民事判决书。

15参见最高人民法院(2021)最高法知民终1431号民事判决书。