陕西省高级人民法院
民 事 判 决 书
（2018）陕民终239号
上诉人（一审原告、反诉被告）：陈耀华
被上诉人（一审被告、反诉原告）：西安久弘软件信息技术有限责任公司
上诉人陈耀华因与被上诉人西安久弘软件信息技术有限责任公司（以下简称久弘公司）计算机软件开发合同纠纷一案，不服西安市中级人民法院（2017）陕01民初191号民事判决，向本院提起上诉。本院于2018年4月1日立案后，依法组成合议庭，开庭进行了审理。上诉人陈耀华及其委托诉讼代理人兰景龙、被上诉人久弘公司法定代表人郭艳及其委托诉讼代理人沙金到庭参加诉讼。本案现已审理终结。
陈耀华上诉请求：1、请求撤销一审判决第二项，改判久弘公司返还软件开发费5万元并支付违约金2万元。事实与理由：1、一审法院认定事实错误。（1）一审法院认定陈耀华在签订合同时对涉案软件功能和具体需求约定不明这一事实是错误的。在双方缔约阶段，陈耀华人已向久弘公司工作人员明确了其需求并将其绘制软件流程图交由久弘公司，但久弘公司拒绝向一审法院提交软件流程图和双方确认的需求。由于久弘公司委派的销售人员对技术问题不了解，仅将流程图中的文字挑出作为双方合同附件《旅行平台开发文档》。故导致涉案合同对软件功能需求约定不明的责任在于久弘公司。（2）一审法院认定上诉人一直对软件功能需求进行调整、变化，影响到软件开发周期和进度，系认定事实错误。合同履行过程中，上诉人依据流程图及双方确认的需求针对被上诉人在软件开发过程中出现的问题进行沟通，并非对原功能和需求的调整和变化。2、一审法院适用法律错误。双方在合同履行过程中并未对软件开发期限及进度进行过任何变更，久弘公司未在合同约定的期限内交付技术成果构成根本违约，导致涉案合同解除。一审法院对陈耀华要求久弘公司退还5万元开发费用并承担2万元违约金的诉请未予支持处理错误。
久弘公司答辩称：由于陈耀华在合同签订后不断变化、增加对涉案软件的功能需求，导致久弘公司开发的涉案软件未能在合同约定的时间内通过验收，涉案合同解除的原因责任在于陈耀华。
陈耀华向一审法院起诉请求：1、解除双方签订的旅游资源整合软件《手机APP合同》；2、久弘公司返还陈耀华软件开发费5万元；3、久弘公司承担违约责任并支付违约金184800元；4、久弘公司承担本案诉讼费。
久弘公司提出反诉请求：1.陈耀华支付剩余软件开发费用11万元并承担延期付款违约金19万元；2、陈耀华承担本案诉讼费。
一审法院认定事实如下：2016年3月20日,陈耀华与久弘公司签订项目名称为“旅游资源整合软件”的《手机APP合同书》，约定，一、“项目内容”，1、陈耀华委托久弘公司开发的“旅游资源整合软件”可以在《Android分辨率兼容800*480、1280*720、1920*1080》、《IOS系统兼容7.0+》环境下运行的软件，软件需求双方协商确定。2、本合同APP应用开发的栏目架构及相关功能开发细节由《APP开发需求表》载明。二、“合同价款和付款方式”，1、双方认定本合同开发费用总金额为16万元；本费用不包括软件开发以外的其他费用；2、陈耀华应于3日内将开发费用支付到久弘公司指定账户，延迟付费按照合同额的5‰每天累加；3、本合同签订后一期启动旅行社功能，陈耀华向久弘公司支付合同金额5万元；4、二期启动司机和导游功能5万元；5、三期启动支付剩余的4万元；6、验收之后7日内支付合同余款2万元；8、陈耀华不能按时支付开发费用导致的工期延误，其责任由陈耀华承担。三、“开发进度”，1、在2016年3月20日至2016年5月31日内完成一期客户端开发；2、在2016年6月1日至2016年7月1日内完成二期司机端开发，在2016年7月2日至2016年7月31日内完成二期导游端开发；3、在2016年8月1日至2016年9月20日内完成剩余客户端开发，延迟进度按照合同额的5‰每天累加。此时间不包括Appstore审核时间。Appstore在全部进度完成后以最快速度上架。四、“陈耀华的权利和义务”，3、陈耀华提出本软件的需求内容作为附件时，必须以书面形式详细说出需求内容和测试方法（或指标）。4、项目交付后，久弘公司提供APP后台系统给陈耀华，并培训陈耀华使用，前期久弘公司协助陈耀华上传部分资料，完善APP整体测试版效果展示，后期陈耀华自行上传管理文字、图片资料录入等更新操作。6、陈耀华对本合同中的页面、图像及数据、程序享有其他使用权。7、陈耀华有权要求久弘公司按照双方商定的APP结构，在双方约定的时间内完成协议中规定的内容。8、陈耀华提供APP开发需要的文字内容及图片等。五、“久弘公司的权利与义务”，3、在合同要求的期限内完成APP的开发，并及时通知陈耀华进行验收，在验收期内陈耀华的要求下对不合格地方进行修改。6、久弘公司须在所有模块上线测试成功验收后免费在1年内为陈耀华免费提供技术咨询服务、技术支持，确保陈耀华应用程序访问畅通，并在1年内帮助陈耀华免费确保APP功能正常以及页面正常等。六、“交付、验收事宜”，1、验收标准：（1）双方验收时，陈耀华按照需求标定的指标验收，没有指标的以运行陈耀华测试数据结果的正确与否为依据；（2）久弘公司完成软件开发工作后，陈耀华应在3日内组织验收，陈耀华超过5日不验收，视为验收合格、通过。九、“违约责任”，1、任何一方不履行或不妥善履行本协议下任何条款视作违约，守约方有权要求违约方赔偿因违约而造成的一切经济损失，本协议对违约责任另有约定的从其约定。附：若陈耀华二期完成后试运行效果不佳或出现其他情况，陈耀华有权让久弘公司停止三期开发。本合同附件《旅行平台开发文档》载明，一期。旅行社，旅行社注册，上传营业执照；旅行社负责发布旅行人数，电话，旅游路线，根据车辆车型信息选定车辆与导游人员，并生成与车辆和导游的账单；导游选定餐厅；显示交单人员的单位，人数，行程……。二期。导游端，注册导游，上传导游证……。司机端，注册为司机，上传有效证件，车型，车队队长审核……。三期。景点端，注册景点，旅行社下单后，根据导游填写人数门票信息，……。餐厅端，注册餐厅……。购物点，注册购物点……。酒店端，注册酒店……。交单端，交人单位填写电话、姓名、人数，账单根据人数直接生成。广告位链接模块。权限。后台设置审核人员，后台设置车队队长，后台设置导游队长，旅行社端显示……司机端……景点端显示……餐厅端……酒店端，酒店名称，账单，电话，绑定支付宝。2016年3月23日，陈耀华向久弘公司支付了第一期开发费用5万元。在涉案软件的开发过程中，久弘公司提出不宜分阶段开发，陈耀华同意一、二期合并开发，双方通过微信聊天等方式就软件相关问题保持联系、沟通（以下仅为原告少部分微信内容）。2016年4月9日原告提出“司机信息可以加一个客运资格证”、“上次和你们业务说的接送机专区的事，他说放在甩团里，不知道合乎逻辑不？”。2016年4月10日原告提出“账单是不是可以备注呢？”。2016年4月14日原告提出“交单线路也是自己填吗？自己做自己的线路，每条线路景点由一日游社发布”（增加一日游和团游，并要求一日游发布自己的线路）、“比如东线……我们提供表格之类的，具体的自己填上”。2016年4月18日原告提出“旅游线路目前可以手工填写，不过是两种报价，平均每天超过一定公里可以按公里计算，不够按包车”。2016年4月19日原告提出“导游也是两证，还有一个导游资格证……还可以只传导游证和身份证”、“司机、导游、社都可以甩人，这样操作起来更方便”。2016年5月19日原告提出“能不能不限制数量，按车收费，因为一个车主有的有很多车，雇司机，车主提交车辆信息，然后绑定司机”。2016年5月22日原告提出“这个发单里面是不是有备注项，可以填客源的”、“一日游接人能不能针对一条线路设定一个报警值”。2016年6月19日原告提出“新问题出现了，现在有的景点够人数才有团体票，干脆门票价格改成旅行社自己发布自己的，导游账单正常就是给哪个社带就按哪个社发布的价格吧”。2016年6月26日原告提出“要不就不设系统门票价格了，各旅行社自己写景点和价格……”。2016年7月10日原告提出“我的交单最后有个账目分类统计”。2016年9月29日原告提出“设置队长车队方面由发起人提供一定数量和车辆资料，系统审核然后确定……”。原告还曾提出“儿童改为半票吧，后面跟个可以添加条件和加号……”、“导游和车还应该有个认证信用的项”，等等。原告以微信聊天等方式提出的软件问题，经被告技术人员凌飞整理后以“软件问题”word文档的形式于2017年1月4日发布在涉案软件开发的工作群里，针对原告提出的67个问题逐一作出标注并回复，结论有“已处理”、“技术上不能实现”、“正在处理”、“目前实现有问题”、“待商议”、“做不了”、“正常”、“已解决”等情形。2016年7月9日，被告曾向第三方平台上传过其开发的涉案软件。2016年12月28日，原告曾对涉案软件进行过测试，在工作群里提出软件无法播放。2017年1月13日，久弘公司将其上传至服务器的涉案手机APP软件下架。审理中，双方均称，合同第一条第二项约定的APP开发需求表指合同签订时形成的旅行平台开发文档，没有合同第四条第三项约定的以书面形式说出需求内容测试方法或指标的材料。被告认为双方之间的聊天记录内容说明合同签订后，原告不断增加和变更其要求，包括在旅行社端增加接送机功能、账单备注功能、甩人功能、景点门票价格功能、固定线路功能、线路报价功能并要求分为两种、增加一日游和团游并要求一日游发布自己的线路等；导游端增加上传身份证等功能；司机端增加客运资格证等功能；交单端增加账单分类统计功能；景点端增加报价功能；其他方面如增加所有端口的推送功能、导游和车信用认证功能等等，这些已超出原合同约定的范围，导致被告增加工作量；整个开发过程中原告并未提出解除或者终止合同，导致被告持续工作，耗费大量物力。原告认为双方的聊天内容只是对开发软件具体内容的细化以及合理的调整，其需求并未不断地变化，变更内容属于对合同项目提出的修改意见，而非新增内容，对被告所称超出合同约定范围的功能和要求不认可；而截止目前涉案软件尚有一期的显示交单人员的人数，行程……，二期的导游端，旅行社审核未做、甩团未做、导游个人描述未做……司机端车队队长审核未做、后台设定预留车辆未做……；三期的景点端、餐厅端、购物点、酒店端、广告链接模块整体未做，所有端品绑定支付宝未做，……等多项需求未实现。久弘公司称，截止2016年7月9日其已完成合同约定的一、二、三期全部内容，后久弘公司不断提出变更增加，导致其一直持续修改版本，最后一次更新是2017年1月6日，之后久弘公司提出了修改意见，双方无法达成一致，原告没有付费并提出解除合同，所以其于2017年1月13日将涉案软件下架，最终完成的软件没有在某一载体上保留版本。原告认为被告将软件上传至第三方平台的行为不等于已经完成合同约定、不能证明其开发的软件就可以正常使用。2016年12月底久弘公司最后一次上传软件让其测试，结果是不能使用，之后久弘公司再无更新上传软件。陈耀华称因目前仍未收到完整的能够正常使用的软件，合同已经没有继续履行的基础和条件，其依据《合同法》第九十四条第三、四项行使法定解除权；久弘公司第一期软件开发未完成构成根本违约，合同应解除，故应返还已付软件开发费5万元；久弘公司没有按期完成全部软件构成违约，应按照合同第三条约定承担违约责任。久弘公司称合同附件约定的内容其已经完成，双方没有按照合同附件组织验收，目前原告只付了第一期的费用，实际是三期同时开发，还做了修改和变更，其并没有要求原告增加费，其不存在违约行为，合同不应解除，已付款不应返还；原告应支付合同约定的剩余全部费用11万元，及延期付款违约金。另要明，经法庭研究，需要对以下事项进行鉴定：1、涉案手机APP合同书（含附件《旅行平台开发文档》）签订后，陈耀华就涉案软件功能、验收标准提出了哪些变更、增加；2、久弘公司实际开发、交付了哪部分软件，所开发、交付的软件具备哪些功能，是否达到验收标准；3、久弘公司是否按照合同约定的期限完成了涉案软件的开发。久弘公司同意申请鉴定。法院委托陕西西安知识产权司法鉴定中心对上述事项进行鉴定后，该鉴定机构以“经过咨询专家，并对案件委托材料进行分析查看，发现该委托材料中无详细的验收标准，该行业又没有国家标准，依据现有材料无法进行鉴定”为由将本次委托鉴定退回。双方亦未提供其他具备资质和能力的鉴定机构。
一审法院认为，本案的争议焦点是：1、双方所签涉案旅游资源整合软件手机APP合同应解除还是继续履行；2、久弘公司应否返还陈耀华已付软件开发费用5万元、支付违约金；3、陈耀华应否向久弘公司支付剩余软件开发费用11万元，及延期付款违约金19万元。一、关于涉案旅游资源整合软件手机APP合同应解除还是继续履行的问题。涉案旅游资源整合软件手机APP合同系双方真实意思表示，不违反法律、行政法规的强制性规定，应为合法有效，双方均应依约履行。原告支付了部分开发费用，被告实际进行了涉案软件开发。现涉案合同应解除还是继续履行，从以下方面分析和考察：首先，从涉案合同及其附件“旅行平台开发文档”对涉案软件的约定来看，各模块所需实现的功能要求约定不够明确、具体，描述的多为该模块的常规的、基本的功能，给后续进行功能扩展、细化和深化留下空间；合同中“双方验收时，陈耀华按照需求标定的指标验收，没有指标的以运行陈耀华测试数据结果的正确与否为依据”的条款对验收标准及验收方式约定不明，测试主体和方式的约定本身造成测试过程缺乏监督，客观上亦存在测试设备、运行环境不满足的可能性，其测试结果极易引起被告质疑，导致双方对测试结果难以达成共识，以上说明在签约时双方对涉案软件需求考虑不够全面、功能设计不到位，需要在开发过程不断调整，成为影响合同正常履行的不确定性因素，对此双方均有责任。其次，从合同履行的过程来看，双方微信聊天内容反映出，涉案软件开发过程中，存在对开发文档中所列软件功能的具体、细化、扩展、延伸，在开发文档明确载明的功能基础上有量和质的变化，具体变化程度以及因某一项具体变化而在技术层面给被告的开发工作增加的难度、在开发成本层面给被告增加的工作量客观上难以准确界定，但至少反映了原告一直在对软件功能及需求进行调整、完善，其对软件的需求并未严格限定在合同及其附件约定范围内；而上述调整变化势必影响到开发周期和进度，且在开发过程中双方实际将合同约定的分期开发调整为一、二期同时进行，不应再按照合同约定的开发期限对被告实际完成的软件开发进度进行分析和评价。再次，从被告履行合同的程度来看，被告现有证据仅能证明其曾于2016年7月9日向第三方平台上传过其开发的软件，但尚不足以证明其上传的软件满足合同约定、达到验收标准、具备正常使用功能；现有证据显示在2016年7月9日之后被告继续根据原告的要求进行涉案软件的开发、完善，被告在其整理的“软件问题”中亦认可有部分问题未解决、部分功能技术上无法实现，因双方未形成最终的验收结果确认资料，本案中亦未能通过鉴定方式获得其开发的涉案软件与合同约定的相符性的信息，因此，现有证据不足以证明被告按照约定完成了涉案软件开发且达到约定的验收标准。最后，无论原告提出的“软件问题”是否超出合同约定的范围，被告对上述问题所作回应反映出客观上还有原告提出的数项软件需求基于不同原因未能实现，涉案软件已被下架，原告无继续履行的意愿，涉案合同已无继续履行的基础。综上，无论原因和责任为何，被告开发的软件客观上未能按约定时间通过验收，原告的合同目的已不能实现，根据《中华人民共和国合同法》第九十四条“有下列情形之一的，当事人可以解除合同：（四）当事人一方迟延履行债务或者有其他违约行为致使不能实现合同目的”规定，认定涉案合同予以解除。对被告要求继续履行合同的反诉请求不予支持。二、关于久弘公司应否返还陈耀华已付软件开发费用5万元、支付违约金的问题。如前所述，作为委托方即涉案软件需方的原告，对其委托开发涉案软件的功能和具体需求更为了解，其对软件需求未在签约时一步约定到位是造成软件开发过程中不断调整、变化软件功能的主要原因，涉案软件开发合同未能正常履行双方均有责任，不应归责于任何一方；基于软件开发过程中量和质的变化无法准确定性，致使被告因此实际增加的工作量难以考察；虽然无法准确认定被告为开发涉案软件所实际付出的全部工作量和成本，但根据被告并非分期开发软件，结合现有证据，能够认定被告投入了人力、物力等、实际完成的工作量超出了一期的开发工作范围，一审法院综合考虑被告实际履行合同的程度、合同未能正常履行的原因和责任以及原告所付费用数额，对原告要求返还已付开发费用5万元的诉请不予支持。原告以久弘公司没有按期开发完成全部软件构成违约为由要求支付违约金，因如前所述，涉案软件在开发过程中其功能在不断地调整和完善，现有证据未准确反映被告实际完成的软件与合同及其附件的约定的相符性，原告对于涉案合同未能正常履行亦有责任，结合本案实际情况，对原告主张的违约金不予支持。三、关于陈耀华应否向久弘公司支付剩余软件开发费用11万元及延期付款违约金19万元的问题。因涉案合同应予解除，现有证据不足以证明剩余软件开发费用的付款条件已成就，被告要求支付剩余软件开发费用及延期付款违约金的诉请事实依据不足，对其反诉请求不予支持。综上，依照《中华人民共和国合同法》第六十条、第九十四条、第九十七条、《中华人民共和国民事诉讼法》第六十四条第一款、《最高人民法院关于适用〈中华人民共和国民事诉讼法〉的解释》第九十条规定，一审法院判决如下：一、原告陈耀华与被告西安久弘软件信息技术有限责任公司所签涉案旅游资源整合软件手机APP合同予以解除；二、驳回原告陈耀华其余诉讼请求；三、驳回被告西安久弘软件信息技术有限责任公司反诉请求。案件受理费4822元（原告已预交），由原告陈耀华负担3375元，被告西安久弘软件信息技术有限责任公司负担1447元；反诉费2900元（被告已预交），由被告西安久弘软件信息技术有限责任公司负担。
本院二审期间，陈耀华向本院提交了以下证据：证据1、2016年3月31日QQ聊天记录，以期证明双方在合同履行过程中，是以陈耀华的需求及软件流程图作为涉案软件功能需求的依据。证据2、2016年5月12日QQ聊天记录及账单详情，以期证明久弘公司要求陈耀华购买短信服务，为此花费1200元。证据3、2016年6月28日QQ聊天记录、服务器服务合同及账单详情，以期限证明久弘公司要求陈耀华购买服务器，为此花费16680元。证据4、QQ短视频，以期证明久弘公司开发的涉案软件在起诉前最后一次测试中根本无法使用。久弘公司经质证认为，上述4组证据均不是新证据，不认可证明目的。本院经审查认为，陈耀华提交的上述证据不符合新证据的形式要件，本院依法不予采信。
经审查，一审法院查明事实清楚，本院予以确认。
本院认为，本案争议的焦点问题是：（一）导致涉案合同解除的过错在于谁；（二）久弘公司是否应向陈耀华返还5万元技术开发费并支付2万元违约金。
（一）导致涉案合同解除的过错在于谁。
经审查，陈耀华与久弘公司在涉案合同附件《旅行平台开发文档》中对涉案软件的功能需求仅作了概括性的约定，未明确具体的功能需求。合同履行过程中，双方通过微信聊天方式对陈耀华提出涉案软件具体的功能需求进行沟通。2017年1月4日久弘公司针对陈耀华提出的67个功能需求问题逐一作了回复，结论有“已处理”、“技术上不能实现”、“正在处理”等情形。2016年7月9日，久弘公司曾向第三方平台上传过其开发的涉案软件。2016年12月28日，陈耀华对涉案软件进行过测试，提出软件无法播放。2017年1月13日，久弘公司将其上传至服务器的涉案手机APP软件下架。本院认为，陈耀华提交的证据不足以证明其在签订合同时有具体、明确的功能需求，故应认定双方当事人对于合同约定不明均负有过错责任。因合同对涉案软件具体需求约定不明，陈耀华在合同履行过程中对涉案软件的功能提出了多项具体需求，久弘公司仅解决了其部分需求，未能在合同约定的履行期限内交付技术成果，造成涉案合同予以解除。故应认定双方当事人对于合同解除的后果均负有过错责任。
（二）久弘公司是否应向陈耀华返还5万元技术开发费并支付2万元违约金。
《中华人民共和国合同法》第九十七条规定，“合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施，并有权要求赔偿损失。”一审法院综合考虑双方对涉案合同的实际履行情况、久弘公司对涉案软件一期和二期进行了合并研发等事实，并结合双方各自的过错责任，对陈耀华要求久弘公司返还5万元技术开发费的诉请未予支持，处理结果基本适当。本案合同解除的原因并非因久弘公司单方违约造成的，故对于陈耀华要求久弘公司支付2万元违约金的请求本院不予支持。
综上，陈耀华的上诉请求不能成立，应予驳回；一审判决认定事实清楚，适用法律正确，应予维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项规定，判决如下：
驳回上诉，维持原判。
二审案件受理费1550元，由陈耀华负担。
本判决为终审判决。
审 判 长 常宝堂
代理审判员 罗亚维
代理审判员 卢建莉
二〇一八年六月二十五日
书 记 员 李调霞