浙江省高级人民法院 民 事 判 决 书 （2019）浙民终238号 上诉人（原审原告、反诉被告）：杭州鱼入水企业管理有限公司，住所地浙江省杭州市江干区丁桥镇新城广场8F座814室。 法定代表人：陈起兵，执行董事兼总经理。 委托诉讼代理人：陈重磊，浙江浙杭律师事务所律师。 被上诉人（原审本诉被告、反诉原告）：北京云族佳科技有限公司，住所地北京市朝阳区太阳宫中路16号院1号楼冠捷大厦11层1102。 法定代表人：王鹏，董事长。 委托诉讼代理人：应俊，男，该公司工作人员。 上诉人杭州鱼入水企业管理有限公司（以下简称鱼入水公司）因与被上诉人北京云族佳科技有限公司（以下简称云族佳公司）计算机软件开发合同纠纷一案，不服浙江省杭州市中级人民法院（2018）浙01民初2614号民事判决，向本院提起上诉。本院于2019年3月14日立案后，依法组成合议庭公开开庭进行了审理。鱼入水公司的法定代表人陈起兵及委托诉讼代理人陈重磊、云族佳公司的委托诉讼代理人应俊到庭参加诉讼。本案现已审理终结。 鱼入水公司上诉请求：撤销一审判决，改判支持其全部诉讼请求，驳回云族佳公司的反诉请求，并由云族佳公司承担本案一、二审诉讼费用。事实和理由：1.一审法院将双方在软件开发过程中的正常沟通认定为功能需求的变更，进而认定涉案软件交付时间应当延期，属事实认定错误。涉案合同签订后，双方在共同组建的微信聊天群中对事先确定的功能需求所进行的沟通，系对合同附件之“需求说明”的确认和细化，并非对软件功能需求的变更。根据涉案合同附件一的约定，项目建设内容如有更改、删除或新增，需以书面文件方式确认，但双方并未签订过书面确认文件，说明项目建设内容并未发生变动。2.一审法院认定云族佳公司在2018年3月8日以电子邮件发送APP后即完成软件交付，属事实认定错误。云族佳公司交付的APP绝大部分功能无法使用，不符合合同约定的要求，应当认定云族佳公司并未按约完成项目开发。3.云族佳公司迟延交付APP超过15日，鱼入水公司依约有权单方解除合同，云族佳公司应支付违约金并退回鱼入水公司已支付的全部款项。 云族佳公司辩称：涉案项目执行期间，鱼入水公司在云族佳公司的一再催促下才于2018年11月20日将涉案项目最基础的信息、资料整理完毕后提供给云族佳公司，且鱼入水公司一直变更涉案软件功能需求，使得云族佳公司缺少确定的开发依据，只能根据鱼入水公司的陆续反馈边梳理边开发；云族佳公司已按约履行合同约定的相关义务，且对应阶段成果符合合同附件二“需求说明”的要求。鱼入水公司的上诉请求应予驳回。 鱼入水公司向一审法院提起诉讼，请求判令云族佳公司：1.向鱼入水公司返还65000元预付款；2.向鱼入水公司支付违约金6500元；3.承担本案诉讼费用。一审庭审中，鱼入水公司明确第1项诉讼请求为判令解除合同，要求云族佳公司返还65000元预付款。 云族佳公司提起反诉，请求判令鱼入水公司支付项目尾款65000元、违约金13000元，并承担本案诉讼费用。 一审法院认定事实：2017年11月12日，鱼入水公司与云族佳公司签订《鲨鱼1号APP项目合同》。合同约定：本合同由缔约双方在自愿、平等、公平、诚实信用及优势互补原则下，经友好协商，现双方就云族佳公司接受鱼入水公司委托开发本协议项目事宜达成以下约定内容。双方声明都已理解并认可了本合同的所有内容，同意承担各自应承担的权利和义务并忠实地履行本合同。第一条合作模式：1.1鱼入水公司负责本项目的获取，包括业务拓展及客户管理、项目管理等工作；1.2云族佳公司负责具体项目开发及实施，包括项目执行控制及质量管理等工作。鱼入水公司提供项目整体需求并负责客户沟通，其中项目需求文档须经双方认可。云族佳公司负责按照需求中的要求进行设计、制作、编码、测试等工作。……1.4项目建设工作进度与安排、价款、交付和验收方式详见《附件一》。1.5项目详细需求见《附件二》。第二条双方的义务与权利：2.1鱼入水公司有权根据项目要求，审核云族佳公司提出的实施计划、实施技术方案；并向云族佳公司提出修改意见，云族佳公司应及时回应修改意见，并按照鱼入水公司意见及时整改。……2.3鱼入水公司应按照本合同约定为云族佳公司提供本项目所需的信息、资源，包括但不限于技术数据、文档、文件、测试数据、示例输出及其他信息和资源。2.4鱼入水公司应按本合同约定时间向云族佳公司支付软件开发、服务相关费用。……2.6云族佳公司有权要求鱼入水公司对其已完成的工作内容或文档，包括但不限于系统需求确认文档、系统（或架构）设计文档等服务内容进行书面验收确认。2.7云族佳公司有权要求鱼入水公司按照合同约定时间支付项目费用。2.8云族佳公司保证在所开发的软件中不设置逻辑锁或其他类似限制性代码等限制鱼入水公司使用的技术壁垒。2.9任何一方要求对合同内容进行变更时，所有的变更要求都必须经鱼入水公司、云族佳公司协商一致后以书面形式进行确认。2.10开发过程中由鱼入水公司提出需求导致开发周期延长，则云族佳公司相应的项目交付时间也一并顺延。2.11开发过程中由鱼入水公司提出需求变更，所有变更项目在经双方确认的基础上，重新核算开发工作量，并计费。原有已开发功能，若因鱼入水公司变更需求导致作废的，鱼入水公司应当对已开发功能支付费用。……第七条违约责任：7.1鱼入水公司有责任按期支付云族佳公司费用，如因鱼入水公司自身原因，未能按时支付，则每延期一天，鱼入水公司将额外支付云族佳公司总费用的3‰作为补偿。逾期支付超过15日的，云族佳公司有权单方免责解除本协议，并要求鱼入水公司支付合同总额的10%违约金作为赔偿。7.2若云族佳公司自身原因，没有按合同日期交付鱼入水公司项目开发所包含相关资源，每延期一天，鱼入水公司将扣除云族佳公司全款的3‰违约金，上限为全款的10%。若云族佳公司逾期交付超过15日，鱼入水公司有权单方免责解除本协议，并要求云族佳公司赔偿合同总金额的10%，并且退回全部项目已收款项。……附件一约定：1.项目建设项目内容：具体参见附件二；附件二仅限于对本项目建设项目的内容（具体功能）做出约定，如涉及其他内容或云族佳公司的其他产品及服务，双方应另行约定。如在开发过程中，项目建设内容有更改、删除、新增，双方将按变动的情况协商变动部分的价格，并以书面文件的方式确认。2.合同金额、付款类型、付款方式：经双方确定，合同金额130000元，大写拾叁万元人民币。工期为收到首笔款项后60个工作日完成约定内容开发，详情见附件二。关于预付款：合同签订后3个工作日内，鱼入水公司向云族佳公司支付的合同款总金额的50%，即65000元。关于第二笔款项，项目进展至项目开发完成，鱼入水公司向云族佳公司支付合同款总金额的40%，即52000元，作为项目二阶段费用。关于第三笔款项，项目进展至项目上线运营壹个月后，鱼入水公司向云族佳公司支付合同款总金额的10%，即13000元，作为项目三阶段费用。……附件二为“需求说明”，列明了产品设计、交互设计、视觉设计板块内容，列明了apppc端、总后台管理系统web、企业用户后台的模块、功能和说明。 2017年11月14日，云族佳公司工作人员组建网络聊天群，开始与鱼入水公司工作人员沟通项目细节。同月17日，鱼入水公司支付云族佳公司预付款65000元。同月21日，云族佳公司确认鱼入水公司提供了制作案涉计算机软件所需的资料。12月2日，鱼入水公司向云族佳公司发送“鲨鱼1号体验后初步意见”文档。12月7日，云族佳公司与鱼入水公司开展客户见面会，对于项目内容进行确认，并就细节协商修改，双方形成《鲨鱼1号APP项目需求书》确认版文档。2018年1月3日，云族佳公司向鱼入水公司表示，其提出了新功能，需要重新评估工作量及工期。鱼入水公司表示功能肯定要的，工期可以适当延后几天，未得到云族佳公司同意。 2017年12月4日，云族佳公司向鱼入水公司发送“鲨鱼1号APP后台用域名备案的准备”邮件。同月11日，云族佳公司向鱼入水公司发送“鲨鱼1号项目UE原型稿确认邮件”邮件。2018年3月8日，云族佳公司向鱼入水公司发送“安卓版测试APK”邮件，附件有“安卓内测版.zip”。3月10日，云族佳公司向鱼入水公司发送“回复：鲨鱼1号项目安卓版本测试APK”邮件。附件有“2018-03-1022.34.18小斌郑Zoom会议723562878.zip”“bug反馈180310.xlsx”“2018-03-1021.06.57小斌郑Zoom会议669357516.zip”“2018-03-1021.50.46小斌郑Zoom会议109666756.zip”。同日，云族佳公司以视频会议形式为鱼入水公司提供案涉软件的内部测试指导。3月16日，云族佳公司以微信形式向鱼入水公司表示案涉计算机软件已上架。3月22日，云族佳公司向鱼入水公司发送邮件，表示其已经完成合同中约定的功能，并成功上架360安卓市场及appstore，要求鱼入水公司支付第2笔款项52000元。4月17日，云族佳公司向鱼入水公司发送催款函，要求鱼入水公司支付65000元。4月22日，鱼入水公司向云族佳公司发送违约责任明确告知函，要求云族佳公司退还已支付的65000元，并赔偿合同价款10%的违约金。 一审法院认为，根据当事人的诉辩主张，本案争议焦点为：一、双方是否有违约行为；二、鱼入水公司是否有权解除合同；三、双方应当如何承担违约责任 争议焦点一，关于双方是否违约。本案中双方均主张对方存在违约行为。关于鱼入水公司是否违约。该院认为，合同附件一约定项目工期为收到首笔款项后60个工作日。鱼入水公司支付合同款项分为三个阶段，预付款65000元于合同签订后3个工作日内支付，第二笔款项52000元于项目开发完成时支付，第三笔款项于项目上线运营一个月后支付。因此，鱼入水公司是否逾期支付款项，需要根据云族佳公司项目开发是否完成以及完成的日期，项目是否达成上线运营一个月的条件来判断。根据查明的事实，鱼入水公司于2017年11月17日支付首笔款项，则项目工期截至2018年2月12日。后双方于2017年12月7日形成《鲨鱼1号APP项目需求书》确认版文档，对项目内容进行了变更。根据合同约定，开发过程中需求变更导致开发周期延长，则项目交付时间也一并顺延。因此案涉项目的新工期自2017年12月7日的次日起计算60个工作日至2018年3月1日止。云族佳公司于2018年3月8日以邮件形式向鱼入水公司发送案涉软件，对此鱼入水公司未提供证据证明交付的软件不符合合同的约定，因此虽然云族佳公司迟延履行交付义务，但按合同约定，鱼入水公司应于2018年3月8日支付第二笔款项52000元，鱼入水公司迟延履行付款义务，应当承担相应的违约责任。关于云族佳公司是否违约，如前所述，云族佳公司存在迟延履行交付义务的违约情形，亦应当承担相应的违约责任。 争议焦点二，关于鱼入水公司是否有权解除合同。案涉合同系双方当事人真实意思表示，不违反法律、行政法规强制性规定，合法有效。在合同的履行期限内，双方均应依约全面、适当地履行各自的合同义务。鱼入水公司主张根据合同7.2条款，若云族佳公司逾期交付超过15日，则其有权单方免责解除本协议，并要求云族佳公司承担相应责任。该院认为，根据所查明的事实，案涉项目的工期为2017年12月8日至2018年3月1日，云族佳公司于2018年3月8日向鱼入水公司交付案涉软件，故并未出现云族佳公司逾期交付超过15日的情形。因此，鱼入水公司不满足行使合同约定解除权的条件。 争议焦点三，关于双方应当如何承担违约责任。如前所述，鱼入水公司已向云族佳公司支付款项65000元，云族佳公司已达到项目开发完成阶段，但均仅部分履行合同。现云族佳公司已达到项目开发完成阶段，案涉合同的性质也决定了其付出的成本全部凝结在已完成的开发项目中，因此鱼入水公司应当按照合同附件一中项目进度的付款约定支付对应的款项52000元。且根据合同约定，鱼入水公司逾期支付超过15日的，云族佳公司有权要求其支付合同总额10%的违约金，该院认为综合全案情况，该违约金过高，该院酌情以鱼入水公司逾期未支付款项52000元的10%计算违约金，即5200元。因案涉合同中双方并未对“项目运营一个月”约定标准，云族佳公司作为项目开发方，并未举证证明已完成项目上线运营一个月的情形，因此对该部分诉请不予支持。云族佳公司迟延履行交付义务，按照合同约定，承担每延期一天为合同总额3‰的违约金，上限为合同总金额10%。云族佳公司迟延交付7日，应当赔偿违约金2730元。 综上所述，一审法院依据《中华人民共和国合同法》第八条、第六十条、第一百零七条、第一百零九条、第一百一十四条的规定，于2018年12月29日判决：一、鱼入水公司于判决生效之日起十日内支付云族佳公司款项52000元；二、鱼入水公司于判决生效之日起十日内赔偿云族佳公司违约金5200元；三、云族佳公司于判决生效之日起十日内赔偿鱼入水公司违约金2730元；四、驳回鱼入水公司的其他诉讼请求；五、驳回云族佳公司的其他反诉请求。如果未按判决指定的期限履行金钱给付义务的，应当依照《中华人民共和国民事诉讼法》第二百五十三条的规定，加倍支付迟延履行期间的债务利息。本诉案件受理费1588元，由鱼入水公司负担1527元，云族佳公司负担61元；反诉案件受理费875元，由云族佳公司负担233元，鱼入水公司负担642元。 二审中，鱼入水公司向本院提交了以下证据：1.《鲨鱼1号APP（需求确认）》；2.《鲨鱼1号初步体验意见》，拟证明双方微信沟通内容为功能需求的确认、细化及在需求范围内的正常修改，而非需求的变更，云族佳公司逾期交付软件超15日，且无顺延交付的合理理由；3.两部苹果手机及两部安卓系统手机下载、安装云族佳公司提供的鲨鱼1号系统的实际运行情况录屏视频，拟证明云族佳公司并未按合同约定交付软件，软件功能不符合要求；4.中华人民共和国国家标准《信息技术软件生存周期过程》，拟证明正常软件开发有验收流程，云族佳公司未与鱼入水公司进行验收和功能确认，结合证据2证明云族佳公司并未按合同约定交付软件。云族佳公司质证认为，对证据1、2的三性予以认可，但不能证明待证事实，对证据3、4的真实性、合法性和关联性有异议，亦不能证明待证事实。 云族佳公司向本院提交了以下证据：1.关于2017年12月7日双方确认的需求与原始合同中的需求的比较说明，拟证明涉案软件功能需求有增加或变更；2.《鲨鱼1号APP》内测视频会议视频，拟证明鱼入水公司于2018年3月10日在云族佳公司的指导下对涉案软件进行了完整的功能测试，软件已达到鱼入水公司的基本要求；3.安卓内测版鲨鱼1号管理系统使用手册和邮件往来记录，拟证明云族佳公司已完成涉案软件开发成果的提交；4.syyh0909.com域名备案查询结果，拟证明云族佳公司已完成涉案软件的上线部署；5.《计算机软件开发规范GB8566—88》，拟证明云族佳公司已按照开发规范完成了涉案软件的需求设计。鱼入水公司质证认为，证据1不能证明涉案软件功能需求有增加或变更，反而能证明系对合同附件二功能需求的理解和确认；证据2所载内容真实，但不能完整反映当时内测会议情况；对证据3的真实性予以认可，但该软件只是内测版，与最后交付的版本不是一个概念，邮件往来不能证明软件符合要求；对证据4、5的真实性予以认可，但对证明目的不认可，涉案项目开发时双方并未约定要适用该国家规范。 本院经审查认为：（一）关于鱼入水公司提交的证据1、2，经比对，该证据所涉及的需求与双方当事人签订合同时的需求有较大差异，因此不能证明涉案合同的需求未发生变更，该两份证据不能达到其证明目的，不予认定。证据3由鱼入水公司单方提供，云族佳公司不予认可，且二审当庭运行了鱼入水公司认可的云族佳公司提供的手机上的涉案软件，因此该证据的真实性无法确认，不能达到其待证目的，不予认定。证据4具有真实性、合法性，但因双方并未约定要适用该国家规范，与本案无关联性，故不予认定。（二）云族佳公司提交的证据1仅系对2017年12月7日双方确认的需求与原始合同中的需求所存在的差异事后所作的书面说明，不属于证据范畴，故不予认定。证据2、3具有真实性、合法性和关联性，该两份证据能证明鱼入水公司对云族佳公司交付的涉案软件基本满意，本院予以认定。鱼入水公司对证据4的真实性没有异议，本院内予以确认。证据5具有真实性、合法性，但双方未约定适用该国家规范，与本案无关联性，故不予认定。 根据鱼入水公司的上诉请求和理由，以及云族佳公司的答辩意见，本案二审争议焦点主要为：鱼入水公司是否有权单方解除涉案合同，以及如无权解除合同，鱼入水公司应否支付第二笔合同款项。 首先，根据涉案合同及其附件约定，开发过程中由鱼入水公司提出需求导致开发周期延长，则云族佳公司相应的项目交付时间也一并顺延；工期为收到首笔款项后60个工作日完成约定内容开发。根据合同附件二需求说明、云族佳公司一审提交的2017年12月7日《鲨鱼1号APP项目需求书》确认版文档、鲨鱼1号沟通群微信聊天记录以及双方当事人在一、二审庭审所作陈述等在案证据，因签定合同时附件二仅对项目需求约定了大的模块，对模块的具体要求未予明确，后双方通过微信等方式多次沟通，直到2017年12月7日通过客户见面会形式对具体项目需求进行了确认，形成了双方认可的《鲨鱼1号APP项目需求书》确认版。该需求书确认版增加了特价款奖励、滞销率、客户流失率、库存准确率、加减分申请、年终奖励、增加成就奖励等原始合同附件二所载项目需求中所没有的功能需求。因鱼入水公司提出了项目需求变更，依照合同约定涉案项目的新工期自2017年12月7日起至2018年3月1日止。 其次，根据现有证据，云族佳公司于2018年3月8日以电子邮件方式向鱼入水公司发送了涉案软件内测版，并于3月10日以视频会议方式为鱼入水公司提供了软件的内测指导。根据当时的内测会议视频显示，鱼入水公司的法定代表人陈起兵对涉案软件总体满意。二审庭审中，鱼入水公司自认云族佳公司提交的软件已实现了百分之六七十的功能节点。同时，根据云族佳公司提交的专门为鱼入水公司制作的涉案软件管理系统使用手册、域名备案查询结果等证据，并结合上述内测视频记录，可以证明云族佳公司已交付了相关软件的开发成果，并已成功上线。虽然鱼入水公司主张软件尚未能实际运行，但根据二审庭审的现场测试，很多功能需要鱼入水公司导入相应的基础数据，并组织技术人员进行测试磨合才能真正顺畅运行。双方在软件交付后未能充分配合进行后续的测试和系统修改磨合，但并不足以成为否定云族佳公司完成涉案合同开发成果的合理理由。综上，在案证据可以证实云族佳公司完成了涉案项目开发。 再次，云族佳公司向鱼入水公司交付涉案软件的时间为2018年3月8日，而项目新工期截止日为同年3月1日，故云族佳公司构成迟延交付，但并未逾期超过涉案合同约定的15日，故鱼入水公司单方解除合同的条件并未成就。本案亦不符合合同法定解除的情形。故鱼入水公司要求解除合同以及云族佳公司返还第一笔65000元款项的上诉请求不能成立。云族佳公司完成了涉案项目开发，鱼入水公司应按约支付第二笔项目款52000元。至于双方存在违约行为所应承担的违约金，一审法院所作判决并无不当。 综上，鱼入水公司的上诉请求不能成立，应予驳回；一审判决认定事实清楚，适用法律正确，应予维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项之规定，判决如下： 驳回上诉，维持原判。 二审案件受理费2819元，由杭州鱼入水企业管理有限公司负担。 本判决为终审判决。 （此页无正文） 审判长  刘建中 审判员  李 臻 审判员  陈 宇 二〇一九年六月十二日 书记员  刘雨潇