江苏省高级人民法院
民 事 判 决 书
(2018)苏民终574号
上诉人（原审被告，反诉原告）：南京海跃尚信息科技有限公司,住所地江苏省南京市高新区星火路9号软件大厦B座3层413A室。
法定代表人：袁成，该公司总经理。
委托诉讼代理人：陈露，女，汉族，1991年11月3日生，住江苏省南京市六合区。
委托诉讼代理人：李跃民，北京大成（南京）律师事务所律师。
被上诉人（原审原告，反诉被告)：陈厦，男，汉族，1990年1月19日生，户籍所在地江苏省南京市秦淮区，现住广东省广州市。
委托诉讼代理人：章浩，江苏德本律师事务所律师。
上诉人南京海跃尚信息科技有限公司（以下简称海跃尚公司）因与被上诉人陈厦计算机软件开发合同纠纷一案，不服江苏省南京市中级人民法院(2017)苏01民初1682号民事判决，向本院提起上诉。本院于2018年3月27日受理后，依法组成合议庭审理了本案。本案现已审理终结。
陈厦一审诉称：2016年10月11日，陈厦委托海跃尚公司开发视频社交平台软件并与其签订《技术合同书》。陈厦按合同约定交付了款项，海跃尚公司应于2017年1月10日交付软件并按照陈厦要求将软件安装到指定网络存储空间。2017年3月2日，涉案软件经陈厦确认未开发成功，致使陈厦不能实现合同目的，故其向法院提出诉讼请求：1.解除技术合同，海跃尚公司返还定金6万元和预付款24000元；2.海跃尚公司承担违约损失31200元；3.本案的诉讼费由海跃尚公司承担。
海跃尚公司一审针对本诉的答辩意见同其反诉事实和理由。
海跃尚公司一审提出反诉请求，称陈厦在软件开发过程中将原先定稿的UI图全部推翻，重新制定新的UI图，造成项目周期延长，工作量增加，导致成本直线上升。合同中陈厦的功能需求海跃尚公司已全部开发完毕。陈厦在项目收尾过程中不知去向，且未经海跃尚公司允许关闭服务器、关闭支付宝、微信和Appstore账号，导致项目无法正常上线，故请求法院判令：1.继续履行合同，陈厦支付合同剩余款36000元；2.陈厦赔偿海跃尚公司经济损失10万元；3.陈厦赔偿精神损失5万元。诉讼中，海跃尚公司明确表示放弃第三项诉讼请求。
针对反诉，陈厦一审辩称：1.海跃尚公司开发的软件有些功能无法上线，因此在双方沟通后对UI图进行修改，并非陈厦将UI图全部推翻重来。2.合同约定了最后验收时间，如果不能验收陈厦可追究海跃尚公司的违约责任。3.陈厦不是专业人士，海跃尚公司不能以源代码来证明其完成合同开发，而应以软件能够上线和经营的方式来验收，因此不认可海跃尚公司项目已开发完成的说法。
一审法院查明：
2016年10月11日，甲方陈厦与乙方海跃尚公司签订《技术合同（委托开发）》。相关合同条款为：一、项目名称：视频社交平台。二、项目标的技术和内容、范围、形式和要求。甲方委托乙方研究开发视频社交平台开发软件。开发计划描述：合同签订后，乙方安排专人向甲方收集系统的相关研发资料包括系统的功能，风格，板块，布局，性能等。合同生效后，甲方支付乙方项目定金后，乙方正式进入研发工作，并于2017年1月1日前，完成产品的内部测试版交给甲方验收。开发进度安排：乙方将根据项目需求及设计等制定详细开发进度安排并提交至甲方验收，经过甲乙双方共同以电子或书面文件确认后，将作为本合同附件，具有与本合同相同的法律效力。验收标准：以经过甲乙双方共同以电子或书面文件确认后的详细设计文档为验收标准，该文档作为本合同的附件，具有与本合同相同的法律效力，超过该文档的额外需求，乙方有权不予以开发，如甲方有进一步需求，需经过双方另行商议。三、价款、报酬及其支付方式。1.开发经费和报酬总额为120000元。2.付款方式：甲方同意本合同生效后以汇款/转账方式支付乙方定金，为项目总金额的50%即60000元，乙方在确认收到甲方定金后开始进行项目界面设计、文档编写及研发工作。乙方承诺在11月1日或之前完成UI高保真图的设计，甲方需在3日内组织对UI进行确认并定稿，确认通过并经由甲方书面确认后支付乙方项目总金额的20%即24000元。乙方在收到UI高保真设计图定稿后，进行软件研发。乙方承诺在2017年1月1日或之前完成内部测试版研发，甲方需在7日内组织对项目进行验收，验收通过并经由甲方书面确认后支付乙方项目总金额的20%即24000元，乙方确认收款后将系统源代码交付至甲方指定的网络媒体存储空间。乙方将在系统交付后提供为期三个月的系统维护服务。在项目交付后三个月后，甲方须支付乙方全部尾款项目总金额的10%即12000元。6.验收：乙方将软件调试好后，甲方在两周内组织验收。如乙方软件未通过验收，乙方应在十个工作日内调试，改正软件系统，甲方应在乙方再次提请验收后七个工作日内组织验收，否则视为违约。8.甲方需要改动或委托乙方进行后期开发的，应同乙方另订协议作为合同附件，并另收开发费用。五、风险责任的承担。乙方承诺甲方在2017年1月1日前完成项目的开发，若项目交付时间延迟，则乙方向甲方赔偿违约金，每延迟一天乙方向甲方赔偿项目违约金为总金额的0.1%。七、各方当事人的义务或协作事项及承担的责任。5.乙方负责在规定的时间内完成项目的开发，在开发期间因甲方对UI定稿时间的拖延所造成的原因，甲乙双方进行协商酌情延长交付时间。十一、其他。7.本合同期限为自2016年10月11日至2018的10月11日止，共计2年。
陈厦于2016年10月11日、12日分别给付海跃尚公司10000元、50000元，又于10月21日给付24000元。
2017年3月2日，双方签字确认《2017年3月2日Doin项目进展情况》，内容为：功能描述56项，其中9项已完成，26项未完成，20项待修改，1项待确认。未完成项和待修改项均有相应的问题描述。在当日的沟通过程中，海跃尚公司法定代表人袁成明确表示四天完成。
庭审中，陈厦表示其主张的违约损失31200元由定金24000元和迟延履行违约金7200元组成。因合同约定定金6万元过高，在本案中仅按合同总金额20%即24000元主张海跃尚公司双倍返还定金。按合同总价款的0.1%主张自2017年1月10日至3月4日的迟延履行违约金7200元。庭审后，陈厦书面表示变更诉讼请求第二项为海跃尚公司承担违约金（根据定金计算）24000元。
一审法院认为：
涉案合同系双方当事人真实意思表示，且不违反法律和行政法规的强制性规定，属有效合同，双方当事人均应履行合同义务。
一、双方违约与否的判断
陈厦已履行了给付定金60000元以及24000元合同款的义务，海跃尚公司应依照合同约定于2017年1月1日或之前完成内部测试版研发，交给陈厦验收。
本案审理过程中，双方当事人均未能提交项目需求及合同所约定经双方确认作为验收标准的详细设计文档，但《2017年3月2日Doin项目进展情况》经双方当事人签字，应据此认定软件开发完成情况。该表显示，56项功能描述中，已完成9项，未完成26项，待修改20项，待确认1项。从功能描述和问题描述可以看出，已完成的部分仅占全部功能的16%。存在的问题中，导致系统不能运行的问题有1个，首页评论@用户：点击崩溃；导致功能不能实现的问题有2个，相机拍照：返回相机卡死，以及本地视频+图片：没有视频；功能不完善问题有20个；不影响功能的美观或者性能优化问题有24个。前三类问题合计27个，占全部功能的48%。综上，软件基本功能具备，可以登录，评论，搜索，点赞，提现，录制发布视频照片，但不完善，即不能满足陈厦要求，程序运行过程中会出现故障，因此该软件不符合合同要求。
2017年3月2日，海跃尚公司口头承诺于四日内完成软件的修改，现海跃尚公司未能提交证据证明其于四日内完成软件修改并提交陈厦验收，应认定其行为构成违约。
海跃尚公司主张陈厦在软件开发过程中将原先定稿的UI图全部推翻，重新制定新的UI图，以及陈厦增加软件功能要求，均未能提交有效证据加以证明，故法院均不予采信。陈厦是否关闭视频服务器，关闭支付宝、微信和Appstore账号，涉及是否具备软件最终交付上线的环境问题，因根据合同约定，软件内部测试版经过陈厦验收并书面确认后方上线交付，所以不能成为海跃尚公司未能于2017年3月2日之后提交修改后的软件以供验收的有效抗辩。综上，根据本案现有证据，不足以认定陈厦存在违约行为。
二、责任的承担
海跃尚公司迟延履行合同义务，且开发的软件不合合同要求，其违约行为致使陈厦合同目的不能实现，陈厦要求解除合同，应予准许。
合同解除后，尚未履行的，终止履行，海跃尚公司要求继续履行合同，请求法院判令陈厦给付合同尾款，不予支持。对于已经履行部分，根据履行情况和合同性质，合同当事人可以要求恢复原状、采取其他补救措施，并有权要求赔偿损失，陈厦要求海跃尚公司返还已给付的84000元并赔偿损失，应予支持。针对违约赔偿责任，合同既约定了定金，又约定了违约金，因两者不可同时适用，陈厦选择本案适用定金条款，应予准许，海跃尚公司应双倍返还定金24000元。
如前所述，合同因海跃尚公司根本违约而解除，且现有证据不足以证明陈厦有违约行为，故海跃尚公司要求陈厦赔偿其损失，无事实依据，不予支持。
综上，陈厦的本诉诉讼请求和理由部分成立，一审法院对该部分诉请依法予以支持。海跃尚公司的反诉请求无事实和法律依据，依法应予驳回。依照《中华人民共和国合同法》第九十四条第（四）项、第一百一十五条、第一百一十六条、第三百三十四条，《中华人民共和国民事诉讼法》第一百四十二条规定，一审法院判决：一、解除陈厦与南京海跃尚信息科技有限公司签订的《技术合同（委托开发）》；二、南京海跃尚信息科技有限公司于判决生效之日起七日内一次性给付陈厦108000元；三、驳回陈厦的其他诉讼请求；四、驳回南京海跃尚信息科技有限公司的反诉请求。如果未按判决指定的期间履行给付金钱义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条之规定，加倍支付迟延履行期间的债务利息。本案一审案件受理费2604元、反诉案件受理费1510元，合计4114元，由南京海跃尚信息科技有限公司负担。
海跃尚公司不服一审判决，向本院提起上诉，请求撤销原判，依法改判驳回陈厦的诉讼请求。理由为:1、陈厦在UI设计图定稿以后，仍在频繁地更改需求、调整功能及框架，造成了海跃尚公司的迟延履行。海跃尚公司与陈厦在2016年11月1日前确认UI设计图后，海跃尚公司即进入开发阶段，但陈厦却对已经定稿的UI设计图提出新的需求，并对功能和框架进行调整，从而造成海跃尚公司研发及交付软件的迟延，因此陈厦存在违约行为，一审法院认定海跃尚公司迟延履行构成违约错误。2、在双方当事人没有明确约定的情况下，关于软件的验收标准，应当根据软件是否实现基本功能认定开发软件是否合格。陈厦认为海跃尚公司开发的软件不符合其要求，但并未提供相关证据证明其对软件的开发要求或需求，因此海跃尚公司是依据陈厦确认的UI设计图的基本功能进行的开发，应当根据海跃尚公司开发的软件是否能实现基本功能来认定开发软件是否合格，而不应当依据《2017年3月2日Doin项目进展情况》来认定软件是否合格。3、海跃尚公司已经完成了涉案合同约定的软件开发任务，涉案软件基本功能均能实现，已经完成了合同义务。海跃尚公司向一审法院提交的开发软件源代码，足以证明涉案软件已经开发完成，其完成了合同义务，之所以未交付软件，是由于陈厦拒绝验收而导致的。
陈厦二审答辩称：陈厦并未频繁更改UI定稿设计图，而是海跃尚公司的工作人员频繁离职以及擅自更改定稿内容所致，海跃尚公司在双方当事人约定的交付时间并未交付，迟延履行其合同义务，且涉案软件一直未能上线运营，一审判决认定事实清楚，适用法律正确，请求驳回上诉，维持原判。
本案二审争议焦点为：海跃尚公司是否存在违约行为，是否应当承担违约责任。
海跃尚公司二审中提供了以下新证据：
证据1：申请海跃尚公司从事软件开发的陈柳弟到庭作证，陈柳弟当庭陈述第一版UI设计图完成后，陈厦表示没有问题，海跃尚公司才开始研发工作，但陈厦又提出需要修改，海跃尚公司只能重新修改和细化，用以证明陈厦在UI设计图定稿后，频繁地更改及增加开发需求。
陈厦对该证据的质证意见为：因陈柳弟为海跃尚公司的工作人员，故不能完全认可该证言的真实性，涉案项目前后共有三位项目负责人，陈厦不是专业人士只能被动地由海跃尚公司更改或者细化软件需求，但是在软件的测试过程中发现了很多问题，同时海跃尚公司亦未在最终交付时间完成涉案软件。
陈厦二审中提供以下新证据：
证据1：陈厦与海跃尚公司的微信聊天记录，用于证明海跃尚公司在UI设计图定稿后仍提出字体字号等具体的细化修改工作并与陈厦沟通，并非如海跃尚公司所述，是由陈厦单方提出调整与细化。
海跃尚公司对该证据的质证意见为：对于该证据的真实性不予认可，同时该份证据无法达到陈厦的证明目的，根据聊天内容，只能看到双方当事人对于UI设计图的细节需要好好商议细化，并不能看出是由海跃尚公司提出的字体等细化工作。
本院对上述证据的认证意见为：对于海跃尚公司提供的证人证言的真实性、关某与证明力大小，本院将在判决理由部分予以详述。陈厦二审提供的微信聊天记录为复印件，海跃尚公司对其真实性提出异议，在陈厦未进一步提供补充证据的情况下，本院对该证据的形式真实性不予认可。
本院另查明：
陈柳弟出庭作证称：涉案UI设计图有几版，每版有不同的项目负责人。第一版做好后，陈厦说没有问题，公司就按照第一版研发，但是陈厦说不好看，没有达到要求，又提出了修改意见，公司又根据新版UI重新调整并细化功能，进行页面修改。……第一版存在很多问题……。第二版因为机型不同可能存在系统无法运行的情况。
本院认为：海跃尚公司存在违约行为，应当承担违约责任。
首先，涉案合同约定，海跃尚公司承诺在2016年11月1日或之前完成UI高保真图的设计，陈厦需在3日内组织对UI进行确认并定稿。双方当事人均认可UI设计图已经完成，海跃尚公司主张陈厦在UI设计图定稿以后，频繁更改需求、调整功能及框架，造成其迟延履行，为此其申请陈柳弟出庭作证，但陈柳弟仅口头陈述陈厦多次修改，海跃尚公司并未提供证据证明陈厦最初定稿的UI设计图、陈厦提出的具体修改要求以及对涉案软件研发的影响，故在海跃尚公司未提供其他证据的情况下，本院对陈柳弟的证言不予认可，海跃尚公司关于因陈厦提出修改调整导致其迟延履行的主张，本院不予支持。
其次，涉案合同约定软件的验收标准系经过双方当事人共同以电子或书面文件确认后的详细设计文档。本案中，双方当事人均未能确认相关验收标准。但《2017年3月2日Doin项目进展情况》显示，56项功能描述中，已完成9项，未完成26项，待修改20项，待确认1项。从功能描述和问题描述可以看出，已完成的部分占全部功能的16%，未完成的占46%，待修改的占36%。在存在的问题中，“首页评论@用户：点击崩溃”的问题属于导致系统不能运行的问题；“相机拍照：自动进入下一步，侧滑返回，相机卡死”及“本地视频+图片：没有视频”的问题属于导致功能不能实现的问题；功能不完善问题有20个；不影响功能的美观或者性能优化的问题有24个。由于《2017年3月2日Doin项目进展情况》记载的导致系统不能运行、功能不能实现及功能不完善的问题共计27个，占全部功能的48%，且海跃尚公司未能提供证据证明《2017年3月2日Doin项目进展情况》属于陈厦提出的新增功能要求，故海跃尚公司关于其开发的软件能够实现基本功能，软件合格的主张并无事实与法律依据，本院不予支持。
我国《合同法》第九十四条第（三）项规定，当事人一方迟延履行主要债务，经催告后在合理期限内仍未履行，当事人可以解除合同。涉案软件系统的绝大部分功能未能开发完成，系统不能正常运行。2017年3月2日，海跃尚公司口头承诺于四日内完成软件修改，但海跃尚公司未能提交证据证明其于四日内完成软件修改并提交验收，故陈厦依据上述合同约定请求法院判令解除合同，并要求海跃尚公司承担违约责任并无不当，本院予以支持。
综上所述，海跃尚公司的上诉理由无事实与法律依据，对其上诉请求本院不予支持。一审判决认定事实清楚，适用法律正确，应予维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第(一)项之规定，判决如下：
驳回上诉，维持原判。
二审案件受理费人民币2460元，由海跃尚公司负担。
本判决为终审判决。
审判长 汤茂仁
审判员 刘 莉
审判员 何永宏
二〇一八年五月二十九日
书记员 黄晶焱