【基本案情】
详见文末附图。
【案中说法】
本案案情并不复杂,甲乙双方签订软件开发合同,约定“若甲方的项目需求发生变更,变更后的需求同样经双方签字确认后,以需求变更补充文件的形式呈现,同样作为本合同执行不可分割的部分”,“项目所有功能上线试运行期满365天,通过甲方组织的合同验收后3个工作日内,甲方支付合同总额的5%”。
20220208,乙方广州公司向甲方惠州公司法人发送电子邮件,载明项目已开发完成,附件是项目验收单,确认后麻烦在验证单上签名盖章再传回来”。
20220616,甲方与案外人河源某公司签署《项目进度报告》,确认“小程序”的初步评审意见为“软件已基本满足我司功能需求。
再后,甲方向乙方发送某乙公司的变更需求情况,乙方分别回复“变更需求至少需要贵单位支付齐首期费用后安排”,“这些你要变更需求需要28000元。35个工作日”。
法院认定20220616甲方与案外人(乙方的关联方)出具的评审意见为同意项目验收。在此之后甲方提出的需求增加,法院认为甲方提出的需求非案涉合同项下的内容,是甲方提出的新要约,双方协商后未达成一致、未能变更合同,且甲方验收后超过合同约定的运行、组织验收时间,属不当阻却相关付款条件成就,应视为该付款条件成就。
【博主点评】对于软件开发合同履约中需求变更,除了合同约定、双方协商一致变更合同外,还需要考虑的因素包括:需求是否交易习惯、行业习惯、漏洞填补规则,以及为实现合同目的而必须具备的功能,同时要区分甲方合同目的和甲方合同动机。试举例如下:
交易习惯:甲乙双方间多次有软件开发合同,历史上都需要走初验、终检环节。本次合同载明的验收,甲方可以合理主张为也需要走初验、终验两次验收环节。
行业习惯:软件交付后通常都有BUG,该bug的通常应视为签署运行报告的前提。如无特殊说明,对甲方提出的bug清单,可以主张为对甲方验收申请的异议。
漏洞填补规则:关于金额、履行地等的填补,参见民法典第510条、第510条所规定。
合同目的、必备功能:一款库存管理软件,通常应具有登录模块,以鉴别用户身份。即使合同未约定该功能,也能推定乙方应开发该功能。
合同动机:甲方想通过库存管理软件,库存低于阈值时短信自动报警,从而加紧采购。关于短信报警功能,如果双方约定的是库存管理且不包含短信报警,则不能支持甲方以缺少短信功能无法实现库存管理的合同目的。