【软件开发】开发方把源代码弄丢了,自己难道没有备份?居然还能出这种事?【案情简介】一、【合同签订及约定】某教育咨询公司(以下称委托方A)委托某科技公司(以下称开发方B)开发手机APP软件,包括IOS、Andriod两种手机版本以及中文、英语两种语言版本,最终交付内容包括APP软件的UI设计图;APP软件的原型设计图;APP软件的安装包。合同签订后,委托方A租赁了测试服务器,并将服务器管理员账号和密码提供给开发方B。二、【合同履行情况】开发方B收到首付款后,即着手开发工作,并陆续向委托方A交付了软件UI设计图及原型设计图,委托方A随后支付了第二笔款项;开发方B继续开发,同时向委托方A 发邮件称“可以先进行软件主体测试,英文界面待我方列出需要翻译的文档后进行”,随后开发方B通知委托方A,测试版本已开发完成,并将测试后台地址、IOS下载地址、安卓下载地址等相关地址及安装包、后台管理页面等,邮件发送委托方A。三、【争议产生】委托方A接收到开发方B开发的软件后,对软件进行测试,并向其反馈了三次修改意见,开发方B对相应地的修改意见进行了回复或完善。第三次修复并予以回复后,委托方A并未就软件中的具体问题向开发方B进行反馈。后开发方B以邮件形式向委托方A发送了涉案软件的项目验收确认书,委托方A未予回复,未安排验收。随后开发方B告知委托方A,委托方A的英文域名即将到期提醒其去续费,委托方A表示不用续费。因服务器到期委托方A未续费,该服务器上的涉案软件数据被释放,且无法恢复。半年后,委托方A要求开发方B将包括源代码的涉案软件,提交其进行验收。开发方B表示由于你方未续费,现在服务器数据都已丢失,无法提交。双方因此产生争议,委托方A起诉开发方B退还已支付款项并承担违约责任,开发方B反诉委托方A继续支付合同尾款并支付违约金。四、【一审法院判决】某中级法院经审理后认为,开发方B已按双方约定完成开发,虽然未交付源代码,存在瑕疵,但是不影响其交付的软件符合合同要求,开发方B不构成违约。由于自涉案软件第一次交付至本案诉讼时,已经历4年多,软件环境等都发生变化,再加上源代码丢失,涉案合同目的已无法实现,判令合同解除,开发方B不构成违约,委托方A要求其退还已支付款项,无法律依据,驳回其请求;同时由于开发方B未开发英文版本,也未提供后续技术服务,其要求支付尾款请求,也同样驳回。【最高法院二审裁判要点】本案第三次重新提交验收后,委托方A未予回复直至半年后要求开发方B再次交付软件,期间因服务器、域名未续费软件数据丢失无法恢复,合同履行陷入僵局。双方对此均存在过错:按照合同约定委托方A附有对服务器、域名支付费用的义务,而委托方A经开发方B提示在到期后没有续费导致服务器关闭;开发方B作为软件开发方,在合同履行中双方仍就涉案软件的开发和修改持续沟通过程中,负有软件数据的保管义务,开发方B在明知部署有软件源代码数据的服务器即将到期,如不续费相关代码数据会丢失无法恢复的情形下,未妥善保管软件源代码等数据,导致服务器保存的数据无法恢复后,开发方也无法提供其保存的副本,亦存在过错。计算机软件开发合同的履行需要委托方和开发方相互配合,共同推进。就本案合同未能完全履行而言,委托方A负主要责任,开发方B负次要责任。对于双方的互诉请求,应该在双方过错折抵后合理确定。3. 一审判决虽对违约行为的分析认定不当,但裁判结果并无不当,应予维持。