计算机软件开发合同纠纷的特点

  作者 | 刘华健

  基于“大众创新,万众创业”国家政策层面的鼓励及网络时代的兴起,很多人把创业的方向选在互联网领域,而手机APP和计算机软件则成为了许多创业公司开展商业运营的核心。通常将商业思维转换成可运营的计算机软件则需要一定的时间跨度及相应的技术实力,时间预估不准、开发能力不足或者双方在开发过程中对合同条款的分歧,都极容易产生纠纷,从而影响整体创业进程。

  一、案情简介

  2015年7月22日,王某(创业者)与上海A网络科技公司(以下简称“A公司”)于签订《开发合同》,约定王某委托A公司开发APP软件,具体功能见附件《功能需要》。双方特别约定,A公司保证其开发的APP软件与“XX”APP(另一款同类型的软件)在相同情况下的自动唤醒用户手机,并尽最大可能的优化技术方案,该功能作为软件的基础功能,如无法实现该功能,则退还全部开发费用。合同价款人民币x万元,工期为项目正式启动后45个工作日。

  2016年4月13日,因双方发生纠纷,王某向法院提起诉讼,要求解除开发合同,退还已经支付的开发费用,并赔偿违约金损失。

  A公司辩称,不同意王某的诉求,其未能在合同规定的期限内完成全部开发任务的原因在于王某,是王某一直增加功能和变更需求才导致工期的延迟;另涉案APP已经完成了大部分开发工作,基础的唤醒功能已经实现,不同意解除合同,反而是王某没有按照合同约定支付开发费用。

  二、法院审理

  一审法院认为,王某与A公司签订的《开发合同》合法有效,对双方都具有约束力。王某于2015年7月22日签约当日向A公司支付了首期款,但A公司却没有在合同约定的收到款项后45个工作日内完成开发工作,而且现有的证据也无法证明A公司开发交付的APP软件实现了合同约定的基础功能。王某据此要求解除合同合法有据,应支持;合同解除后,A公司已经收取的开发费用应退还;至于王某的违约金主张,因无合同的具体约定及损失证据,法院不予支持。一审判决后,A公司提出了上诉。

  二审法院围绕案件争议焦点,经过评议后认为:A公司虽然抗辩履行期限的延长系由软件调试工作特性以及开发过程中王某增加需求所造成,但综合双方提交之在案证据,不足以证明该主张,且亦无在案证据表明A公司于涉案合同履行期间对此类软件调试周期较长或王某不断增加涉案软件功能将导致该合同不能按期履行表达过任何异议或相应意见;另,关于涉案开发的APP是否实现了合同约定的基础功能问题,一审庭审演示已经证明A公司提交的APP无法实现与“XX”APP在相同情况(无网环境)下的自动唤醒功能。综上所述,驳回上诉,维持原判。

  三、律师意见

  笔者作为本案原告王某的代理律师,全程参与了案件的办理,现就相关法律问题和经验感触评析记录如下:

  (一)合同约定条款是法院审理的基础

  本案属于解约诉讼,提出解除合同诉求的一方需要对其拥有合同解除权提供证据支撑和明确具体的诉讼指向。我国《合同法》中规定的解除权有两种类型,约定解除权和法定解除权。通常情况下如果存在合同约定解除权的情况,相较于法定解除权,原告方的举证责任明显会轻松很多。所以,在本案中原告王某的诉讼依据就是基于合同特别条款约定的解除权,具体指向为无法实现唤醒功能,由于被告上海A公司无法举证证明其开发的软件实现了合同约定的基础功能,则作为委托方的王某便有权解除合同,而不用再关注其他的功能实现情况。

  与此同时,关于因违约行为导致合同解除后的损失赔偿问题,因涉案合同中没有明确具体的约定条款,相关损失的举证责任便应由原告王某承担。但王某确实无法提供具体的损失证据,所以,法院驳回了其违约金的诉讼主张。试想如果合同中有相关的损失计算条款,这对原告方会更加有利。

  (二)诉讼中的举证及律师的重要性

  因为涉及复杂的技术及事实问题,本案一审法院总排期开庭四次。在前三次的庭审中,被告上海A公司一直没有委托专门的律师参与庭审,且三次的答辩陈述相互矛盾,没有证据支撑,很难让法官信服。A公司只是在第四次庭审(技术演示)时才提交了部分书面证据,而且已经明显超过了举证期限。后来当被告公司感觉到情况不妙,再委托律师联系法官要求再次开庭时,主办法官已经失去了耐心,没有准许。相较被告方,原告王某则慎重细致很多,对于合同履行过程中出现的问题都及时提出了异议和意见,并保存好了相关记录(电子邮件和微信),这些证据经过律师整理后,便很容易让法官得出清晰的判断。

  (三)庭审的技巧与灵活

  当案件因某个法律问题陷入僵局的时候,律师要替法官去找出路,而不是被动地把所有问题都交给法官去处理。一审法官安排第四次庭审的主要目的是对被告上海A公司开发的APP软件进行现场演示(能否实现自动唤醒功能)。关于演示的APP版本,原告王某及法院的要求须是A公司诉讼前邮件发送提交的版本,而不能是其在诉讼过程中重新技术生成的版本。但A公司(法定代表人)却声称之前的版本是与HY服务器绑定的,因华云公司的不配合,所以现场只能演示新生成的版本并保证不会进行任何的技术篡改。另外,被告A公司又要求法院提供网络环境。这一似乎正常合理的要求,因法院当天的特殊情况(无法通网),致使案件庭审演示陷入僵局,此时无论是原告方还是法官都不想再次排期演示。

  为了打破僵局,快速了结本案,笔者当时征询当事人“XX”APP是否可以实现在无网的情况下的自动唤醒,王某用自己的手机测试了一下,回答说可以。于是,我方当庭提出在附条件情况下同意被告A公司先以新生成的版本进行演示,但应当与“XX”APP一样在无网的环境下进行。经过演示,被告新生成的APP版本,均不能同步实现“XX”APP在无网的环境下的设置功能和自行唤醒功能。如此,我们便无需再对涉案APP新旧版本的问题和有无网络环境的问题争议和纠结了,这样也为法官找到了解决思路。

  (四)与另案相较后的经验感触

  同样是APP软件开发合同纠纷,在另外的一起案件中笔者代理被告方,法院一、二审处理的最终结果是驳回了原告方的全部诉求。当时笔者的庭审抗辩观点和思路与本案被告基本一致,那个案件中有一个关键问题是,双方在合同中约定乙方须在软件开发完成后先邮件提交验收申请表,然后按甲方的指示要求提交开发成果。庭审查明的事实是,被告在合同期的最后两天直接以电子邮件的方式发送提交了其开发APP安装包。在诉讼中,原告却以被告未交付作为行使合同解除权的具体指向。

  尤其是在法官明确释明询问原告是否要求对邮件交付的APP安装包进行评估鉴定时,原告(可能是基于时间和费用成本的考虑)仍固执已见不要求鉴定,结果导致一、二审均败诉。从那个案件的办理中我也得出了以下两点经验提示:(1)关于合同的履行,不能过于机械地理解合同条款的约定形式,更应考虑实际的履行情况,从而做出准确而清晰的风险判断;(2)程序性的权利(如要求法院进行评估鉴定、特定问题的抗辩、举证的权利),如果在一审中不加注意或者放弃,二审法官基于诉讼层级的限制是不会进行审理的,相应的不利后果也无法改变。所以,不要在事情已经无法挽回的时候才去找律师。

  四、结语

  计算机软件(含手机APP)设计开发合同,因相关的功能和设计内容具有一定的主观性,且双方也无法在合同签订前就对相关的技术、事实和法律问题约定清楚明确。但是,作为委托方起码应当将核心功能需求清晰列明,作为开发方在合同履行过程中如委托方的相关要求超出合同约定工作范围当及时提出异议。同时双方都应当谨慎诚信履约,并保存好相关证据。如果一旦发生纠纷,应及时委托专业律师处理,因为诉讼方向的选择、庭审证据的组织与开庭技巧都会对案件的最终处理产生重大影响。