随着移动互联网的普及,人们越来越依赖于用手机进行日常的生活、工作和学习,智能手机已经成为我们生活的一部分,而应用程序(APP)则是这些智能手机的灵魂。拥有一款自己的APP作为一种全新的业务拓展渠道,也成为了许多企业在当今市场竞争中的重要一环,随之而来的是计算机软件开发合同纠纷在近几年里快速增长。
计算机软件开发合同纠纷是指双方当事人就软件开发等相关事宜达成的协议而发生的纠纷,包括计算机软件的委托开发合同、合作开发合同,属于知识产权合同纠纷中的“著作权合同纠纷”项下的二级案由。实践中,该类纠纷主要是因对软件功能未达预期而引发的纠纷,表面看多为主张欠费的违约之诉,但实质却是履行标准争议或标准约定不明引起的纠纷。
一、案情简介:
2019年7月10日,委托方(甲方)浙江某公司与受托方(乙方)杭州某公司签订涉案合同,约定:甲方委托乙方开发拍卖行业平台网站的三套核心竞价系统项目,并支付开发经费和报酬,乙方接受委托并进行此项开发工作。乙方应于2019年11月15日之前完成上线、培训、验收;如由于甲方的变更及资料准备等原因造成延误,则相应延长项目的进度周期。合同签订后,浙江某公司依约支付了50%的开发费用,但杭州某公司直到2020年8月10日,才告知浙江某公司已完成开发并要求验收,待浙江某公司验收时发现所谓“成果”根本无法使用,完全不是浙江某公司需要的最终成果。合同履行期间受疫情影响,网拍业务迎来爆发式增长,但由于涉案软件项目开发进度严重迟延,导致浙江某公司痛失开拓网上拍卖市场的重大市场机遇。针对杭州某公司的违约行为,浙江某公司向法院提起诉讼请求:1.判令杭州某公司返还浙江某公司先行支付的技术委托开发预付款18万元;2.判令杭州某公司支付浙江某公司逾期开发赔偿款,按5000元/天计算,自2019年11月16日计算至2020年8月30日,共计144万元;3.判令杭州某公司赔偿浙江某公司因开发逾期而产生的直接损失174万元;4.判令杭州某公司赔偿浙江某公司间接损失10万元;5.判令案件受理费由杭州某公司负担。
杭州某公司辩称:(一)涉案软件项目采用的是“边沟通需求,边分阶段开发”的模式。无论是浙江某公司变更需求导致杭州某公司于2019年年底重新开发,还是在变更需求后浙江某公司迟迟未书面确认第二阶段的开发需求,导致杭州某公司于2020年9月决定暂停开发,该两次顺延皆因浙江某公司所导致,杭州某公司不构成逾期开发,故浙江某公司要求杭州某公司承担逾期开发的违约赔偿责任缺乏事实依据。(二)杭州某公司完成的第一阶段开发成果已经能够实现功能需求清单所列需求,不属于涉案合同第十六条第三项约定的情形,浙江某公司要求杭州某公司返还开发预付款并赔偿损失亦缺乏事实依据。(三)浙江某公司要求杭州某公司赔偿其直接损失和间接损失,同样缺乏证据。(四)涉案合同约定的违约金计算标准过高,有违公平原则,故无论杭州某公司是否构成违约均应当予以调整。综上所述,请求依法驳回浙江某公司的全部诉讼请求。
杭州某公司向一审法院提出反诉请求:判令解除浙江某公司与杭州某公司签订的涉案合同。事实和理由:2019年7月10日,浙江某公司和杭州某公司签订涉案合同,在之后的履行过程中,杭州某公司与浙江某公司围绕开发需求确定问题多次进行沟通。但浙江某公司在沟通过程中不断变更需求,导致杭州某公司的开发周期不断延长,开发工作量也不断增加。为此,杭州某公司多次向浙江某公司提议签署补充协议,以重新明确开发需求和涉案软件交付时间,但浙江某公司始终百般推诿。直至2020年4月,涉案软件项目的部分需求才以书面方式得以落实,并由浙江某公司项目负责人朱某乙在功能需求清单上签字确认。同时,双方还口头约定杭州某公司应于2020年7月10日前交付功能需求清单对应的开发成果。2020年7月10日,杭州某公司将第一阶段开发成果交由浙江某公司进行测试并通过,但浙江某公司迟迟不愿书面确认已交付的内容以及下一阶段的开发需求,导致下一阶段的开发工作陷入停滞。浙江某公司在涉案合同履行过程中增加、变更、拖延确认需求的做法,严重延宕涉案项目的开发进程,特别是浙江某公司在后续沟通过程中明确拒绝确认杭州某公司此前已完成的开发成果和下一阶段的开发需求,导致涉案合同目的不能实现,继续履行只会进一步扩大双方的损失。综上所述,请求法院依法支持杭州某公司的反诉请求。
针对杭州某公司的反诉请求,浙江某公司一审辩称:(一)涉案合同的最后一页附有补充协议,根据补充协议的约定内容可知,对杭州某公司提交的成果进行测试并非浙江某公司应当履行的合同义务。(二)浙江某公司人员于2020年6月15日前往杭州某公司,但杭州某公司演示的所谓“阶段性成果”仅是一个软件框架,完全不能实现软件正常运行的目的,更何况浙江某公司迄今并未收到杭州某公司交付的完整软件开发成果。(三)浙江某公司在涉案合同履行过程中并未更改需求,网络拍卖行业有统一的需求标准,无需浙江某公司书面确认。(四)网上竞拍系统可以按照拍卖行业的统一标准进行开发,浙江某公司在涉案合同履行过程中只是增加了30%的个性化需求。
二、法院判决:
一审法院认为:浙江某公司和杭州某公司签订的涉案合同系双方真实意思表示,其内容未违反强制性法律、法规的规定,属于合法有效的合同。双方均应严格按照合同的约定,全面履行合同义务。杭州某公司反诉要求解除涉案合同,浙江某公司在庭审过程中表示同意,一审法院予以确认。案件争议焦点为涉案合同解除后当事人应承担何种责任。
本案中,浙江某公司与杭州某公司签订的补充协议中约定交付标的物为“通过出场前各项监测全部合格进入4S店销售之车”,根据合同文义以及一般生活经验判断,该表述的真实含义应当为一次性交付软件成品。杭州某公司未能按照涉案合同约定的时间步骤完成开发,已属违约。尽管浙江某公司在涉案合同约定期限届满后应允杭州某公司重新组建技术团队开发软件以及大幅延后软件上线时间,但浙江某公司自始至终坚持要求杭州某公司交付的是完整软件产品,对于杭州某公司分两次确认需求并分阶段开发的要求并未明确应允。在浙江某公司与杭州某公司对2020年7月10日交付内容各执一词的情况下,应认定杭州某公司应当交付的标的物为涉案合同约定的软件成品。杭州某公司未按照浙江某公司同意延后的期限交付软件成品,仍属违约。
杭州某公司与浙江某公司签订涉案合同时,尚未梳理及明确开发需求,该需求应当在合同签订后尽快确定。从双方当事人的交流记录以及行业习惯可知,技术资料清单应由双方协商制定,所谓“确认需求”,并非浙江某公司的单方合同义务。一方面,杭州某公司在需求调研中对开发项目的范围界定不清,进而在梳理需求后发现“项目过于庞大超出原定需求”;另一方面,浙江某公司除坚持“交付整车”“增加百分之三十新需求”等概念化表述外,未能尽早明晰实质性项目需求,双方在需求确认环节均存在一定过错。
本案中,浙江某公司已支付一半的合同总价款,即第一笔开发款18万元。杭州某公司虽未按约定期限交付符合约定要求的软件成品,但其已在开发过程中完成一部分开发任务,且在开发过程中多次与浙江某公司进行沟通衔接并投入相应技术力量,付出一定的劳动成本,故浙江某公司应向杭州某公司支付一定的合理对价。一审法院综合考虑软件尚无法使用的现状、杭州某公司付出的成本以及完成工作状况等情况,酌情确定浙江某公司应支付的合理对价为8万元,杭州某公司需向浙江某公司返还开发款10万元。
浙江某公司主张杭州某公司应按涉案合同约定的5000元/日的违约金计算标准,向浙江某公司赔偿因逾期开发给浙江某公司造成的直接损失和间接损失。综合考虑合同性质、标的、杭州某公司违约情形、开发需求确定过程中双方均有过错等因素,并兼顾平衡双方当事人利益,一审法院酌情调整违约金数额为50000元。对浙江某公司要求支付其余赔偿款的请求,一审法院不予支持。
一审法院判决:一、解除浙江某公司与杭州某公司于2019年7月10日签订的《技术开发(委托)合同》;二、杭州某公司返还浙江某公司合同开发款项100000元,支付违约金50000元,合计150000元,于判决生效之日起十日内付清;三、驳回浙江某公司的其他诉讼请求。
双方对一审判决不服,均提起了上诉。2023年6月25日,二审法院做出终审判决:驳回上诉,维持原判。
三、律师解析:
1、软件开发是一项复杂的工作,其中最关键的步骤之一就是定义功能需求,这也是软件开发容易产生纠纷的根源,因为后期的软件交付、软件开发完成以及是否构成违约等问题都是以双方约定的需求作为基础进行认定。本案中,一审法院就认为原被告双方对软件未能尽早明晰实质性项目需求,且双方在需求确认环节均存在一定过错,从而判定双方都要承担一定的责任。
2、虽然功能需求的确认很重要,但实践中双方在签订合同时,委托方往往并没有相对明确或具体的技术需求,而是在开发过程中逐渐明确。本案中,一审法院就认为“杭州某公司与浙江某公司签订涉案合同时,尚未梳理及明确开发需求,该需求应当在合同签订后尽快确定。”
3、需求确认是双方意见不断修改磨合的过程,实践中比较常见的情况是,开发方的履行客观上超出了合同约定的期限,但委托方并未提出异议,而是继续与开发方就软件开发的内容进行沟通,对开发方交付的软件进行测试反馈,开发方也继续予以修改完善,由于最终交付的软件仍然未满足委托方的要求,委托方才提出开发方构成迟延履行并要求承担违约责任。本案也是这样一个过程,杭州某公司在把第一阶段的开发成果交付给浙江某公司后,浙江某公司虽然对成果不满意,但是并没有提出解除合同,而是继续与杭州某公司商讨下一阶段的开发需求,直至最后矛盾爆发。司法实践中,法院会将该过程视为双方协商一致变更了原合同约定的交付验收时间,此时委托方如果以原合同约定的时间为由,主张开发方逾期交付可能不会得到法院的认可。
4、在需求确认阶段,即使前面已完成的开发未达到委托方的要求,但是只要开发方进行了交付,对于已交付的这部分成果,法院本着公平原则仍会支持要支付相应对价。本案中,一审法院就认为,杭州某公司在开发过程中已完成一部分开发任务,且在开发过程中多次与浙江某公司进行沟通衔接并投入相应技术力量,付出一定的劳动成本,故浙江某公司应向杭州某公司支付一定的合理对价。
5、需求确认在计算机软件开发的过程中如此重要,所以无论是委托方还是开发方,在软件开发合同履行过程中的每个重要阶段,例如需求确认、需求变更、整改措施、验收记录等环节都最好以合同附件或相关表格的形式留痕,资料上不能仅有己方的描述或签名,而要有双方的确认记录,这样在发生纠纷时才能有据可查,分清责任。
撰稿人:程星