案例内容
【案情简介】
陈女士委托李先生开发甲公司管理软件,2018年6月19日,双方开始见面会谈,陈女士通过微信向李先生表示了软件开发需求,2018年9月8日李先生将《数据字典》《需求说明书》微信传给陈女士,请求“有缺失、少的,可以补充上”。2018年9月15日陈女士对软件《需求说明书》进行了修改、添加并对《数据字典》提出了几处疑问(用红字标记)回传给了李先生。2018年9月19日,双方正式签订合同,合同定义中合同标的“软件”包括“软件系统”,是指“本合同中甲公司管理系统参照《需求说明书》《数据字典》相关文件”;“可交文件”包括“开发文档、程序文件、源代码(编译前)、数据库、操作手册文件等”;约定交付时间为2019年6月底;违约与赔偿责任约定,每延期30天,李先生应向陈女士支付合同总价的5%的违约金,延期超过100天,陈女士有权终止合同。2018年9月19日合同签订当日,陈女士依据合同向李先生支付98000元预付款。2019年6月20日,李先生与陈女士见面并现场测试了软件,但是软件并没有通过测试。在陈女士一再催促下,李先生在2019年11月10日演示了PC端的一些功能,在演示时,程序没有正常运行,并且看到页面功能与需求严重不符。2019年11月11日,通过手机微信,陈女士告知李先生终止合同,并要求返还首付款,李先生接到通知后表示可以接受终止合同,但不能返还首付款。在协商无果的情况下,陈女士于2019年11月15日用快递通知李先生终止合同,返还首付款,并支付相关违约金。2019年11月16日李先生在接到通知,在2019年11月20日通过微信发给陈女士两个压缩包称用于APP端和微信端的软件,并称已经完成交付。鉴于先前电脑端软件不符合约定,无法实现合同目的,而APP端微信端是在通知终止合同之后交付的,也就没有运行必要。陈女士为维护合法权利遂提起仲裁,请求裁决:1.确认双方签订的《软件开发合同》已经于2019年11月15日解除;2.李先生返还首付款98000元,给付违约赔偿款73500元,合计171500元;3.李先生承担本案仲裁费用。
李先生称:自己按照《软件开发合同》履行了合同义务,不存在违约行为,陈女士无权解除合同,也无权要求损失赔偿。《软件开发合同》第三条第四款第一项约定,“本软件的开发时间为2019年6月底,如果开发过程中工作量产生变化,交付时间根据工作量发生变化”。合同第五条第六款规定,“甲方按照乙方的要求提供相应的服务器,如果上线服务器出现了问题,乙方在条件许可的情况,可以协助甲方,但乙方不承担由于服务器厂商出现的故障给系统带来的影响”。由于陈女士不能提供服务器,2019年6月20日,李先生与陈女士一起在现场进行软件的测试、评估,李先生已经按照合同约定时间交付了软件。2019年6月20日,软件测试后,陈女士提出了新的技术需求。因为新的技术需求不包括在合同内,引起工作量变化,合同第五条第六款约定,李先生为满足新的技术需求,进行了新的开发,交付时间应予以顺延。2019年9月23日、11月4日,李先生又分两次对软件进行了交付。李先生根据陈女士新增的技术需求及修改说明,反复修改交付,符合合同约定,并反复通知陈女士提供服务器。在陈女士不能提供服务器,且不配合现场测试、评估情况下,2019年11月24日,李先生将全部软件代码邮寄至陈女士邮箱,完成了本合同项下全部义务。因此,本案中,李先生不存在交付迟延的问题,陈女士没有合同解除权。至于陈女士所陈述软件不符合合同约定,合同中已经约定了软件应该达到的客观标准,以及陈女士提出的新增技术需求。也就是本案中,软件的技术标准是客观存在的。本案中的软件也是客观存在的。二者比对就可以明确知晓软件是否合格。因此,陈女士所提出的软件不合格的主张也不能成立。因为李先生不存在违约行为,因此,陈女士的仲裁请求不能成立,故请依法驳回陈女士的仲裁请求。此外,就新增需求的工作量,陈女士应当给予计价支付。据此李先生提出仲裁反请求,请求裁决:委托人陈女士支付新增需求的开发费用42560元(2019年6月20日提出新增需求的开发费用,计42560元)。
【争议焦点】
李先生是否应承担违约责任?
【裁决结果】
(一)确认陈女士与李先生于2018年9月19日签订的《软件开发合同》于2019年11月16日解除;
(二)李先生自收到本裁决书之日起7日内向申请人陈女士返还合同预付款98000元;
(三)驳回陈女士的其他仲裁请求;
(四)驳回李先生的仲裁反请求。
【相关法律法规解读】
(一)本案陈女士修改了《需求说明书》以后,双方未形成对涉案软件开发具有确定性内容和标准的《需求分析书》和与此对应的《数据字典》,致使开发工作失去标准,李先生应为此承担责任。理由如下:庭审确认,2018年9月19日双方成立合同以后,李先生没有依据双方合同第四条第五款第一项和第二项的规定,在获取需求信息和资料以后,形成《需求分析书》,并提交陈女士确认,这是本案的关键。仲裁庭认为,软件开发的需求确认是软件开发合同履行过程中的重要一环,需求确认文件也是合同的重要履行文件。本案中需求确认的证据文件应该是李先生整理出具的、由陈女士确认的《需求分析书》和与此对应的《数据字典》。双方合同第十五条也规定“合同一经签署,未经双方同意,任何一方不得随意更改本合同,其他任何口头或未包含在本合同内的,或未依据本合同制定的书面文件均不对双方发生拘束力。”因此,双方聊天记录只是双方交流证据,不是确定开发标准的合同证据。而李先生负有合同义务,即制作《需求分析书》以及与此对应的《数据字典》供陈女士确认,从而固定开发工作范围和标准。涉案软件开发合同履行期届满以后,双方不断围绕着需求和测试交流,因无法确定软件开发需求范围而不断产生争议,致使合同目的无法实现。为此,李先生应对此承担合同责任。
(二)李先生在合同规定的履行期限内没有完成软件完整交付并由陈女士领受,更没有通过验收。双方没有关于合同延期、开发内容变更的书面协议,李先生应该为延迟履行合同承担违约责任。理由如下:第一,双方约定合同履行明确期限为2019年6月底,合同中关于“如果开发过程中工作量产生变化,交付时间根据工作量发生变化”的表述,应是双方可以变更合同履行期限的约定。双方合同还约定:任何变更均需要签订书面变更协议。在合同延迟履行已经超过100天的情况下,陈女士没有收到符合合同约定的软件,提出解除合同符合双方约定。庭审中,李先生以陈女士增加需求使开发工作量加大合同必须展期为由抗辩,仲裁庭认为该抗辩不能成立。首先如需展期即应签署书面变更协议。其次本案中李先生没有制作“需求分析书”固定开发范围,就无所谓陈女士“增加需求”。本案不存在关于合同履行期变更、合同开发内容变更的书面协议,李先生以合同内容增加导致合同履行延期的主张仲裁庭不予认可。第二,双方合同对软件交付以及交付内容作了明确约定,交付过程以两个测试为前提,即首先是李先生对软件的测试,其次是领受前对软件的测试。软件测试是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估,从而确定软件的正确性、完整性和安全性。本案证据和庭审过程表明李先生没有发出正式交付书面通知,涉案软件也没有通过完整测试,没有符合合同约定的交付、领受和验收行为,因此,不符合合同第八条规定的付款条件,李先生反请求要求支付合同价款(增加部分)的请求缺乏事实基础和合同依据。第三,庭审中,李先生主张由于陈女士不能够依据合同约定和李先生的要求提供服务器,因此导致无法测试开发软件,致使李先生“远程交付软件”。仲裁庭认为,双方在微信聊天过程中零散提到需要“服务器”“台式机”“外网地址”“服务器一个固定IP”的技术要求,不符合双方合同第十四条的规定,没有采取书面形式向陈女士提出完整“硬件需求”要求。本案中《需求说明书》没有经过《需求分析书》的进一步确认,不能够作为李先生给陈女士提出“硬件需求”的证据使用。另外,双方合同中没有远程交付的约定,李先生主张涉案软件远程交付完成合同义务主张没有事实根据和合同依据。
【结语和建议】
本案合同履行期间没有形成需求确认文件,履行期届满,双方没有按照合同约定签署变更合同履行期限和增加开发内容的书面协议,李先生未能如期交付软件系统,陈女士在履行延迟状态下提出解除合同符合合同约定,其解除合同的法律效果应予认定。而陈女士提出依据合同约定要求赔偿的仲裁请求,因没有提供合同损失证据,仲裁庭不予支持。李先生提出支付合同内容增加部分的价款请求,经审查无事实依据,不符合合同约定,仲裁庭不予支持。
委托合同,确定委托人需求是关键,建议广大市场主体在签订此类合同前注重磋商,详细了解委托人需求,经委托人确认后其需求后,将相关约定明确到合同中。如在合同履行过程中,发生委托人需求有变化等情况,要及时磋商以书面形式变更原合同约定,以免日后为此产生争议,遭受损失。