紫光云引擎科技(苏州)有限公司

닏州云燕信息科技有限公司、某某引擎科技(苏州)有限公司计算机软件开发合同纠纷民事二审民事判决书

来源:中国裁判文书网
中华人民共和国最高人民法院
民 事 判 决 书
(2021)最高法知民终1045号上诉人(原审原告、原审反诉被告):苏州云燕信息科技有限公司。住所地:江苏省常熟市虞山镇高新技术产业园国新路16号2幢。法定代表人:夏耀文,该公司总经理。委托诉讼代理人:阚国锋,江苏正和正律师事务所律师。被上诉人(原审被告、原审反诉原告):***引擎科技(苏州)有限公司。住所地:江苏省苏州高铁新城南天成路99号19层。法定代表人:彭浩,该公司董事。委托诉讼代理人:奚英,江苏同益大地律师事务所律师。委托诉讼代理人:袁静雯,江苏同益大地律师事务所律师。上诉人苏州云燕信息科技有限公司(以下简称云燕公司)因与被上诉人***引擎科技(苏州)有限公司(以下简称***公司)计算机软件开发合同纠纷一案,不服江苏省苏州市中级人民法院于2021年2月26日作出的(2020)苏05民初872号民事判决,向本院提起上诉。本院于2021年5月24日立案后,依法组成合议庭,并于2021年11月22日询问当事人,上诉人云燕公司的委托诉讼代理人阚国锋,被上诉人***公司的委托诉讼代理人奚英、袁静雯到庭参加询问。本案现已审理终结。云燕公司上诉请求:1.撤销原判,改判支持云燕公司的一审诉讼请求,驳回***公司的一审反诉请求,或者发回重审;2.一审、二审诉讼费用由***公司承担。事实和理由:原审法院认定事实错误。(一)***公司迟延履行合同。1.根据双方于2018年9月30日签订的《云燕智能新零售平台项目合同》(以下简称涉案合同)的约定,云燕智能新零售平台(以下简称云燕系统)应在2018年12月31日前验收上线并交付给云燕公司,而不仅仅是测试上线。但***公司在2019年1月至3月不断修改,未能交付符合要求的软件,已构成迟延履行。2.由于***公司缺乏开发智能零售软件的经验,云燕公司提供了原有的海星宝软件系统(以下简称海星宝系统)供***公司借鉴,***公司可节省大量开发时间。3.从“海星宝项目进度汇报群”的聊天记录看,云燕公司法定代表人夏耀文于2018年12月4日提出进度太慢,应该11月底上线,***公司员工郭伟则表示要赶时间,必须按时交付。实际上,海星宝系统只是局部修改,修改项目占用时间不多,并不会影响云燕系统的开发进度。因此,原审法院关于云燕公司要求***公司对海星宝系统进行维护和修复升级,占用了云燕系统的开发时间,影响了云燕系统开发进度的认定是错误的。4.《云燕智能新零售平台项目需求工作范围说明书》(以下简称《需求说明书》)虽然对功能相关问题的描述比较抽象,但这些功能是智能零售的基本功能,***公司于2018年12月29日交付测试时,云燕系统的基本交易功能未实现,云燕公司为此提出修改完善的意见。因此,原审法院关于云燕公司提出众多需求修改和新增要求,***公司需额外付出开发时间的认定是错误的。5.云燕公司在2018年12月30日之后配合***公司测试,并不改变***公司延期交付的事实。6.“云燕系统上线沟通群”聊天记录证明,云燕公司在2019年1月至3月测试时发现云燕系统存在各种问题,包括微信小程序不能正常使用、支付宝没有小程序、后台账号无法填写、使用测试平台并未上线、平台无法读取硬件版本号和物联网卡号、设备开门后没有记录、标签录入程序登录失败等。综上,***公司已构成迟延履行。(二)关于云燕系统的验收。“云燕系统上线沟通”群的聊天记录证明,至2019年3月,云燕系统还在测试,并未完成,云燕公司无法确认项目已经完成,原审法院关于云燕公司未盖章确认视为拒绝验收,云燕系统应视为已验收合格的认定没有依据。(三)根据前述事实,云燕公司的起诉请求于法有据。***公司无权主张云燕公司支付剩余款项42万元及逾期付款利息。***公司辩称:(一)***公司未迟延履行。1.***公司已于2018年12月29日交付云燕系统供云燕公司测试,之后云燕公司不断提出修改或新增需求,***公司按照云燕公司要求修改后再次交付,云燕公司对此并未提出异议,因此,***公司并未迟延履行合同义务。2.“海星宝-紫光对接群”聊天记录关于“我们的主要方向是新系统,老系统……主要是维护……小需求尽量都放到新系统”,“海星宝项目进度汇报群”关于“……明天部分人员开始转战老系统……”等内容证明,在***公司为云燕公司开发新的云燕系统的过程中,云燕公司还要求为其维护、修复、优化升级原有的海星宝系统。云燕公司关于海星宝系统是供***公司借鉴的主张不能成立。3.云燕公司员工李恩慧与***公司员工李文彬的聊天记录、“云燕系统上线沟通群”聊天记录证明,《需求说明书》对软件功能的约定较抽象,云燕公司在***公司开发过程中不断细化具体功能,直到2019年1月,云燕公司仍在调整、新增需求事项,因此,应增加***公司的开发时间。4.“云燕系统上线沟通群”聊天记录显示,***公司于2019年2月20日询问云燕系统是否可以用,云燕公司回复可以用;云燕公司员工李恩慧与***公司员工李文彬的聊天记录显示,李文彬于2019年2月26日询问什么时候使用整个系统,李恩慧回复正在用。由此可见,云燕公司于2019年2月已确认云燕系统可以正常使用。5.“云燕系统上线沟通群”聊天记录证明,云燕公司拒绝在验收单上签字仅是因为对工作量的计算有异议,对云燕系统开发完成与否未提出异议。因此,云燕公司所称***公司直到2019年3月都未能交付符合要求的软件的理由不能成立。(二)云燕公司拒绝验收,应视为云燕系统已通过验收。云燕公司于2019年2月已确认云燕系统可以正常使用,***公司于2019年3月26日、29日提请云燕公司办理确认手续和项目交接,于2019年4月15日发送邮件要求云燕公司五日内答复验收情况,逾期视为验收合格,但云燕公司未答复,故***公司于2019年4月26日发送邮件告知云燕公司视为云燕系统已验收合格。(三)***公司于2019年1月至3月,根据云燕公司的需求修改和新增需求修改云燕系统,云燕系统的主体功能已实现,因此,云燕公司要求解除合同的理由不能成立。云燕公司向原审法院提起诉讼,原审法院于2020年7月27日立案受理,云燕公司起诉请求:1.判令解除涉案合同;2.判令***公司退还云燕公司已付的项目进度款18万元,并赔偿从2018年10月20日开始至付清之日止的利息损失[以18万元为基数,2019年8月19日之前按同期中国人民银行公布的贷款基准利率计付;2019年8月20日之后按同期全国银行间同业拆借中心公布的贷款市场报价利率(LPR)计付];3.本案诉讼费用由***公司承担。事实和理由:涉案合同约定由***公司为云燕公司开发部署云燕系统,完成配置和部署工作的期限为2018年9月30日至2018年12月31日。云燕公司按照合同约定支付***公司第一期项目款18万元。2018年12月31日期限届满前,***公司未能完成云燕系统基本交易功能及全系统验收上线。2019年1月之后,***公司和云燕公司仍在沟通开发中出现的问题,经云燕公司催促,***公司一直未交付符合要求的系统。因***公司违约,已无法实现合同目的。***公司原审辩称:(一)***公司已按要求开发完成云燕系统并交付云燕公司使用。***公司于2018年12月29日完成云燕系统的开发和部署,并提供给云燕公司测试使用。云燕公司在测试过程中提出修改意见并增加部分新需求,***公司修改完成后提交云燕公司测试,云燕公司未提出任何问题。***公司开发的云燕系统已符合合同及云燕公司要求并交付使用,但云燕公司拒绝验收。(二)云燕公司在涉案合同范围之外增加了工作内容,***公司仍积极处理。涉案合同约定***公司为云燕公司开发和部署云燕系统,云燕公司在合同履行过程中额外要求***公司对云燕公司正在使用的海星宝系统进行维护和修复,导致***公司实际工作内容和工作量远超合同约定,但***公司仍按合同约定时间完成云燕系统的开发和部署。退一步讲,因云燕公司在涉案合同之外增加了工作内容,***公司有权顺延交付时间。双方在《需求说明书》中明确约定了工作需求和工作范围,但实际开发过程中,云燕公司多次变更、增加需求,增加了***公司的工作量。但***公司仍按合同约定交付云燕系统。云燕公司所称***公司未能交付不能成立,要求解除合同于法无据,请求驳回云燕公司的诉请。***公司向原审法院提起反诉,***公司反诉请求:1.判令云燕公司继续履行涉案合同;2.判令云燕公司支付剩余合同款项42万元,并支付逾期付款利息损失(以42万为基数,自2019年1月1日起按同期银行贷款利率计算至2019年8月19日,自2019年8月20日起按贷款市场报价利率计算至实际付清之日);3.判令云燕公司承担本案全部诉讼费用。事实和理由:2018年9月30日,双方签订了涉案合同,约定由***公司为云燕公司开发和部署云燕系统,合同总价款为60万元。合同签订后,云燕公司支付了首期款项18万元。***公司已按涉案合同要求完成了云燕系统的开发和部署,但云燕公司迟迟未进行验收并拒绝支付剩余款项42万元。云燕公司原审辩称:根据涉案合同第七条第二款的约定,***公司应当在2018年12月31日之前完成云燕系统的开发和部署。但到2018年12月31日为止,***公司连基本的交易功能都没实现,云燕公司举证的几个群聊天记录能够反映2019年1月份以后还在修改测试,直到2019年4月***公司仍未能交付开发成果。因此,***公司已经构成严重违约,不能实现合同目的,无权主张剩余进度款。***公司已经收取的第一期进度款18万元也应当予以返还。请求驳回***公司的反诉请求。原审法院认定如下事实:(一)涉案合同基本情况2018年9月30日,云燕公司(甲方)与***公司(乙方)签订涉案合同,合同有效期限自2018年9月30日至2021年9月30日。涉案合同约定:云燕公司委托***公司开发和部署云燕系统并支付费用,***公司接受委托进行开发和部署工作。第一条项目要求约定:项目范围和项目方案见《附件一:云燕智能新零售平台项目需求工作范围说明书》(即《需求说明书》);本项目技术实现方法,通过对云燕运营交易需求分析规划和系统开发,部署到云端实现云燕整体运营管理平台;本项目实现路线,需求沟通、需求确认、系统规划、系统开发、系统部署、软件测试、软件分步上线、客户分步验收、优化调整、整体上线、客户综合验收等部分。第二条进度计划约定:***公司完成配置和部署项目工作进度计划为2018年9月30日至2018年12月31日。第三条费用付款约定:此项目软件开发和部署总费用为60万元(包括系统开发、服务器资源和部署),按照三期收取,第一期在合同签订两周内云燕公司向***公司支付总费用的30%即18万元,第二期为云燕系统基本交易功能验收上线(即实现此平台线上交易功能上线)后一个月内云燕公司向***公司支付总费用的30%即18万元,第三期为云燕系统全系统验收上线一个月内云燕公司向***公司支付总费用的40%即24万元;云燕系统实施上线后,需要系统功能变更的,开发和实施部署收费原则按照2000元每人每天收取。第四条约定:本合同的变更必须由双方协商一致,并以书面形式签约确定。第七条交付方式约定:***公司应当按以下方式向云燕公司交付开发及配置部署成果:1.系统开发和部署成果交付的形式及内容参考《需求说明书》;2.系统开发和部署成果交付应于2018年12月31日前在云燕公司完成交付。第八条约定:云燕智能售货设备硬件接口文档需由云燕公司提供,如果云燕公司无法提供完整和符合要求的对接技术文档将会影响到***公司的正常开发,那么最终结果由云燕公司负责;同时明确按照《需求说明书》,根据云燕公司提出的需求规格文件对***公司完成的开发和部署成果进行验收。第十三条约定:合同执行过程中,如出现项目停滞、延误等情况的,由双方协商解决。第十五条约定:双方确定,在本合同有效期内,云燕公司指定谭志强为云燕公司项目联系人,***公司指定郭伟为***公司项目联系人。《需求说明书》约定了如下需求:1.设备互联,具体包括设备接入和下线、设备状态和设备故障、商品存货信息、开关门状态、锁状态、商品购买信息、广告推送、能耗管理、管理员操作记录、缓存数据处理、远程管理;2.用户管理,具体包括角色管理、用户管理、代理商管理、代理商提现管理、合作点管理、会员管理、用户分析;3.商品管理,具体包括供应商管理、商品信息、商品类型、货柜商品管理、仓库管理;4.货柜管理,具体包括机器组设置、机器管理、货道管理、机器广告、配置参数;5.订单管理,包括销售明细、订单分析;6.广告管理,包括广告发布、广告管理;7.告警管理;8.日志管理;9.促销管理;10.远程运维与保修管理;11.数据分析;12.上货小程序;13.取货柜功能;14.微信公众号和支付宝生活号。2018年10月19日,云燕公司向***公司支付了合同第一期开发费用18万元。(二)软件开发及双方沟通情况云燕公司提交的“海星宝-紫光对接群”(群成员有云燕公司夏耀文、谭志强、李恩慧,***公司郭伟、王金旺、张乐)聊天记录显示:1.李恩慧于2018年10月17日发送图片并要求更新认领人功能,张乐回复表示认领人功能是机柜和人唯一对应,招商人员属于新的需求了。李恩慧回复“一开始没讲清楚”。2.李恩慧于2018年10月18日提出按其客户要求修改“老系统”(海星宝系统),正在做的个别内容可以缓。张乐回复,之前提出的要求已在做,但“我们的主要的方向是新系统,老系统……主要是维护了,后面这种小需求尽量都放到新系统”。郭伟提出云燕公司应和客户准确确认需求,另外,云燕系统有的功能不要重复工作。郭伟告知夏耀文,客户提出一些比较紧急的需求,主要包括“(1)设备被领用人领用后,维护人员可以看到设备销售情况(系统开发);(2)搜索功能失效(系统检查和修复功能);(3)按照柜子或者产品或者日期显示销售额,三种情况金额总数不对(要全面检查老系统的BUG,并且做修复功能);(4)销售额等报表可以导出excel(系统报表开发)”,开发这些功能需要10-15天左右专人开发,夏耀文询问“新系统里这些功能都会有吗”,郭伟回复“后续可以加到新系统的开发中”。夏耀文回复要求解决客户的上述需求。3.李恩慧于2018年11月7日提出修改海星宝系统“录入的小程序”字体。4.王金旺于2018年11月15日发送《海星宝订单统计交易总金额问题反馈》并告知“他们要求周五要解决,现在设备不敢用了”。5.张乐于2018年11月22日发送《海星宝机柜需求记录并跟进1120-反馈》,并告知李恩慧“……新的需求,还是挺多的”。云燕公司提交的“海星宝项目进度汇报群”聊天记录显示:***公司郭伟于2018年12月1日邀请云燕公司夏耀文和谭志强加入该微信群。1.郭伟于2018年12月4日发送《项目功能进度表》,夏耀文回复表示对进度不满意,郭伟回复称已提出要求,要“按照时间节点交付”。夏耀文回复应该11月底上线。2.谭志强于2018年12月4日发送《项目功能进度执行表》,要求按该表列明的进度执行。3.郭伟于2018年12月4日发送《海星宝机柜需求记录》,该需求记录载明涉及海星宝系统的机柜管理--订单统计及添加导出功能、机柜管理--价格策略及批量处理、机柜管理--添加导出功能、取货柜功能、柜内商品查询接口开放、订单状态修改、客户信息导出共7项新需求。郭伟告知,按照双方的沟通,“老系统的修改内容”预计15号左右陆续交付;“针对新系统的交付我们可能需要一些时间,在今天我给你们的项目进度上面再多给我们两周的时间,我们是要保证质量。”“如果没有问题,我们明天部分人员开始转战老系统。”谭志强要求给出各项功能上线时间表,郭伟回复“老系统明天我们给出15号之前的上线计划,上述新系统的时间调整,可以吗?”谭志强回复“不要拖了”。4.郭伟于2018年12月5日发送《项目功能进度表2018-12-05》,谭志强回复“按照签订的合同,2018年12月31日全部功能上线”。夏耀文于2018年12月17日表示“代扣申请到现在还没有完成,这个月底怎么上线呢”。云燕公司提交的云燕公司李恩慧与***公司张乐的微信聊天记录显示:1.张乐于2018年11月14日、15日告知李恩慧,代理商反馈的问题不是很简单就能解决的,如果要做,需要评估工作量,也需要一定时间,因为***公司要负责“新系统”的开发。2.张乐于2018年11月27日回复李恩慧,“这个周应该可以上线基本的交易功能”。3.李恩慧于2018年12月13日询问2018年12月15日云燕系统是否可以上线。张乐回复,已和谭志强确认,云燕系统的上线时间是12月底。4.张乐于2018年12月28日发送《云燕新零售系统功能修改清单》,张乐、李恩慧于2018年12月29日商讨云燕系统相关问题,张乐回复李恩慧,“上货不是用小程序做的,是用公众号”。李恩慧提出修改界面,并提出“上完货操作后要拍照上传,要有记录”。张乐回复“拍照上传可以的,我加进去”。张乐还回复,李恩慧提出的“新建机器要用鉴权信息”已加进去。5.张乐于2019年1月2日询问“新系统开始测了吗”,李恩慧回复“在测,有问题再联系”。6.张乐于2019年1月17日告知李恩慧,“刘工说有一个视频的需求,这个需求这次真的做不进去了”“摄像头远程连接查看机器现场情况、摄像头拍照数据上传、查询(新增需求),这次我们做不进去的……想做,就放到二期吧”,一期合同没有约定。云燕公司提交的“云燕系统上线沟通群”聊天记录显示:1.云燕公司李恩慧于2019年1月2日回复“把之前列的问题改好,上正式版吧”。***公司工作人员表示,在支付宝发布正式版需经支付宝客服审核,建议确定无误后发布,并提出“小程序”用测试版测试。李恩慧于2019年1月3日询问能否正常测试,***公司张乐回复称建议“测试先用这一版内测的”“改版以后的再发布”“这次的小程序改动比较大”。2.云燕公司谭志强于2019年1月10日称问题一直没解决,***公司应测试好交付。郭伟回复“现在开始测试,我们测试过了,给你们测试”。谭志强回复“测试过就行,上线吧”。郭伟问“你们不需要测吗?”谭志强询问,提出的问题是否已解决、能不能上线。郭伟回复“边修改边上线”“双方测试没有问题就上线”。3.李恩慧于2019年1月12日询问“之前提的问题都改好了吗”。***公司工作人员回复称,支付部分当天完成,现在有个广告需求。李恩慧询问后台是否有远程升级硬件程序。***公司工作人员回复“这个需求是没有的”,可以放到后面做。郭伟提出“明天把小程序全部发布正式版,催一下支付宝和微信尽快审核,审核完云燕可以全部上线机柜”。4.李恩慧于2019年1月14日询问是否可以上线,郭伟回复“后台系统本来就已经上线了,只是一直在修改,至昨天改完后,小程序申请上线,上线完毕就可以了”。李恩慧回复“上线我们使用吧,我们使用的过程就是测试了”。***公司工作人员表示李恩慧之前提出的问题已修改完毕,李恩慧回复“你们测完就行,我还是要等上线了,再测整个过程。后台使用做个文档说明。”5.***公司工作人员于2019年1月16日告知李恩慧已通过审核,可以测试。李恩慧询问是否是正式上线,***公司工作人员回复“是的”。2019年1月16日,***公司工作人员告知李恩“今天测试系统,目前发现修改的问题总结我发个文档给你们确认”,确认后***公司安排研发,并发送《海星宝需求文档确认书2019年》。李恩慧回复“安排吧”。郭伟询问“今天下午有测到功能BUG吗”,李恩慧回复“还好”。6.李恩慧于2019年1月17日询问测试提出的问题是否已处理,郭伟表示“这些需求需要你们再次确认”“需求不能再扩大了”“如果下次再有修改的,可能限于修改内容的异常或者BUG的处理了”。李恩慧回复“新需求不做?”郭伟回复“……可以二期再处理”,李恩慧回复“我先看看还有别的否,你这边先把昨天列的先做,晚点我给你确认还有没有新增的需要优化的部分”。7.***公司于2019年1月17日发送《海星宝需求文档确认书2019年1月17》并请求确认,李恩慧回复“就按这个来做吧”。李文彬于2019年1月19日至22日陆续告知“商品类型支持自定义了,告警日志添加已处理,代理商列表新增一栏头像显示已上线”“柜内商品和已售卖商品展示也已上线成功”“提现记录支持导出,微信公众号支持扫码显示机器名称”等。8.李恩慧于2019年1月26日询问对修改内容是否测试完成,***公司工作人民回复“今天还需要一天”。9.郭伟于2019年2月14日询问云燕公司什么时候开始测试,***公司可以配合。李恩慧回复“需要的时候我联系你们”。10.郭伟于2019年2月20日询问“系统可以用了吗?”李恩慧发送一张图片并表示“还有这几个点要改一下”,郭伟询问“已经改了几次还要再改?”李恩慧回复“要改的,还有上货的协议那个地方要改一下,我发给李文彬了。”李文彬回复“这些都是需求的变更”,云燕公司应发邮件确认。李恩慧表示除上货协议其他不属于需求变更。郭伟询问“上次需求的那份文件不是最终的需求?”李恩慧表示不是。郭伟回复表示交易的部分都正常了,如果这样改下去不确定什么时候能完成,并询问“如果你说的这些改完了呢?可以验收吗?”李恩慧回复,这些都是海星宝小程序的问题,应当提出过,但找不到记录。李恩慧还表示,系统可以用,但升级的内容应测试完成后可以直接上线,不能有改动“就动在线设备”。11.李文彬于2019年2月21日发送其根据李恩慧提出的改动需求整理的《云燕项目需求确认2月21日》,郭伟于2019年2月22日提醒李恩慧确认。李文彬于2019年2月25日告知李恩慧“综合评估了你上次给我们说的一些需求变动……”“……有很大的工作量”,李恩慧回复“是有点长”。12.郭伟于2019年3月4日询问李恩慧什么时候签确认单。李文彬告知李恩慧“上次需求修改的在处理了,但是文件签了给我们”,李恩慧回复“好”。李文彬询问什么时候签确认单,李恩慧回复“尽快”。13.郭伟于2019年3月13日再次询问李恩慧什么时候签确认单,李恩慧回复有些内容不属于新增需求。郭伟回复,关于新增项目可以一项一项沟通,云燕公司如有异议,双方再讨论。张乐于2019年3月19日解释关于新增需求,李恩慧表示“因为我们可能没有完整的数目提过要求,所以就存在了有遗漏的,等第二次提的时候,你们就觉得是个新的”。云燕公司提交的云燕公司李恩慧与***公司李文彬的微信聊天记录显示:1.李文彬于2019年1月9日表示“明天还是一起来测下,之前我们试了,有些问题没有发现”。2.李恩慧于2019年2月14日表示“上线的就上线了,改的你们在测试地方改。你们不可能改东西都直接在使用的版本改吧”。3.李文彬于2019年2月18日提出,李恩慧可将需要改的内容发给***公司,李恩慧回复“我还要测别的,总结了一起发”。4.李文彬于2019年2月26日询问云燕公司什么时候开始使用云燕系统,李恩慧回复“现在就在用”。李文彬询问“我发的那些全部要改吗?全部改的话周期很长”。李恩慧于2019年2月27日回复“新建了个测试用的设备,另外那些改的你们继续做吧,时间你们自己把控”。5.李文彬于2019年3月7日告知李恩慧需要一起测试一下本次修改的内容。6.李文彬于2019年3月19日询问什么时候签确认单,李恩慧回复表示云燕公司对哪些属于新增事项有异议,除新加一个开锁和上货的区分命令外,其他都不属于新增事项。7.李文彬于2019年4月2日询问能否签字确认验收工作,李恩慧于2019年4月3日回复“需要领导谈”,李文彬询问“还是因为工作量不认可吗”,李恩慧表示对哪些属于新增事项有异议,开发时间长。李文彬于2019年4月12日询问“这个系统你们还要用吗?”李恩慧回复“用啊”“挂了两个”设备。2018年12月29日,***公司张乐向云燕公司发送邮件,邮件内容为:“云燕新零售平台现在已经正式部署到以下网址,现在这个平台已经可以把机器上线进行正式的测试试运行。针对谭总和李工提出的修改意见,我们已经开始进行开发,开发完成测试完一部分,就直接上线一部分。”邮件中有网址及Onenet账号及一份《云燕新零售系统功能修改清单-V1.0》。《云燕新零售系统功能修改清单-V1.0》涉及尽快部署、代理商分成、新增系统名称、代理商信息新增账期、财务人员电话、代理商提现、添加商品信息、价格策略、出入库记录、设备管理的开门功能、运营状态显示信号强度、新增机柜的商品查询、设备导出功能、设备新增的操作、机器广告、订单管理、退款申请、未付款短信推送、黑名单功能、RFID录入小程序、小程序修改的新增广告、上货公众号的上货后拍照上传的功能等方面。2019年1月15日,***公司张乐向云燕公司发送邮件,邮件内容为:“附件是管理平台的使用文档,上次提到的问题,大部分已经修改了,同时小程序也已经发布了,现在可以正式上线试用了,后续的有更新会继续发布。”邮件附件为《云燕新零售自助售货机操作手册》。2019年3月26日,***公司郭伟向云燕公司发送邮件,邮件内容为:“双方根据前期的合同内容,以及云燕方所提出的要求,我们12月底完成了平台部署上线,后又经过贵司所提出要求进行相关模块的修改。1.根据贵司提出的修改部分(总计三次修改意见提出),我们已经按照要求进行修改,贵司李工已经验证完成,确认没有问题,并且已经完成上线作业,相关修改文件如附件(包含增项内容),请盖章签回。2.依据合同的交付内容,我方正式通知本项目我们已经完成交付,烦请配合相关确认手续和项目交接,以及开票付款作业。如有异议,请尽快提出。”邮件附件为《云燕新零售平台项目-需求最终确认书V2.0-20190301》,该附件内容为:项目名称为云燕智能新零售平台项目,时间2019.3.1。经过双方友好沟通和协商,经过努力于2018年12月完成开发任务交付云燕公司测试。1.经过测试且提出两轮修改意见,***公司接收修改意见(详见如下清单),并在2019年1月份修改完成后提交测试。2.经过测试,测试人员再次提出修改意见(详见如下清单),双方本着互相合作的立场,签订云燕新零售平台项目需求调整最终确认书,确认依照本次修改意见为最终修改意见,修改完成后两周内进行上线验收。3.针对后续有系统BUG会及时处理,如果有新的需求和变更则双方后续签署需求变更单以作项目备案和结算。前文所涉清单包括:1.《云燕新零售平台项目功能新增和修改(2018-12-29)》;2.《云燕新零售平台项目功能新增和修改(2019-1-18)》,表格备注:以上两项表格内容已处理完毕(不再额外计算开发时间);3.《云燕新零售平台项目需求新增和修改(需确认签署同意增加开发时间)》,备注:此项为云燕公司需要尽快确认的开发时数。2019年3月29日,***公司郭伟向云燕公司发送邮件,邮件内容为:“由于我方多次电话给夏总,均未接通电话,故再次做邮件确认:截止本周五现在,我方尚未收到贵司关于云燕新零售平台上线后的任何邮件回复,我方再次正式通知贵司做好相关确认手续和项目交接,以及开票付款作业。如果有问题,请在下周二之前回复(即上个邮件的5个工作日),双方进行项目沟通。”2019年4月15日,***公司郭伟向云燕公司发送邮件,邮件内容为:“依贵司与我司签署的***引擎-云燕合同之约,我方按照云燕的所有要求完成了整个项目的交付,云燕公司应在收到项目验收报告(详见附件)后五个工作日内予以答复,如果云燕公司在规定时间内不作回复,则视为云燕公司验收合格。望各位领导知悉。以下为云燕项目执行情况(云燕项目执行情况时间节点):1.合同签订时间,2018年9月30日,要求2018年12月底完成上线;2.代扣申请完毕,2018年12月26日,微信12月26日完成代扣申请完成,其中12月中旬完成支付宝代扣申请;3.项目开发时间,2018年12月26日,详见《项目执行清单》,完成100%的功能清单内容(不含OTA),OTA对接协议是在1月12日给到***公司,故安排后期交付;4.客户参观时间,2018年12月28日,客户至开发现场参观云燕项目整体内容;5.紫光通知云燕-上线试运行,2018年12月29日,我方直接发出上线通知;6.紫光通知云燕-相关提出的修改进行中,2018年12月29日,云燕方陆续提出三次变更,已超出合同范围,我方提出新增15.5的人天;7.全面完成三次系统修改时间,2019年3月22日,期间逐步完成客户需求变更和新增的修改,与客户李工完成验证,并且在3月22日全部功能系统均上线;8.我方提出验收申请,2019年3月25日,客户李工完成验证后,我方多次以邮件方式提出验收,截止目前客户尚未做回应。”附件为《云燕系统-开发过程时间节点信息》和《项目上线与验收确认书》。2019年4月26日,***公司郭伟向云燕公司发送邮件,邮件内容为:“鉴于我方发起的验收申请,已经超过5个工作日,未有正式的回复,则视为云燕公司验收合格。我方将正式发起收款申请。附件详情为付款通知单。”邮件附件为《付款通知函》,***公司要求云燕公司支付云燕智能新零售平台项目二期款、三期款共计42万元。2019年6月21日,***公司郭伟向云燕公司发送邮件,邮件内容为:“截止2019年6月21日17点(贵司夏总又让我方等了1个多月),我方仍未收到贵司的任何回复(项目验收,项目付款等)。请贵司在6月24日17点前回复本项目的验收和付款节点,否则我方将关闭此项目,并且相关法务部门将介入,由此而带来的一切后果由贵司承担。”2019年7月4日,***公司向云燕公司发出《告知函》一份,内容主要为:“2018年9月30日,双方签订总价款为60万元的《云燕智能新零售平台项目合同》。2018年12月31日前,***公司已依据合同约定完成第二期云燕智能新零售平台基本交易功能上线及第三期云燕智能新零售平台全系统上线,云燕公司应依合同约定对已完成的开发和部署成果及时验收。经***公司于2019年3月1日发送《云燕新零售平台项目最终需求确认书》、2019年3月26日及2019年3月29日以邮件形式提示云燕公司进行项目验收及付款、2019年4月26日发送《付款通知函》,云燕公司均未回应。鉴于云燕公司拖延验收及付款的行为已违反合同约定,请云燕公司在收到此函后七日内给予明确的书面答复与说明,尽快履行验收及付款义务。”2019年7月16日,云燕公司向***公司发出《回函》,内容主要为:***公司在《告知函》中称2018年12月31日前,***公司已根据合同约定完成第二期云燕智能新零售平台基本交易功能上线及第三期全系统上线。***公司完全是颠倒黑白,事实是在2018年12月31日前,***公司未能完成上述系统的开发。在2019年1月以后,***公司开发人员还在和云燕公司沟通系统开发中出现的各种问题(有聊天记录为证),但***公司经云燕公司催促一直未向云燕公司交付完工的系统,因此不存在云燕公司拖延验收及付款的问题。***公司现在发函要求云燕公司验收系统,已经超过了2018年12月31日前的最后期限,***公司构成严重违约,已无法实现云燕公司的合同目的,故依据合同法第九十四条第四款规定,云燕公司有权解除合同。为此特通知***公司:解除双方于2018年9月30日签订的《云燕智能新零售平台项目合同》,请***公司退还云燕公司已支付的第一期项目款18万元。2019年7月18日,***公司收到云燕公司的《回函》。原审法院认为,本案争议焦点是:(一)***公司是否构成履行迟延,并致使云燕公司无法实现合同目的;(二)云燕公司拒绝验收的行为是否应视为云燕系统验收通过。涉案合同系双方当事人真实意思表示,亦不违反法律法规的相关规定,合法有效,双方均应遵照履行。关于双方争议,具体评述如下。(一)***公司不构成履行迟延,未致使云燕公司无法实现合同目的根据涉案合同交付时间及分阶段付款条件的约定,云燕系统应在2018年12月31日前验收上线并交付云燕公司。***公司于2018年12月29日将云燕系统提供给云燕公司测试,随后双方于2019年1月至3月不断沟通修改,因此在本案中不能仅以***公司超过合同约定时间而简单认定其构成履行迟延。理由如下:首先,结合双方开发人员的微信聊天内容可知,在***公司开发云燕系统过程中,云燕公司要求***公司对云燕公司之前的海星宝系统进行维护和修复升级,分散了云燕系统开发人员的时间精力。特别是在2018年12月份,因云燕公司要求修改升级海星宝系统,***公司抽调部分云燕系统开发人员转战海星宝系统,更增加了***公司的工作量,影响了云燕系统的开发进度。其次,涉案合同所附的《需求说明书》对功能相关问题的描述比较抽象,结合双方开发人员微信聊天内容可知,双方在开发过程中不断沟通将开发需求逐步细化、修改和新增。云燕公司在2018年12月29日提出了众多需求修改和新增需求,云燕公司在之后测试过程中亦不断调整、新增需求事项,需要***公司额外付出开发时间。最后,根据涉案合同第十三条的约定,合同履行过程中如出现项目停滞延误等情况,由双方协商解决。***公司于2018年12月29日第一次提供云燕系统供云燕公司测试时,已明确表示将对云燕公司修改意见边开发边测试边上线,云燕公司并未提出异议。其后云燕公司亦未就***公司超过合同约定时间交付的行为明确提出异议,而是继续配合履行合同,与***公司进行沟通,对云燕系统多次测试,先后再提出二次修改意见,并在2019年2月27日就修改工作向***公司表示由其自己把控时间,表明云燕公司同意***公司对云燕系统修改完善后再行交付。综上,云燕系统未按合同约定时间开发完成的原因不应简单归责于***公司,云燕公司以***公司未在2018年12月31日前交付云燕系统而认为构成履行迟延,主张***公司构成根本违约,不能成立。本案中,云燕公司主张***公司在2019年1月以后不断修改,经云燕公司催促一直未交付符合要求的云燕系统,致使其无法实现合同目的。对此原审法院认为,涉案合同为计算机软件开发合同,云燕公司的合同目的为取得软件开发成果、实现约定的软件功能,即取得符合合同约定及云燕公司要求的云燕系统。自2018年12月29日至2019年2月,云燕公司先后提出三次需求修改和新增需求的修改意见,***公司根据云燕公司的要求修改并反馈修改进度,供云燕公司测试。结合双方开发人员的微信聊天内容表明,2019年2月20日云燕公司开发人员已确认云燕系统可以使用,至2019年3月***公司陆续修改完成云燕公司提出的修改意见,云燕系统的主体功能已经能够实现,云燕系统已可以正常使用。软件开发完成后存在瑕疵,需要修改和完善是计算机软件开发行业的常见现象,即使云燕系统仍存在个别修改,也并非云燕系统的主要功能,并不影响云燕系统主要功能实现,故不足以导致云燕公司的合同目的不能实现。结合双方开发人员的微信聊天内容,双方于2019年3月后发生纠纷的主要原因并不在于云燕系统主体功能未实现,而在于云燕公司第三次修改意见的需求修改及新增需求所产生的工作量确认问题。因此,并未导致云燕公司不能实现其取得云燕系统开发成果的合同目的。故云燕公司认为***公司根本违约致使其合同目的无法实现的主张缺乏事实与法律依据,其请求判令解除合同并要求退还合同款的诉请不能成立,原审法院不予支持。(二)云燕公司拒绝验收应视为云燕系统验收通过如前文所述,云燕系统测试过程中,云燕公司先后提出三次修改意见,至2019年3月***公司陆续修改完成并反馈修改结果,提供给云燕公司测试,至此云燕系统全部主体功能已经能够实现。***公司先后于2019年3月26日、29日向云燕公司发送电子邮件,提请云燕公司配合做好相关确认手续和项目交接,但云燕公司并未配合。后***公司又于2019年4月15日向云燕公司发送电子邮件,要求云燕公司收到项目验收报告后五个工作日内答复,否则即视为验收合格。2019年4月26日,***公司再次向云燕公司发送电子邮件,告知云燕公司云燕系统视为验收合格。***公司作为开发方,履行了通知云燕公司验收的义务并给予了云燕公司提出异议的合理期间。现并无证据表明云燕公司在限期内提出了正式异议,云燕公司无正当理由拒绝对云燕系统进行验收,未按照合同约定配合提供验收条件。而即使云燕系统存在个别修改,但***公司根据云燕公司意见修改后的云燕系统主体功能能够实现,所存在的瑕疵并不能构成验收障碍。因此应视为云燕公司自2019年4月26日对云燕系统验收合格,云燕公司向***公司支付合同剩余开发费用的付款条件成就。根据涉案合同约定,云燕公司应在云燕系统验收上线后一个月内支付。故云燕公司应在2019年5月26日前向***公司支付剩余开发费用。综上,***公司要求云燕公司支付合同剩余款项42万元及逾期付款利息损失的诉请成立。关于利息起算时间,本案中***公司主张自2019年1月1日起算,其依据是涉案软件于2018年12月29日基本交易功能已验收上线。但结合双方开发人员的微信聊天记录及邮件内容,2018年12月29日仅是***公司第一次向云燕公司提供云燕系统的测试版本,云燕系统进入试运行阶段,尚未进行正式测试,同时亦有云燕公司修改意见尚未修改,故云燕系统不可能已完成基本交易功能的验收上线,***公司的该主张不成立。对于利息起算时间,原审法院根据云燕系统实际开发情况予以调整。综上,云燕公司主张***公司构成根本违约而要求解除合同并退还合同款的诉请缺乏事实与法律依据,原审法院不予支持。***公司的反诉请求具有事实和法律依据,原审法院予以支持。原审法院依照《中华人民共和国合同法》(以下简称合同法)第八条、第四十五条第二款、第六十条、第一百零七条、第一百零九条之规定,判决:1.云燕公司于判决生效之日起十日内向***公司支付合同剩余款项42万元及相应逾期付款利息(以42万元为基数,自2019年5月27日至2019年8月19日按照中国人民银行同期同档次贷款基准利率计算,自2019年8月20日起至实际支付之日止按照同期全国银行间同业拆借中心公布的贷款市场报价利率计算);2.驳回云燕公司的诉讼请求。如果未按判决指定的期间履行给付金钱义务,应当依照《中华人民共和国民事诉讼法》(2017年修正)第二百五十三条之规定,加倍支付迟延履行期间的债务利息。本诉案件受理费3900元,反诉案件受理费3800元,均由云燕公司负担。二审期间,双方当事人均未提交新证据。本院经审理查明,原审法院查明的事实基本属实,本院予以确认。本院认为:本案为计算机软件开发合同纠纷。因涉案合同的签订和履行均发生在《中华人民共和国民法典》施行前,故根据《最高人民法院关于适用时间效力的若干规定》第一条第二款关于“民法典施行前的法律事实引起的民事纠纷案件,适用当时的法律、司法解释的规定,但是法律、司法解释另有规定的除外”的规定,本案应适用合同法的有关规定。根据云燕公司的上诉请求和理由,本案二审的焦点问题是:(一)***公司是否迟延履行合同义务致使云燕公司无法实现涉案合同目的;(二)***公司是否应返还云燕公司已支付的合同款项18万元,以及云燕公司是否应支付***公司剩余款项42万元及逾期付款利息。(一)***公司是否迟延履行合同义务致使云燕公司无法实现涉案合同目的首先,云燕公司关于***公司迟延履行合同义务的上诉理由不能成立。一方面,云燕公司在涉案合同履行过程中向***公司提出了超出合同约定内容的请求事项,客观上占用了***公司的开发人员和开发时间。根据涉案合同约定,***公司的义务是开发部署云燕系统,但云燕公司多次提出针对其海星宝系统的工作内容,包括提出先解决海星宝系统问题,暂缓正在进行的部分开发工作。双方微信聊天记录及***公司于2018年10月至12月发送的云燕公司客户急需解决问题汇总、《海星宝订单统计交易总金额问题反馈》《海星宝机柜需求记录并跟进1120-反馈》《海星宝机柜需求记录》等证据可以证明,***公司在履行涉案合同的过程中,根据云燕公司的要求,同时承担了云燕公司海星宝系统问题的汇总和解决,包括部分功能开发及系统检查和修复等。在此过程中,***公司已明确告知云燕公司海星宝系统的相关工作会影响到云燕系统的开发。***公司于2018年10月18日发送云燕公司客户急需解决问题汇总时,明确说明相应研发需要10-15天时间;于2018年12月4日发送《海星宝机柜需求记录》时明确表明,针对海星宝系统的工作需要专门的人员和时间,为此涉案合同的履行需要另行增加时间。前述证据还证明,云燕公司针对海星宝系统有独立的需求,其关于海星宝系统是供***公司开发云燕系统参考借鉴的主张不能成立。另一方面,云燕公司针对云燕系统的功能需求存在变化,并存在新增功能需求。从双方微信聊天记录看,云燕公司针对云燕系统的具体需求,系由***公司汇总并提请云燕公司确认。为此,***公司先后于2018年12月29日、2019年1月16日、2019年1月17日、2019年2月21日向云燕公司发送《云燕新零售系统功能修改清单-V1.0》《海星宝需求文档确认书2019年》《海星宝需求文档确认书2019年1月17》《云燕项目需求确认2月21日》。***公司在此过程中曾提出“需求不能再扩大了”。云燕公司员工在***公司提请其确认需求时曾表示,部分需求之前已提出,不属于新增需求;由于云燕公司没有一次性确认全部需求,导致双方对哪些属于开发过程中新增的需求存在争议。双方的微信聊天记录和邮件可以证明,云燕公司对云燕系统的具体需求存在陆续确认的过程,而且,云燕公司及***公司均认可在开发云燕系统过程中存在新增需求项目,但对于哪些属于新增项目双方存在争议。其次,云燕公司关于原审法院认定云燕系统视为验收合格没有依据的上诉理由不能成立。双方微信聊天记录显示,***公司于2019年1月16日确认云燕系统上线,云燕公司于2019年2月20日确认云燕系统可以使用,仅提出不能因升级影响在线设备的使用。云燕公司于2019年2月26日、2019年4月2日经***公司询问,分别表示正在使用、使用云燕系统,未对云燕系统的运行提出异议。经***公司多次提请项目交接及验收,云燕公司亦未在合理期限内作出答复。直至***公司于2019年7月4日再次发出付款通知,云燕公司才于2019年7月16日提出解除涉案合同。因此,原审法院关于云燕系统应视为验收合格的认定并无不当,云燕公司该项上诉理由不能成立。综上,云燕公司关于***公司迟延履行合同义务,致使云燕公司无法实现涉案合同目的,并据此要求解除涉案合同的上诉请求不能成立,本院不予支持。原审法院关于***公司不构成迟延履行,云燕系统应视为验收合格的认定并无不当,本院予以确认。(二)***公司是否应返还云燕公司已支付的合同款项18万元,以及云燕公司是否应支付***公司剩余款项42万元及逾期付款利息基于前述分析,***公司已将云燕系统交付云燕公司,且云燕公司已上线使用,云燕公司关于***公司迟延履行涉案合同,涉案合同目的无法实现的主张不能成立,因此,***公司无需返还云燕公司已支付的合同款项18万元,同时,云燕公司应按照涉案合同约定支付***公司剩余款项42万元以及相应的逾期付款利息。云燕公司该项上诉请求不能成立,本院不予支持。原审法院的相关认定并无不当,本院予以确认。综上所述,云燕公司的上诉请求不能成立,应予驳回;原审判决认定事实清楚,适用法律正确,应予维持。依照《中华人民共和国民事诉讼法》第一百七十七条第一款第一项之规定,判决如下:驳回上诉,维持原判。二审案件受理费7700元,由苏州云燕信息科技有限公司负担。本判决为终审判决。
审 判 长  何 鹏
审 判 员  梁晓征
审 判 员  欧宏伟
二〇二二年六月二十九日
法官助理  李瑞梅
书 记 员  王 茜
裁判要点
案号
(2021)最高法知民终1045号
案由
计算机软件开发合同纠纷
合议庭
审判长:何鹏
审判员:梁晓征、欧宏伟
法官助理:李瑞梅
书记员:王茜
裁判日期
2022年6月29日
关键词
计算机软件开发合同;合同解除;违约责任
当事人
上诉人(原审原告、原审反诉被告):苏州云燕信息科技有限公司;
被上诉人(原审被告、原审反诉原告):***引擎科技(苏州)有限公司。
裁判结果
驳回上诉,维持原判。
原判主文:一、苏州云燕信息科技有限公司于判决生效之日起十日内向***引擎科技(苏州)有限公司支付合同剩余款项42万元及相应逾期付款利息(以42万元为基数,自2019年5月27日至2019年8月19日按照中国人民银行同期同档次贷款基准利率计算,自2019年8月20日起至实际支付之日止按照同期全国银行间同业拆借中心公布的贷款市场报价利率计算)。二、驳回苏州云燕信息科技有限公司的诉讼请求。如果未按判决指定的期间履行给付金钱义务,应当依照《中华人民共和国民事诉讼法》(2017年修正)第二百五十三条之规定,加倍支付迟延履行期间的债务利息。
涉案法条
《最高人民法院关于适用时间效力的若干规定》第一条第二款;
《中华人民共和国合同法》第九十四条第四项。
法律问题
迟延履行致使不能实现合同目的的认定
裁判观点
***公司未迟延履行涉案合同。1.云燕公司在涉案合同履行过程中向***公司提出了超出合同约定内容的请求事项,客观上占用了***公司的开发人员和开发时间。2.云燕公司针对云燕系统的功能需求存在变化,并存在新增功能需求。3.***公司多次提请项目交接及验收,云燕公司未在合理期限内作出答复,云燕系统应视为验收合格。
注:本摘要并非判决书之组成部分,不具有法律效力。