上海蓝宇能信息技术有限公司

上海某某能信息技术有限公司与武汉某某数据技术有限责任公司(原名武汉蓝证数码科技有限公司)计算机软件开发合同纠纷民事一审案件民事判决书

来源:中国裁判文书网
上海知识产权法院
民 事 判 决 书
(2018)沪73民初946号
原告(反诉被告):上海**能信息技术有限公司,住所地上海市静安区西康路928号922-02室。
法定代表人:杨大炜,执行董事。
委托诉讼代理人:李青,上海市海华永泰律师事务所律师。
委托诉讼代理人:郭斌,上海市海华永泰律师事务所律师。
被告(反诉原告):武汉**数据技术有限责任公司(原名武汉蓝证数码科技有限公司),住所地湖北省武汉市武汉东湖新技术开发区高新大道以北、高科园路以西、九峰一路以南、光谷六路以东中建·光谷之星项目F、Ⅰ地块Ⅰ-1号楼1单元十六层(8)号(自贸区武汉片区)。
法定代表人:张淼,执行董事。
委托诉讼代理人:叶枫,男,该公司工作人员。
原告上海**能信息技术有限公司(以下简称**能公司)与被告原武汉蓝证数码科技有限公司计算机软件开发合同纠纷一案,本院于2018年10月12日立案后,于2019年11月15日受理原武汉蓝证数码科技有限公司提出的反诉,并与本诉合并审理。被告(反诉原告)在本案审理过程中变更企业名称为武汉**数据技术有限责任公司(以下简称**公司)。本院依法适用普通程序,组织双方当事人进行了两次谈话、一次庭前会议及一次演示,并于2021年1月5日公开开庭审理了本案。庭审时,原告(反诉被告)**能公司的委托诉讼代理人李青、被告(反诉原告)**公司的委托诉讼代理人叶枫到庭参加诉讼。审理中,双方当事人经调解未果。本案现已审理终结。
**能公司向本院提出本诉诉讼请求:1.判令**能公司与**公司于2016年4月12日签署的《软件技术开发(委托)合同》自本诉诉状送达之日即2018年10月17日解除;2.判令**公司返还**能公司第一期系统建设经费人民币10万元(以下币种相同);3.判令**公司向**能公司支付违约金(以15万元为基数、按照每日万分之五的标准、自2016年6月7日起计算至实际归还之日)。事实和理由:2016年4月,双方经协商一致后拟定《软件技术开发(委托)合同》,就**能公司委托**公司研究开发的“社区人口基本信息采集管理系统”项目事宜做出具体约定。其中,该合同第三条约定**公司应自合同签订45日内通过**能公司组织的系统验收工作并提供相关文档;合同第九条明确了通过验收后的研究开发成果交付方式;合同第十三条约定,**公司逾期未完成工作进度,每日应按未完成部分系统开发费用的万分之五向**能公司支付滞纳金。2016年4月22日,**能公司向**公司支付系统建设经费10万元。合同约定的期限届满后,**公司迟迟未能通过**能公司验收,也未交付相关资料。经**能公司多次催促,**公司仍拒不按期完成开发任务,拖延至今。**能公司认为,**公司的上述违约行为不仅影响了**能公司中标项目的正常运作,更使**能公司失信于第三方公司,给其名誉、金钱等造成严重不利影响,故诉至法院,请求法院判如所请,维护其合法权益。
**公司针对本诉辩称:一、双方的确存在合同关系,但关于该软件项目的合同并未正式签署,**能公司只能要求解除双方实际履行的协议,不能要求解除未签订、未生效的合同。1.**公司于2016年4月12日通过电子邮件发出要约,**能公司并未以任何有效形式进行确认,双方没有就此达成合意,后双方也未按该合同实际履行。事实上,双方实际履行的协议没有书面形式,双方的实际合作也不限于此邮件内容。2.双方邮件往来中提供的合同并未签订,合同文本第二十条约定“本合同经双方签字盖章后生效”,故该合同亦未生效。3.**能公司向法院提交的2016年4月12日的合同文本打印件与**公司通过邮件发送的合同文本部分内容不一致,**能公司对其中关键内容(实现功能描述、验收提交文档与资料内容)进行了修改。4.**能公司于2016年4月22日的转款与邮件中的合同没有直接关系。5.双方在2016年7月28日形成的《会议纪要》明确表示“另行签订开发维护合同,合同文本双方另行协商”。6.**能公司曾就本案纠纷向武汉东湖新技术开发区人民法院(以下简称武汉东湖法院)以不当得利案由提起诉讼,这一做法实际上承认了双方并未就合同的所有条款达成一致意见。二、**公司已履行全部义务,并不存在违约行为,故取得10万元系统建设经费具有法律依据,不应承担违约金。2015年下半年至2016年6月,应**能公司请求,**公司为其“2015年上海市对口援建叶城县智慧社区示范点建设项目”(以下简称“叶城项目”)定制开发“叶城县XX社区人口信息管理系统”,并根据其要求新增“叶城县XX社区数据对接”“叶城县XX社区门禁发卡管理程序”“叶城县XX社区门禁发卡控件程序”软件开发。2016年4月底,**公司在项目所在地新疆叶城县进行了“叶城县XX社区人口信息管理软件”安装、培训。2016年6月,技术人员再次前往新疆叶城县安装新增软件并进行了现场培训。2016年7月4日、7月5日,**公司分别将该软件相关文档、程序及源代码通过邮件方式发送给**能公司法定代表人杨大炜。同年7月4日,**能公司股东刘某回复**公司有关“项目明细清单”的邮件,对与涉案项目有关的软件已安装并已投入使用,以及待付余款均予以确认,这充分证明**公司已经履行全部义务。2016年12月21日,杨大炜向**公司工作人员叶枫发送邮件明确表示在上海办公室搭建的仿真模拟环境中安装该程序并对技术人员就程序安装、操作和排障进行必要培训工作后,平台软件开发即画上句号。基于**能公司以上承诺,**公司于2016年12月28日将涉案软件安装在**能公司指定的服务器中并正常运行,安装过程、各项功能的操作使用等均有**能公司指定技术人员现场同步并接受培训,且在《交付清单》《安装确认单》《培训确认单》上签字确认,**能公司在此期间也未对软件功能提出任何意见。其中,《安装确认单》上的“物理地址一”“物理地址二”充分证明该项目软件的安装地址包括用户单位所在地和**能公司指定地。此外,**能公司在《交付清单》上手写的第7条“承诺所提交程序及相关配置与叶城实际程序部署情况完全一致”亦表明其完全清楚该软件已在叶城用户方安装并投入使用,同时也能证明该程序已经提交给**能公司。三、**公司履行合同义务后,**能公司提出“验收不通过”,其理由难以成立。1.**能公司既没有就验收方式与**公司达成一致,也不尊重事实。该主张不顾涉案软件已经安装并投入使用、多次新增开发内容、**公司多次以不同方式提交软件文档和程序等事实。2.对于需求多变的小型应用软件开发项目而言,一味强调“验收不通过”不合情理,更不符合软件开发的实际,若客户均按此做法,小型软件开发企业将陷入法律诉讼的死循环而无法正常开展业务。3.**能公司要求**公司提供的“源代码说明文档”“对源代码字段定义、说明”根本无法实际操作执行。4.**能公司在整体项目临近验收时还在对具体实施细节反复变化,并请求**公司现场配合开发。由于现场网络不畅,大部分沟通只能通过电话,难以保留完整记录。虽然最终交付使用的软件功能与2016年4月12日邮件合同中约定的功能不完全一致,但在原有基础上增加了工作量和难度,如该软件需要与不同的硬件、供应商之间进行技术对接,又新增了“访客管理、人像比对结果查询、门禁记录查询、发卡管理(以及专用的发卡器控件程序)”等功能。其中,没有实现蓝证身份比对接口的功能是由于**能公司并未提供“蓝证身份对比”相关资料。5.软件交付用户单位使用长达近一年,期间用户未对系统功能提出任何修改要求,**能公司至今也未对系统功能及新增功能提供修改或不满足等意见。四、**能公司关于影响其中标项目的正常运行、使其失信于第三方公司并给其名誉、金钱等方面造成严重不利影响的主张没有任何依据。1.**能公司与叶城之间的合同及投标商务资料证明,本案涉及的软件并不在其列,**公司提供软件是应**能公司要求,而且也做到了按时交付,并投入正常使用。2.**能公司应从自身查找项目失败、失信于人的原因,而不应将责任推向给予其帮助的**公司,更不应就此多地反复提起诉讼。综上,**公司已经履行全部义务,**能公司以**公司迟迟未能通过验收,也未交付双方约定的相关资料为由发起诉讼,其理由与事实不符,故请求法院查明事实,驳回**能公司的本诉诉讼请求。审理中,**公司表示如果对方主张解除合同,其同意解除双方之间的合同关系,但要求根据合同履行情况结算开发费。
**公司向本院提出反诉诉讼请求:1.判令**能公司向**公司支付“叶城县XX社区人口信息管理软件”开发费用余款5万元;2.判令**能公司向**公司支付“叶城项目”中技术人员前往现场服务的返程费用2,643元;3.判令**能公司向**公司支付“叶城项目”中定制“叶城县XX社区数据对接”软件开发费12,000元;4.判令**能公司向**公司支付“叶城项目”中定制“叶城县XX社区门禁发卡管理”开发费24,000元;5.判令**能公司向**公司支付“叶城项目”中定制开发“叶城县XX社区门禁发卡控件程序”开发费24,000元。事实和理由:2016年4月,应**能公司要求,**公司为其承建的“叶城项目”定制开发“叶城县西城区人口信息管理软件”。**公司于2016年4月底在项目所在地进行了安装、培训,该软件在用户单位交付使用长达近一年,期间用户及**能公司并未对系统功能提出任何修改要求。为配合**能公司的项目需要,**公司先后为其定制开发“与第三方软件系统的数据对接”“门禁卡发卡管理”“门禁发卡控件程序”等软件,在**能公司承诺往返差旅费后,**公司于2016年6月安排技术人员再次前往叶城县XX社区进行第二次用户使用培训。2016年7月4日,叶枫将“项目款明细清单”以及上述软件开发项目清单整理备注说明后发邮件给刘某,刘某回复邮件表示认可,并表示将按合理开发价格进行结算,但**能公司迟迟未履行付款义务。**能公司提供的《付款凭单》明确“软件开发共150,000元”“本次申请100,000元”,尚有5万元至今未支付。2016年12月28日,**公司将涉案软件系统安装在**能公司指定的服务器中,安装过程、各项功能的操作使用等均有**能公司指定的技术人员同步并接受培训,且最终签字确认,**能公司工作人员在此期间亦未对软件功能提出任何意见。综上,**公司认为,其已履行完毕所有合同约定义务,而**能公司却未能履行付款义务,故诉至法院,请求法院判如所请,维护其合法权益。
**能公司针对反诉辩称:不同意**公司的全部反诉请求。一、关于开发费用余款5万元,**公司并未按照**能公司的要求完成软件开发,其于2016年12月28日首次现场验收时所交付的开发成果并不符合要求,既不具备相应功能,文档也并不齐全,并且**能公司验收人员亦明确向**公司指出存在的问题并要求其完善后重新提交。但是,直至诉讼中的演示时,**公司开发成果还是不具备描述的功能,**公司也明确有相当一部分功能没有开发,这进一步验证了**能公司的观点,故**公司并未完成开发任务,其无权收取已经收取的费用,更无权向**能公司主张原合同约定的剩余开发费。二、关于技术人员往返现场的费用,**能公司认为该项费用没有事实依据,即便该费用实际发生,也已经包含在软件开发费中,不应另行收取。三、关于社区数据对接软件开发费12,000元、门禁发卡管理开发费24,000元以及门禁发卡控件程序开发费24,000元,**能公司认为与本案无关,不属于本案受理范围,且没有事实和法律依据。因此,请求法院驳回**公司的反诉诉讼请求。
本案审理中,当事人围绕各自诉、辩主张依法提交了证据,本院组织双方当事人进行了证据交换和质证。**能公司和**公司共同向本院提交了关于“社区人口基本信息采集管理系统”合同签署相关事宜的邮件及附件,**能公司另提交了首期系统建设经费的《国内支付业务付款回单》以及《付款凭单》,**公司还提交了《交付清单》《安装确认单》《培训确认单》《技术服务巡检确认单》《费用报销单》《费用报销审批表》及相关报销凭证、武汉相关案件判决书以及双方关于开发成果的交付、新增软件开发、会议纪要、争议解决等事项邮件往来等证据。双方当事人对上述证据的真实性均予以认可,本院将结合上述证据与本案的关联程度认定相关事实。
此外,**公司为证明其曾发函催要软件开发费,向本院提交了两份催款通知函;另为证明**能公司投标的项目中最初没有将涉案软件纳入到项目预算中,而向本院提交了投标人显示为**能公司的《“2015年上海市对口援建叶城县智慧社区示范点建设项目施工”投标文件(商务文件)》。经质证,**能公司对上述证据不予认可,理由为:1.两份催款通知函中的一份显示致案外人上海XX有限公司,不清楚该公司是否收到,另一份致**能公司的函件没有收到。2.对于投标文件的真实性、合法性和关联性均不认可。本院经审查后认为:1.由于**能公司不确认收到过催款通知函,且其中一份通知函的发送对象非合同相对方,而仅凭**公司提交的顺丰速运“寄件客户存根”联,本院难以认定函件的实际收件情况,故不作为定案证据予以采纳。2.**能公司虽对**公司提交的投标文件不予认可,但其在庭后提交书面情况说明确认“叶城项目”不包括本案开发软件,即认可了**公司提交该份证据的待证事实,本院对该事实予以确认;因**公司未能提交投标文件的原件,而该文件其余内容与本案无直接关联,故亦不作为定案证据予以采纳。
依据经审查确认的相关证据和当事人的陈述,本院认定如下事实:
2016年4月12日,**公司工作人员叶枫向**能公司法定代表人杨大炜发送主题为“(2016年04月12日)社区人口基本信息采集管理系统软件技术开发合同”的电子邮件,邮件附件为“社区人口基本信息采集管理系统”《软件技术开发(委托)合同》(以下简称1.0版本合同)。该合同首部有关委托方(甲方)的信息尚未填写,受托方(乙方)为武汉蓝证数码科技有限公司,项目联系人为叶枫,合同尾部甲、乙双方均未签章。1.0版本合同的主要内容为:第一条本合同研究开发项目的要求如下:……4.实现描述功能:人口信息管理(实有人口、流动人口、社会保障信息、学生学籍信息、党员信息、干部信息)增删改功能、人口信息录入功能、指纹采集(PC端连接)、查询统计(按社区要求,自行选取信息项生成xls文件)、从外部(自助拍摄设备、文件包)获取人员照片、蓝证身份比对接口、人员信息比对结果查询、移动客户端采集(工业平板)。第二条乙方应在本合同生效后2个工作日内向甲方提交开发和实施计划(电子文档,邮件方式)。开发和实施计划应包括:系统开发和实施的人员安排、开发计划和实施计划。第三条乙方应按下列进度完成研究开发和实施工作:1.本合同签订后7日内完成系统设计;2.本合同签订15日内甲方服务器等硬件设备安装到位;3.本合同签订30日内完成系统建设,包括系统软件的开发、系统初始化、用户培训等工作;4.本合同签订35日内完成系统运行测试;5.本合同签订40日内完成系统试运行;6.本合同签订45日内通过用户单位组织的系统验收工作,验收时乙方必须提供《业务需求报告》《系统需求分析报告》《系统详细设计说明书》《系统安装配置说明书》《系统测试案例》《用户操作手册》等重要文档。第四条甲方应向乙方提供的技术资料及协作事项如下:1.技术资料清单:根据系统开发功能设计需要提供相关资料(新疆喀什地区叶城县行政区划代码表、用户信息、相关设备的接口文件等)……2.提供时间和方式:合同签订后2个工作日内提供纸质样本或电子稿。3.其他协作事项:合同签订前,甲方应通过组织座谈、讨论会等方式,准确描述各项功能需求和业务设计,配合乙方完成系统的需求分析和系统设计。……第五条甲方应按以下方式支付研究开发经费和报酬:1.系统建设经费总额暂定为人民币壹拾伍万元整。乙方为履行本合同而发生的所有费用均应包含在合同价中,甲方不再另行支付其他任何费用。2.系统建设经费由甲方分两次支付乙方。具体支付方式和时间如下:(1)本合同签订之日5个工作日内,甲方向乙方支付计人民币壹拾万元整。(2)系统安装、客户培训完成后5个工作日内,甲方向乙方支付人民币伍万元整。……第十条乙方应当按以下方式向甲方交付研究开发成果:1.研究开发成果交付的形式及数量:以电子数据包的形式交付1份;2.研究开发成果交付的时间及地点:本合同签订后65日内,交付地点为上海。第十一条双方确定,按以下标准及方法对乙方完成的研究开发成果进行验收:由甲、乙双方项目联系人组织甲方业务代表和乙方技术代表,以双方共同签字确认的需求分析文档为标准进行验收。……第十三条双方确定,乙方应在向甲方交付研究开发成果后,根据甲方的要求,为甲方指定的人员提供技术指导和培训,提供与使用该研究开发成果相关的技术服务。1.技术服务和指导内容:乙方对甲方相关人员进行使用培训;2.地点和方式:培训地点双方协商后另行确定,培训方式为集中培训方式;3.费用及支付方式:培训场地和设备甲方提供,培训服务免费。第十四条双方确定:任何一方违反本合同约定,造成研究开发工作停滞、延误或失败的,按以下约定承担违约责任:1.乙方违反本合同第三条约定,应当按每拖延一日以未完成部分系统开发费用的万分之五向甲方支付滞纳金(支付违约金或损失赔偿额的计算方法)。2.甲方违反本合同第五条约定,应当按每拖延一日以未支付款项的万分之五向乙方支付滞纳金(支付违约金或损失赔偿额的计算方法)。第十六条双方确定,在本合同有效期内,甲方指定杨大炜为甲方项目联系人,乙方指定叶枫为乙方项目联系人。……第二十一条本合同经双方签字盖章后生效。
2016年4月22日,**能公司向**公司支付10万元,《付款凭单》用途说明中注明“软件开发共150,000元本次申请100,000元”。
2016年7月4日,叶枫向杨大炜发送主题为“叶城人口信息管理相关文档”的电子邮件,并附有名为“叶城人口信息管理相关文档.rar”压缩文件。同日,叶枫通过电子邮件向**能公司股东刘某发送《上海蓝迪(**能)项目明细清单》word文档,该文件中以表格形式列明项目名称分别为“巴楚教育局一期”“叶城社区人口管理”“叶城社区卡制作”的总额、已付款和待付余款,其中所列“叶城社区人口管理”项目总额为15万元,已付款10万元,待付余款包括项目余款5万元和备注为“吴勇返程费用”2,643元;表格后文字说明包括“关于叶城社区卡制卡的缺失说明”和“软件开发项目清单列表”,“软件开发项目清单列表”载明“……五、叶城人口信息管理平台(已安装,并付部分款项);六、叶城人口信息管理平台与门禁、人像系统数据对接,主要是提取数据、本地做查询(已完成,并整合进人口信息管理平台,现场完成安装调试);七、叶城社区居民卡发卡管理(已完装,并整合进人口信息管理平台,现场完成安装调试,已正常投入使用);八、叶城社区居民卡发卡器控件程序(已开发完成,并投入正常使用)……”刘某于当日下午通过电子邮件回复叶枫“这些工作量配合过我,我都认可。请在8月1日前到上海提交你提及的项目开发清单列表内容,工作量和项目我都认可请叶总列出合理开发价格我结算即可。”2016年7月5日,叶枫向杨大炜发送主题为“叶城人口信息管理程序包”,并附有名为“叶城人口信息管理程序.rar”压缩文件,邮件正文内容写明“你们要的程序,请收附件”。
2016年7月28日,叶枫向刘某发送主题为“会议纪要”的电子邮件,并抄送**能公司股东邵某,该邮件附件文件名为“(2016年7月28日)会议纪要.docx”。2016年7月29日,刘某回复称“会议纪要不相符”;同日,叶枫回复刘某“您要是认为哪里有差异,可以修正。如果是全部与事实不符,您这里出一份;如果只是部分不符,您这里直接具体指出来就是了”。2016年8月7日,邵某通过电子邮件向叶枫发送了修改后的会议纪要。修改前后的会议纪要就“叶城项目”相一致的内容有“2016年7月28日上午9点20分,上海XX有限公司(以下简称上海XX公司)代表刘某、邵某,武汉蓝证数码科技有限公司(以下简称‘武汉蓝证’)代表叶枫,在XX路XX号XX室,就双方合作过程中的若干问题进行了充分协商,具体内容如下:……三、双方明确,叶城社区项目基于目前状况,另行签订开发维护合同,合同文本双方另行协商。2016年8月9日在上海验收。……五、双方明确,上海蓝迪在合作期间委托武汉蓝证开发的系统软件,按以下清单交付:1.莎车人口信息采集管(理)平台,包括前端智能手持APP,后台管理系统;2.接口管理平台;3.叶城人口信息管理平台与门禁、人像系统数据对接;4.叶城社区居民卡发卡管理;5.叶城社区居民卡发卡器控件程序。以上为已完成开发的软件产品,武汉蓝证提供完整文档(不包括系统支撑平台,如数据库、中间件、操作系统等)。……”
2016年8月29日,邵某向叶枫发送主题为“(2016年4月12日)社区人口基本信息采集管理系统软件技术开发合同(2)”的电子邮件,并附有该合同文档(以下简称2.0版本合同)。邮件正文内容为“叶总:您好!附件为**能的杨总让我转发给您的合同,合同为叶城项目系统开发的合同您看下,另外杨总问签合同是按当时时间来补签还是现在的来签?”同日,叶枫通过电子邮件回复“合同内容你们修改太大,我认为有太多不合理的地方,已作了备注,请收看。”附件为经过叶枫批注的2.0版本合同,批注内容主要针对**能公司对合同条款做出的实质性修改。其中,**能公司在1.0版本合同基础上所做的实质性修改及叶枫相应的批注内容如下:一、关于原合同第一条第4款“实现描述功能”,**能公司新增“自助照相及身份比对认证”功能,叶枫对此批注“这里表述不清楚。系统本身是无法实现自助照相的,另外所谓的身份比对认证的业务流程如何?跟什么作比对?如何获取比对源等都没有清晰的定义,对于这一点,我们无法在当前情况下实现”;二、关于原合同第三条第6款,**能公司新增验收文档“《源代码》、第三方出具的《系统测试报告》”,叶枫对此批注“首先,我们不会在这样低的合同金额下提交系统源代码,其次,第三方的《系统测试报告》测试费用我们不会出”;三、**能公司删除了原合同第八条,叶枫对此批注“关于这些条款,是工信部的标准软件开发合同所规定条款,而且技术上风险是任何技术开发者都无法回避的,不保留的话,对双方都不公平”;四、关于原合同第九条“保密期限”,**能公司将“本系统验收后2年内”修改为“永久保密”,叶枫对此批注“保密一定会有期限的,这是常识”;五、关于原合同第十条第2款“研究开发成果交付的地点”,**能公司将“上海”修改为“上海甲方办公场所”,叶枫对此批注“我们事实上已经在用户地进行了安装、培训。如果再在上海甲方办公场所交付,也可以,但得支付前期我们在叶城安装、培训所产生的全部费用”;六、关于原合同第十四条第1款,**能公司将滞纳金、违约金或损失赔偿额的计算基础由“未完成部分系统开发费用”修改为“合同开发费用”,并新增“超过15天的,甲方有权解除合同,并向乙方提出赔偿,赔偿金额为”,叶枫对此未做批注。
2016年8月30日,邵某向叶枫发送电子邮件“问一下,巴楚项目您什么时候来验收?另外,杨总让我问您一下,叶城项目的软件怎么运行?”次日上午9:35,叶枫回复电子邮件“邵某:你好!……五、你问我叶城项目的软件怎么运行?首先,如果,你不能或不是代表‘上海**能信息技术有限公司’,这个问题就另找他人来问;其次,如果有人要问这个问题,麻烦请描述清楚、完整。我并不知道你所指的软件具体是指已经在叶城安装运行的,还是你们自己在上海又重新安装的。软件不能运行,前提条件也很多,我无法猜测。”该日下午17:35,邵某回复“……2.今天**能的杨总书面授权我,让我和您沟通叶城软件的事,您之前也提供过软件和安装手册过,在上海的安装上出现了问题,您这里是否能提供技术服务,先保证软件能正式安装。”该日19:13,叶枫回复邵某“……叶城的软件我们已经在现场安装过,要再配合你们,也得先谈好协议。”
2016年12月21日,杨大炜向叶枫发送电子邮件,正文主要内容有“……在叶城项目上,你来了上海也去了新疆,这些付出无可否认。……目前来看,分歧大约是两点,一是平台软件开发与交付,二是你代购的卡片。平台的软件当时委托你开发,你也认为已完成开发任务并在叶城安装。但作为叶城项目承建方和软件开发的委托方,我们还是要求作为受托方的你应该提供相关的源代码、安装程序,在我们上海办公室搭建的仿真模拟环境中安装该程序,并对我们的技术人员做好安装程序、操作程序和排障的必要培训工作。这是我们一直坚持的立场,在微信中你也不反对。那么是否在近期就实际操作,这样就把平台软件开发的事画上句号。当然,在这之前把开发协议补签一下。如对于之前邵某发给你的合同草案没有异议,建议本周就办好合同。关于IC卡的事,你在微信中提出了有更好的解决方案来减少损失,我表示感谢。希望你给出一个明确的数字,双方都能接受的话,我们也就此做一个了结。上面这两件事希望在本周末之前有个明确说法,年底前实际操作完成。如果你觉得需要面谈,我可以在明后天去你武汉的办公室。”同日,叶枫通过电子邮件回复“大炜,你好!叶城项目的软件开发合同邵某后来发给我的版本是有问题的,我当时就回复他并指出了不合理的地方。叶城软件系统我们下周可以安排人员前往上海交付,同时对你们的技术人员进行培训,但我们是希望你们的技术人员已具备数据库、中间件的基本知识,并有初步的编程知识。在你处理这件事情前,我们双方互相交换授权文件,都能代表各自的实体全权处理。合同如果不能达成一致(事情已真实发生并双方都有付出),那么我们可以签一个协商备忘录。制卡的损失明细我会按最小损失给你列出,但这个制卡并不是你所说的‘代购’,一直都是委托制卡,请不要变换事情本质。我会在下周一给你备忘录文本、制卡损失明细。请你们安排下周三指定服务器,我们的人现场安装系统,你们的人参与过程,同时进行培训。当天也会提交你们需要的文档。谢谢!”
2016年12月23日,杨大炜再次通过电子邮件回复叶枫“邮件收到,谢谢。既然我们双方都有把项目尽快结尾意愿,我这里会积极安排软件培训环境搭建。有两问题咨询你。第一,目前我们可以腾出一台服务器,软硬件配置如附图。你看是否合用?第二,你邮件里说准备下周三派员来上海做培训,时间是否确切,具体是上午还是下午?上述两个问题能否今天下班前给个明确答复,以便我们做安排。第三,ic卡的事,无论你如何定义,我们的确认为属于代购性质。但即便称呼上有分歧,我们也希望大家能平和的解决。而且,ic卡和软件平台的事都属于叶城项目,应该在这次一并解决,而不是留有遗憾。因此,请你周一中午前务必告诉我们关于处理ic卡事宜的合理费用。虽然有分歧和不愉快,还是感谢你在叶城项目的配合和付出。”
2016年12月28日,双方在上海市XX路办公室进行现场验收,并签署了“叶城项目”“叶城县XX社区人口信息管理软件”《交付清单》《安装确认单》及《培训确认单》三份文件。其中,《交付清单》上以表格形式所列的“项目交付成果”包括:安装程序1套、门禁发卡控件(已整合进平台)1套、数据对接(已整合进平台)1套、发卡管理(已整合进平台)1套、安装配置说明1套、用户操作手册1套和源代码(不包括系统框架源代码)1套;在表格下方有**能公司手写的验收意见,内容为:“经核对,武汉蓝证数码科技有限公司所提交的项目交付程序、文档、文件与《‘叶城县XX社区人口信息管理软件’交付清单》一致,但缺失通过验收的必要文件,列表如下:1.客户需求分析说明文档;2.系统设计说明文档;3.该系统涉及的数据库设计说明,包括但不仅包括字段名,表与表对应关系;4.该系统涉及的完整源代码,包括但不仅包括系统框架源代码(可用编译后的系统框架代替),确保该源代码编译后与安装文件一致;5.源代码说明文档,包括但不仅包括对源代码字段定义、说明;6.该系统的测试报告;7.承诺书,承诺所提交程序及相关配置与叶城实际程序部署情况完全一致。根据以上实际核对情况,我方认为本次验收不通过,退还软件及相关文件、文档,请武汉蓝证数码科技有限公司补充、完善后,重新提交。”《安装确认单》中以表格形式载明的“交付清单”列有“后台应用程序”“平台与门禁、人像系统数据对接”“社区居民卡发卡管理”“社区居民卡发卡器控件程序”;“系统部署方式”载明“1.物理地址一:叶城县XX社区独立服务器;2.物理地址二:上海**能信息技术有限公司指定上海XX路928号11楼服务器。”《培训确认单》载明培训内容为“系统安装及初始化配置、系统日常维护及故障诊断、系统参数配置、用户管理、权限管理及主要功能使用培训”,并有参加人员周寅叡、缪鹏程的签名,杨大炜于该确认单“培训负责人”栏手写培训意见“按本次提交文件的培训已完成”。以上三份文件尾部均有杨大炜签名及**能公司盖章,且均同时写有“验收不通过”字样。
2016年12月30日,叶枫向杨大炜发送主题为“关于叶城项目2016年12月28日在XX路安装培训的结果回复”的电子邮件,邮件正文内容为“大炜,你好!一、今天给贵公司签收的文档主要是三个,一是‘2015年上海市对口援建叶城县智慧社区示范点建设项目’‘叶城县西(城)社区人口信息管理软件’交付清单、安装确认单、以及培训确认单。在此之前,我们双方并没有涉及验收事项,但你在这三个文档上都采取了非常跳跃的做法,写上了‘验收不通过’字样,并将所谓‘通过验收的必要文件,列表如下’。二、关于验收的事情,你让我说明,叶城软件算是完成了还没有完成?我可以明确告诉你,已完成!!我们在叶城现场安装、实施、修改、新增功能、培训等这些工作都已做过,你们自己也承认这套系统目前叶城一直在使用,在我们开发软件之前、之后,你们一直没有提供给我们任何有关需求的文档,也没有任何人跟我们讲过具体的需求到底是什么。你是叶城项目的负责人,也多次去过叶城,叶城项目验收到底有哪些文档即使你当时不知道,但现在你接手跟我谈叶城项目的合作分岐(歧),你应该事先去做了解吧?三、叶城项目现场提交的文档包括:智慧社区人口信息管理系统需求分析说明、智慧社区人口信息管理系统技术方案、智慧社区人口信息管理系统测试用例、智慧社区人口信息管理系统用户操作手册等文档,这是在叶城现场打印装订后文档,电子版是拷贝给周寅睿(叡)并由他打印。四、武汉蓝证最早发给邵某的合同中提交的文档是:需求报告、系统需求分析报告、系统详细设计说明书、系统安装配置说明书、系统测试案例、用户操作手册、源代码等重要文档。五、按照软件开发流程,需求文档应该由你们来提供并确认最终需求,截止到今天(2016年12月28日)为止,贵公司没有提供给我们任何需求文档、接口文件,更不要说组织需求讨论了。六、你们今天的列表的第1项‘客户需求分析说明文档’其实应该是由你们提供的。第2项‘系统设计说明文档’我们可以提供‘系统详细设计说明书’。第3项与第2项其实是重复的,你们所要的字段名,表关系都在说明文档里。第4项,我们最初的合同没有说要给你们完整的源代码,但在上次发给你的邮件中,其实是包括了所有的源代码的。至于是否一致,这个需要你们自己具备判断能力,对他人有基本的信任。第5项‘源代码的说明文档’这个要求就很不合理了,代码本身就是说明,不管我们怎么写这个文档,你们都能找到理由说看不懂,要求我们重写,如果你们具备这方面的能力,拿到代码自己测试就能明白,这个不是我们必须要提供的,也不合理。第7项所谓的‘承诺书’就更无聊了,我们没有必要提供给你们两套不同的系统,是不是一样,也只有你们自己去比对,去判断,去相信他人。七、按照你们的列表,我们只需要再给你们提供‘系统详细设计说明’这一个文档,其实就应等同于这个软件项目已通过你们的验收。……”
落款时间为2018年5月14日,由叶城县西城区XX社区居委会签盖确认的“叶城项目”“叶城县XX社区人口信息管理软件”《技术服务巡检确认单》记载:回访巡检项目内容为“社区人口信息管理系统”和“系统服务器”,启用时间为2016年5月;社区人口信息管理系统于2017年4月前有使用,问题及原因是“项目整体维护欠缺,目前监控、自助拍摄全部停用,人口管理部分业务搬迁,原系统于2017年4月后停用”;系统服务器的问题及原因是“业务搬迁,上级部门另有要求”。此外,包括“操作系统、Web应用、数据库系统、数据备份、数据恢复、数据库空间、PC端设备”在内的其他项目运行情况均显示“停用”。
另查明,**公司提交的《费用报销单》《费用报销审批表》记载,吴勇提请报销的产生于2016年5月26日至6月1日的项目执行费用包括:机场往返的士费407元、差旅费560元、叶城到喀什车费240元、航空意外保险36元、喀什到武汉机票1,400元,共计2,643元。
又查明,2018年3月21日,**能公司曾以**公司更名前的主体武汉蓝证数码科技有限公司为被告向武汉东湖法院提起不当得利纠纷之诉。武汉东湖法院经审理后认为:“原告**能公司委托被告蓝证公司开发‘叶城县XX社区人口信息管理系统’,原告**能公司支付的226,500元系支付的软件开发款和卡片制作费,被告蓝证公司也已经进行了软件开发,并向原告**能公司提交了软件开发成果,双方虽然未签订书面的合同,但被告蓝证公司已经履行主要义务,故被告蓝证公司取得上述款项有法律依据。原告**能公司认为被告蓝证公司交付的软件没有达到己方的要求,可以另行主张权利,但其据此主张被告蓝证公司取得上述款项系不当得利,本院不予支持。”武汉东湖法院遂作出(2018)鄂0192民初1331号民事判决,驳回**能公司的诉讼请求。**能公司不服,提起上诉,湖北省武汉市中级人民法院经审理后亦以“蓝证公司接受**能公司的款项系基于蓝证公司接受**能公司交付的工作,以双方之间的合同为依据,故不属于不当得利”为由,作出(2018)鄂01民终7314号“驳回上诉,维持原判”的民事判决。
另经查询国家企业信用信息公示系统,**公司于2020年12月17日由原名武汉蓝证数码科技有限公司变更为现名武汉**数据技术有限责任公司。
审理中,**能公司坚持要求就涉案软件的开发完成情况进行演示,**公司虽同意演示,但同时指出由于使用环境不同、牵涉较多第三方软、硬件等技术原因无法确保所有功能正常演示。演示前,经与双方当事人沟通,**公司提交了书面《涉及软件演示环境要求的说明》,明确列举了搭建软件演示环境需由**能公司提供的软、硬件清单,包括:“1.能正常运行Oracle10g、windows2003server以上版本、以及中间件的PC服务器;2.深圳科葩的人像识别系统全套;3.门禁卡与门禁卡读卡器;4.门禁管理系统;5.停车场管理系统;6.以及必要的数据库Oracle10g、服务器操作系统windows2003server、中间件系统等。”**能公司于2020年12月1日本院以网上在线方式召集的谈话过程中表示,上述所列第1项及第3-6项都可以提供,所列第2项可以提供人像系统,但不是**公司指定的“深圳科葩”的系统。本院于该次谈话时限期**能公司反馈演示准备情况,以便本院安排演示。关于演示所依据的功能需求,**公司主张应当以1.0版本合同第一条第4款“实现描述功能”所列功能为准,**能公司指明其对**公司发送的合同文本进行过修改,但不涉及对第一条第4款的修改,故认可涉案开发项目至少需要具备第一条第4款的功能。此外,双方当事人在演示开始前确认没有更加详细的功能需求。据此,本院组织双方当事人于2021年1月4日依据1.0版本合同第一条第4款所描述的功能进行演示。鉴于**公司在诉讼中提交给本院的源代码光盘因出现裂痕而无法读取,经确认,**公司认可**能公司演示当日带来的服务器中的源代码与其备份的源代码一致,故**公司将**能公司服务器中的PC端源代码与其电脑上的用于平板电脑的安卓应用源代码进行编译和部署后进行演示,演示情况如下:
除“人口信息管理(实有人口、流动人口、社会保障信息、学生学籍信息、党员信息、干部信息)增删改功能”“查询统计(按社区要求,自行选取信息项生成xls文件)”以及“移动客户端采集”的手工采集功能**能公司基本认可,“蓝证身份比对接口”“人员信息比对结果查询”两功能**公司明确未开发外,其余约定功能【“人口信息录入功能”“指纹采集(PC端连接)”“从外部(自助拍摄设备、文件包)获取人员照片”和“移动客户端采集”的数据上传功能】以及**公司主张的四项新增功能(“访客管理”“人像比对查询”“门禁出入管理”“发卡管理”)均无法演示。**能公司表示,**公司所主张的四项新增功能对应合同约定需求“蓝证身份比对接口”“人员信息比对结果查询”“移动客户端采集(工业平板)”,故并非新增功能。演示过程中,本院发现涉案软件部分功能需与**能公司的相关系统对接,**能公司表示可以提供该些系统的相关对接文档,但**公司提出由于之前并未收到过对接文档,与接口相关的功能没有开发,而接口开发需要一个修改源代码的过程,故即便**能公司提交相关对接文档,也不再演示。涉案功能演示完毕后,**公司主张读卡设备、卡片、身份证读卡器、第三方软件接口本应由**能公司提供而未提供,导致部分功能无法演示。**能公司则指出,**公司并未在其提交的需要**能公司配合的设备清单中提及以上设备,但为配合法院调查,其愿意准备以上硬件设备由法院决定是否再次演示。经核对,**公司提交的《涉及软件演示环境要求的说明》所列软、硬件清单中并不包含“身份证读卡器”和“指纹采集器”。此外,**能公司明确本次演示没有提供**公司清单所列第2、3、4、5项相关系统设备,并提出次日可以将所需设备和环境备齐,但**公司认为**能公司没有按要求备齐第三方设备,故明确不再进行演示。
本院认为,根据《最高人民法院关于适用〈中华人民共和国民法典〉时间效力的若干规定》,民法典施行前的法律事实引起的民事纠纷案件,适用当时的法律、司法解释的规定,但是法律、司法解释另有规定的除外。在案证据表明,涉案合同关系发生于2016年4月,双方当事人于2016年底就项目验收产生分歧,即诉争法律事实发生于民法典施行前,本案也系双方在民法典施行前因合同履行问题发生的纠纷,故本案仍应适用《中华人民共和国合同法》的相关规定。
根据双方当事人的诉辩意见,本案的主要争议焦点在于:**公司是否依约履行了涉案软件的开发义务,相关的本诉与反诉诉讼请求能够获得支持。
本案中,**能公司主张解除双方签订的《软件技术开发(委托)合同》;**公司则认为双方的确存在合同关系,但关于软件项目的合同并未正式签署,**能公司不能要求解除未签订、未生效的合同。对此,本院认为,双方通过电子邮件先后发送了1.0版本合同和2.0版本合同,但因双方对合同相关条款未达成一致而最终未签署合同。尽管如此,**能公司于2016年4月12日收到1.0版本合同后,于同月22日支付了10万元,在《付款凭单》上注明的总金额和首付款金额与1.0版本合同载明的开发费金额和支付方式基本一致,双方对已支付款项对应涉案软件的开发亦不存在争议;另从双方的往来邮件等证据来看,**公司收到首付款后业已开始实际履行“叶城项目”所涉“社区人口基本信息采集管理系统”的开发义务,故本院认定双方就涉案软件开发事宜已建立了事实上的合同关系。就合同的解除,**能公司主张自2018年10月17日解除,虽然**公司不认可**能公司的解除理由,但其表示同意解除合同,故本院确认双方之间就涉案“社区人口基本信息采集管理系统”开发形成的事实合同予以解除,并根据双方未签署之书面合同中的无争议条款以及履约情况判断当事人有关违约责任和结算的主张能否成立。
就**能公司要求返还系统建设经费并支付违约金的本诉诉讼请求,本院认为,首先,双方在合同内容未完全达成一致,合同尚未签署的情况下,均已开始履行合同主要义务,导致双方对于验收标准各执一词却缺乏合同依据。其次,在本院组织的演示过程中,**能公司在已知应做何演示准备的情况下,未能备齐所需第三方设备导致部分功能无法演示,但其中未准备的“身份证读卡器”和“指纹采集器”则不在**公司所提交的《涉及软件演示环境要求的说明》列举的软、硬件清单中。因此,双方对于验收分歧的产生以及诉讼中不能完整演示均存在过错。结合本院查明的事实来看,**能公司在修改后的会议纪要(2016年7月28日)中确认委托**公司开发的“叶城人口信息管理平台与门禁、人像系统数据对接”“叶城社区居民卡发卡管理”“叶城社区居民卡发卡器控件程序”为已完成开发的软件产品,需由**公司提供完整文档;2016年12月28日的《交付清单》中亦列明交付成果包括安装程序1套、门禁发卡控件(已整合进平台)1套、数据对接(已整合进平台)1套、发卡管理(已整合进平台)1套、安装配置说明1套、用户操作手册1套和源代码(不包括系统框架源代码)1套。再结合其他相关证据综合判断,可以认定**公司已将涉案“社区人口基本信息采集管理系统”在叶城县XX社区用户处进行安装并投入使用。**能公司仅提供证据证明其曾以电子邮件方式或以在确认单上手写注明方式提出过对所开发软件“验收不通过”的意见,但并未提交能够证明实际使用涉案系统的用户单位曾于何时就软件功能问题提出过何种异议的证据。另外,审理中的演示情况表明,除了**公司认可未开发的两项功能外,其余未演示的大部分功能的确是由于缺少相关第三方软、硬件而无法演示,如指纹采集(PC端连接)功能的演示需要指纹采集器设备,“门禁出入管理”“发卡管理”“访客管理”功能的演示需要门禁卡与门禁卡读卡器设备。综上,本院综合双方对于合同解除以及无法完整演示的过错程度、涉案软件的开发完成情况等,酌情确定事实合同解除后开发费的结算金额为75,000元,故**公司应将已收取的10万元中的25,000元返还给**能公司。同样考虑到双方均存在过错,本院对本诉诉讼请求中的违约金,不予支持。
就**公司的反诉诉讼请求,本院认为,第一,基于前述分析以及对开发费结算金额的确定,本院对**公司主张5万元开发费余款的反诉诉讼请求,不予支持。第二,**公司所提交的证据尚不足以证明双方约定技术人员前往项目现场服务的费用应在开发费之外另行支付,**能公司股东刘某针对《上海蓝迪(**能)项目明细清单》于2016年7月4日通过电子邮件回复**公司叶枫“这些工作量配合过我,我都认可”也不足以证明确认项目明细清单中所列的“吴勇返程费用”2,643元应由**能公司支付,故本院对涉及该项费用的反诉诉讼请求,亦不予支持。第三,虽然有证据表明第3、4、5项反诉诉讼请求所涉功能已开发并已整合进平台,但并无证据证明双方就该三个功能曾补充约定应增加开发费,故本院对相应反诉诉讼请求,均难以支持。
综上所述,依照《最高人民法院关于适用〈中华人民共和国民法典〉时间效力的若干规定》第一条第二款以及1999年《中华人民共和国合同法》第十条第一款、第九十七条规定,判决如下:
一、原告(反诉被告)上海**能信息技术有限公司与被告(反诉原告)武汉**数据技术有限责任公司之间就“叶城县XX社区人口基本信息采集管理系统”形成的计算机软件开发合同自2018年10月17日解除;
二、被告(反诉原告)武汉**数据技术有限责任公司应于本判决生效之日起十日内向原告(反诉被告)上海**能信息技术有限公司返还合同款人民币25,000元;
三、驳回原告(反诉被告)上海**能信息技术有限公司的其余本诉诉讼请求;
四、驳回被告(反诉原告)武汉**数据技术有限责任公司的反诉诉讼请求。
被告(反诉原告)武汉**数据技术有限责任公司如果未按本判决指定的期间履行给付金钱义务,应当依照《中华人民共和国民事诉讼法》第二百五十三条规定,加倍支付迟延履行期间的债务利息。
本诉案件受理费人民币3,543元,由原告(反诉被告)上海**能信息技术有限公司负担人民币3,000元,被告(反诉原告)武汉**数据技术有限责任公司负担人民币543元;反诉案件受理费人民币1,276.43元,由被告(反诉原告)武汉**数据技术有限责任公司负担。
如不服本判决,可以在判决书送达之日起十五日内,向本院递交上诉状,并按照对方当事人的人数提出副本,上诉于最高人民法院。
审 判 长  刘 静
审 判 员  邵 勋
人民陪审员  黄田花
二〇二一年七月二十九日
法官 助理  曾 旭
书 记 员  朱丽娜
附:相关法律条文
一、《中华人民共和国合同法》
第十条当事人订立合同,有书面形式、口头形式和其他形式。
……。
第九十七条合同解除后,尚未履行的,终止履行;已经履行的,根据履行情况和合同性质,当事人可以要求恢复原状、采取其他补救措施,并有权要求赔偿损失。
二、《最高人民法院关于适用〈中华人民共和国民法典〉时间效力的若干规定》
第一条……
民法典施行前的法律事实引起的民事纠纷案件,适用当时的法律、司法解释的规定,但是法律、司法解释另有规定的除外。
……。