大成要点纠纷协议软件(软件大成协议模块合同)「大成软件科技有限公司官网」

作者:李亮伟、田小伍《民法典》第五百六十六条第一款规定:合同解除后,尚未履行的,终止履行;已经履行的,根据履行情况和合同性质,当事人可以请求恢复原状或者采取其他补救措施,并有权请求赔偿损失
在软件开发协议中,验收通过是否意味着已经履行完成、履行无瑕疵?验收后的合同解除是否存在恢复原状的可能?本文基于软件开发的特点和司法实践进行如下探讨
一、软件验收并不能直接推定软件无缺陷软件开发的验收有其特殊性,会影响到验收的法律效力
其特殊性具体体现在:第一,软件开发一般是分阶段进行,分阶段验收成果,在后的迭代开发有可能会引发在先完成的功能模块、系统出现问题
第二,软件的UAT验收(User Acceptance Test,用户可接受测试)并非是系统正常使用中的测试,而是测试通过后才能正式上线
第三,UAT作为测试验收而非实际使用的验收,其测试方案在个案中存在很大的不同
在笔者办理的某计算机软件开发合同纠纷案中,客户(被告)对开发方(原告)交付的系统一期、二期前两个阶段的软件进行了UAT验收,在二期的第三个阶段终止与开发方的合作并拒绝支付开发费,最终诉诸法庭
开发方的理由非常直接,“涉案项目第一阶段、第二阶段一次迭代和二次迭代已经完成并通过被告验收”,因此应当对已完成的工作进行全部支付合计83万,同时赔偿合同解除的损失23万、违约金及其他损失
如果按照通常对于“验收等于交付成果质量合格”的理解,客户似乎没有任何依据可以拒绝支付已完成工作的费用,但正是基于软件开发验收的上述特点,本案存在以下事实:第一,本案存在系统掉数据、系统卡顿问题,且随着软件的不断迭代开发,问题愈发严重,导致软件在最后一次迭代后根本无法正常使用,只得恢复手工记录
第二,由于客户对软件开发的不了解,在UAT验收中仅有个位数的软件使用人员参与了功能测试,而没有开展大量软件使用人员同时使用的并发压力测试,因此未能发现软件实际上线中的重大问题
第三,由于客户不具备软件开发能力,且已经交付的仅仅为目标程序而非源程序,因此截止双方终止合作,客户方支付的开发费没有获得任何有价值的对价,需要耗资委托他人完全重新再次开发
正是基于以上案件事实,我方关于“软件验收并非不可推翻,更不代表软件不存在缺陷,仍应当评估该客观事实”的观点在二审中得到了最高法院的支持
二、软件开发中的专业义务引发的责任承担在查明交付软件是否存在上述掉数据、系统卡顿事实的过程中,开发方主张“问题的出现是因为客户方数据不符合系统要求所导致的”,但经过我方的主张和举证,最高法院认定“开发方作为软件开发者对此有相应技术能力做出预判,本案没有证据显示开发方在签订协议时对客户数据现状施加充分的注意,未尽到符合其专业能力的提醒义务,因此具有过错”
类似的专业义务还会在很多方面出现,例如上述验收中客户没有进行并发压力测试,实际上也应当是开发方应当提醒的
这也是技术委托开发类法律关系的一个特殊之处——双方对于信息的掌握并不对称,为了平衡双方的利益,就需要由居于优势的一方承担更多的注意义务
三、非定制化软件部分在协议解除后的返还可能在很多软件开发合作中,开发方往往并不是一个从零开始的全新开发,在委托方而言,也是基于开发方以往的成功开发成果才会决定委托,这造成的一个客观事实就是,软件开发中一般都是分为基础模块、定制化两大部分,基础模块是在建立个案合作之前就已经开发完成的
但在因争议而解除合作关系后,开发方基本都是按照开发进度来主张费用,并且主张“已经实施的开发行为无法回收,只能在解除后通过资金进行补偿”
而事实上,基础模块并非为个案而开发,在合同解除后该基础模块也照样可以在其他项目中重复使用,这与定制化部分无法在其他项目中重复使用是截然不同的
在笔者办理的上述案件中同样存在该问题,而对于我方的主张,最高法明确表示支持:涉案系统软件“产品基础模块”系在既有软件基础上进行适应性修改,而无需像定制化开发部分一样进行全新开发,对此应予一定区分…若委托方停止使用上述基础模块,开发方仍可将该部分劳动成果许可他人使用并获得相应收益,开发方将基础模块整合入系统虽然需付出一定的工作量,但基础模块项目实施费的价值显然并不完全在此
因此,在合同解除后,该模块的部分价值仍可返还开发方,在确定委托方应继续支付合同款时可酌情考虑
以上可以看出,软件开发协议验收后合同解除的处理,受软件开发特点的影响很大,也体现出了与其他合同解除处理中的不同
因此在办理此类案件时,需要多与客户沟通,多与行业内人士沟通,以准确把握这些特点,更好的结合法律做出客观、合理的判断
大成要点纠纷协议软件(软件大成协议模块合同)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息