作者:臧云霄 隆天律师事务所合伙人、副主任、专利代理人
近两年来,笔者连续办理了几起计算机软件开发合同案件,既担任过原告的律师,也担任过被告的律师。有的案件在一审程序即告完结,但有的案件甚至到了再审程序。虽然不同案件因为事实和证据存在较大差异,导致判决结果可能存在天壤之别,但综合各个案件仍能总结此类案件的共性。现整理一些以共享。
一、关于该类案件的案由和管辖
2008年的最高人民法院《民事案件案由规定》中将计算机软件开发合同作为第四级案由,作为第三级案由“著作权合同纠纷”项下的次级案由。根据《合同法》列出的有名合同分类,计算机软件开发合同又属于技术开发合同一类中的委托开发合同,因此,也有法院将之列为同为第四类案由的“技术委托开发合同”。
不论具体案由的差异,该类案件属于知识产权案件,根据2004年《最高人民法院关于审理技术合同纠纷案件适用法律若干问题的解释》,“技术合同纠纷案件一般由中级以上人民法院管辖。各高级人民法院根据本辖区的实际情况并报经最高人民法院批准,可以指定若干基层人民法院管辖第一审技术合同纠纷案件。”实践中这些案件由专门审理知识产权案件的知识产权庭审理。但在有些案件中,特别是当事人聘请的律师之前并未接触过知识产权案件,当事人仍按照一般合同的管辖原则向被告所在地或者合同履行地人民法院立案,如果这些管辖法院并没有知识产权庭,就可能耽误时间。在需要及时对被告进行财产保全或者证据保全的案件中,时间上的耽搁就可能导致不同的案件走向,需要我们特别注意。
根据2011年《上海市高级人民法院关于一审知识产权案件管辖的规定》,对上海市能审理知识产权案件基层法院进行了增加,目前规定为:浦东新区法院管辖在浦东新区、闵行法院管辖在闵行区、奉贤区、长宁区内、徐汇法院管辖在徐汇区、松江区和金山区;黄浦法院管辖在黄浦区、普陀法院管辖在静安区、嘉定区、青浦区内的一审知识产权案件;杨浦区人民法院管辖在杨浦区、虹口区、闸北区、宝山区、崇明县内的一审知识产权案件。
随着《最高人民法院关于北京、上海、广州知识产权法院案件管辖的规定》的出台,北京、上海、广州三地于2014年底2015年年初设立知识产权法院,计算机软件民事纠纷案件改由知识产权法院管辖。但特别注意的是,广州知识产权法院管辖的是除深圳市以外的计算机软件民事纠纷案件。也就是说,从2015年开始,北京、上海和广东省(除深圳市以外)的计算机软件开发合同一审案件分别由这三地的知识产权法院管辖,其他省、自治区和直辖市的计算机软件开发合同一审案件仍由各地设立知识产权审判庭的人民法院管辖。
二、该类案件的特点及办理体会
该类案件的基础法律关系是委托开发合同,案件审理主要适用的法律法规也较为简单,一般适用《合同法》及《合同法》相关司法解释、《最高人民法院关于审理技术合同纠纷案件适用法律若干问题的解释》等进行审理。由于该类合同的标的涉及计算机软件,会呈现不同于一般技术开发合同的特点,主要表现在:
1、专业性强,有些案件可能需要进行鉴定,案件审理时间长
由于计算机软件的专业性强,而律师没有相关技术背景,因此办理此类案件的难度大,工作量大。而通晓技术的一般为开发方的技术人员,如何将晦涩难懂的技术术语通过法律语言进行阐述并准确认定事实和适用法律,需要律师与技术人员相当长时间和相当深度的沟通。虽然在某些特别复杂的案件中可以让技术人员一同参加庭审,但技术人员论述事实的重点是否与案件争议事实相关,需要律师事先与技术人员进行详细沟通明确。因事实阐述一般都涉及技术内容,律师在庭审中势必也要提及某些技术内容和技术要点,因此,尽管有技术人员辅助,律师仍需要对技术非常了解。
不仅律师可能没有技术背景,同样对于审理案件的法官来说,很大可能也没有技术背景。因此,在双方对案件重要事实争议较大的情况下,如对已经完成开发的工作量及开发软件是否符合合同约定等事实的认定问题,有时需要专业机构进行鉴定。
此类案件不管标的大小,一旦进入诉讼,只要涉及技术问题,案件往往都比较复杂。另外,由于软件开发过程中双方参与人多为技术人员,对合同关键内容的确定如软件需求、交付及验收的时间节点、验收方式等约定不明,或是虽有约定但并未完全按照合同约定实际履行,合同履行的随意性较大,致使在诉讼中双方提交的证据与合同约定的文件并不一致,需要由法院对每项事实逐个根据实际履行情况进行审查。因此,法院查明事实耗时较长,有的案件仅前期调查就要进行4、5次。
2、委托方和开发方对合同内容认识存在的偏差较大
此类案件的委托方为软件的需求方,一般只能描述自己的需求,但并不了解计算机软件技术及专业术语,在签订委托开发合同时通常也没有仔细审查合同条款,导致合同约定内容与其真实需求之间可能存在差异,在合同履行过程中往往认为开发方按照合同开发的软件与其心理预期不符,从而引发争议。
3、软件开发合同签订及履行过程较为复杂,合同履行过程往往改动频繁,但改动往往难以通过书面确认
首先对软件开发合同的签订和履行的大体过程进行简单介绍。
合同签署。软件开发合同因为涉及内容较为复杂,实践中一般都采取书面方式签署,并在书面合同中对软件的功能项进行明确,但往往非常粗略,仅是功能项、功能块的确定。
需求调研及需求确认。软件开发合同签署后,委托方一般要支付一定比例的款项,由开发方对委托方的需求进行调研。开发方在前期调研的基础上拟定委托方对软件开发的需求,并由双方共同确认。软件开发需求确认是软件开发合同履行过程的重要一环,需求确认文件也是合同的重要履行文件。需求确认是否明确、清楚、完整往往决定开发过程是否顺利,并决定最终开发的软件是否符合委托方的要求。而需求确认明确、清楚、完整一方面要依赖于委托方进行详尽的技术交底,更要依赖于开发方与委托方的良好沟通。
开发过程中的需求调整。软件开发需求确认后,在软件开发过程一般情况下都要对需求进行调整,这也是较易出现争议的环节。由于委托开发的软件都是定制软件,并非标准软件,一般是委托方要求开发方根据企业自身特点量身定做,即使前期需求确认已经比较明确、清楚、完整,但在实际开发过程中还是经常因为这样或那样的原因而需要对需求进行调整。比如委托方可能根据开发方某一阶段的工作成果或者自身需求的变化需要临时提出修改意见,或者委托方对软件功能的理解随着开发工作的逐步深入发生变化而需要调整,需求调整过程往往涉及合同内容的变更,这也是计算机软件开发的特点。由于开发方为提供服务的一方,往往考虑到业务合作的关系,而不主动要求进行确认,或者在虽然提出要求确认的意思但委托方未表示明确同意的情况下仍继续进行后续开发,由此导致工作量变更或者软件开发的结果与原合同约定不同,一旦发生软件不符合合同约定、开发方未按照合同约定时间交付验收的情况下就会引发较大的合同争议。
4、双方争议大
在合同履行过程中双方往往已经穷其力无法解决争议进而进入诉讼。而一旦进入诉讼程序,由于双方对事实争议差别较大,调解难度也非常大。
如因软件开发进度发生争议导致开发难以继续的情形,一般调解非常困难。由于软件各功能模块之间的关联,不同功能块之间能事先的功能也存在相互关联,即使某部分功能块能实现功能,但其他功能快不能正常运行仍可能会导致整个软件难以顺畅运行,进而导致委托方已经支付部分费用开发的软件实际上用处不大或根本不能使用,委托方一般不愿意为一个不能正常使用的软件支付费用。另一方面,开发方确实也耗费了大量人力、物力进行开发,即使合同被解除不再继续进行,但开发方已经付出的工作也不能完全不考虑。但对开发方已经完成的工作量如何确定及委托方已经支付款项如何退还,相比有形货物而言,这类案件往往难以具体量化。或者一方从自己利益出发,提出的要求与另一方也往往存在较大差异,事实上造成双方调解意愿不高。
三、通过办理该类案件给当事人的建议
根据以上内容,计算机软件开发合同的履行确实存在很多问题,如果任何一个环节未能有效预防或处理,则极有可能导致诉讼。根据笔者的办案经验,此类案件中当事双方应在如下方面注意:
1、重视合同签订,从源头上尽可能避免争议
在合同中对功能项、技术参数、标准要确定,避免使用含糊或难以确定范围的词语。合同应对软件交付时间、验收时间进行明确约定且没有歧义,委托方的付款进度、付款节点要与开发方的开发进度相对应。同时,在合同履行过程中,对软件开发的需求确认内容一定要清楚,每个功能项下的小的功能点要明确。
合同建议包含如下内容:
(1)软件详细功能模块及配套资料
(2)明确使用软件的用户数,明确未来每新增一个用户的费用等。
(3)软件开发完成后维护费用。软件成功开发上线后,开发方一般按照前期开发合同的百分比向委托方收取年度支持和维护费用。因此,需要明确年度支持和维护费用的收取方式,是固定费用还是根据物价指数进行调整;具体包括哪些服务内容,如升级服务、热线支持、远程诊断等。
(4)软件著作权的归属,是归属委托方还是开发方。
(5)付款时间和方式
对款项支付的时间应有明确和可执行的时间点,并没有任何歧义,一般与开发方的开发进度一致。对尾款的支付,一般以验收合格作为条件。
(6)明确违约责任
从委托方角度,应约定如开发方逾期不交付开发成果或交付的开发成果不符合合同约定标准情形下,委托方有权要求解除合同,并尽可能约定金钱上的违约责任。从开发方角度,应约定如软件开发完成后如委托方逾期不验收的法律后果及逾期不付款的违约责任。
2、充分利用法律规定来保护自己的权益。如开发方未能按照合同约定期限交付软件的,要注意通过书面方式催告,并给对方合理的时间,一般以30日为好。如果开发方在30日内仍无法履行的,委托方可以解除合同。
3、重视书面确认
该点对开发方特别重要,此类合同中,委托方的主要合同义务是支付合同款项,主要合同权利是获得合同约定的开发的软件。而受托方的主要合同义务则是按时并按照合同约定向委托方交付软件并验收合格。因此,此类案件中受托方的举证责任非常大。关于合同具体履行情况的确认是受托方在诉讼中获得成功的关键。
委托方的任何需求调整都要明确纪录并告知委托方,此需求调整可能导致的工作量变化及对合同履行时间的影响,让委托方确认后再进行下一步工作。实践中,多因为业务关系,开发方在履行中一味接受开发方的调整,或者在调整后没有任何书面内容记录即开始工作,一般双方对履行内容及合同时间有争议,就会对开发方非常不利。因为软件开发履行过程的漫长和繁琐,双方往往以邮件往来,尽管如此,对某些可能涉及工作量或者可能影响软件交付时间的变更,仍建议通过书面信函方式进行确定。或者即使通过邮件,也要在邮件中明确相关内容,并要求委托方进行确认。实践中,进行邮件沟通的往往是技术人员,而其关注点仅在技术对某些事实或者时间节点的确认并不重视,所发送的邮件在诉讼中起不到证明有关事实的作用,从看似主动变成被动。建议合同重要环节的履行应咨询专业律师,尽可能保留证据,以防在诉讼中造成对己不利的法律后果。
4、重视书面工作汇报
开发方在委托方所进行的每一项工作,注意都要有书面记录并要求委托方确认,防止出现争议情况下,委托方对开发方工作的不认可。即使通过邮件来汇报工作,也要所做的具体工作内容详细写清楚,不能寥寥几个字带过。
技术区别于有形货物,对技术内容的确认本来就存在差异,对技术的理解也易产生差异,这些原因导致计算机软件开发合同履行的各个环节都可能会发生争议,因此需要企业在签署合同以及合同履行过程中时刻以最坏的可能来提醒自己,尽可能避免法律风险。我们律师在办理这些案件时,在掌握法律知识的前提下,还要加强对技术的理解和学习。