“这个功能改一下应该很快吧”——软件开发纠纷里最贵的一句话。需求变更是软件合同的常态,法律不禁止变更,但变更之后费用、工期、验收标准怎么跟着走,没说清楚就是官司。本文做增量:需求基线与变更管理、变更的价款调整规则、验收与尾款的对应关系。
一、需求基线:一切计算的起点
- 《中华人民共和国民法典》第七百七十条承揽合同是承揽人按照定作人的要求完成工作,交付工作成果,定作人支付报酬的合同。承揽包括加工、定作、修理、复制、测试、检验等工作。
软件开发在性质上是承揽:按“定作人(客户)的要求”完成工作。要求是什么,就是需求规格说明书——它是合同的核心附件,也是价格与工期的计算基础。基线锁定后的一切改动都是变更,法律性质上属于合同变更:
- 《中华人民共和国民法典》第五百四十三条当事人协商一致,可以变更合同。
变更生效要件是协商一致——客户口头说“加个导出功能”而开发方未承诺的,不构成变更;开发方口头应承“行,小意思”而未谈价钱的,价款按什么算就成了争点。
二、变更后的价款与工期调整
- 有变更管理流程的:变更单写明内容、工期影响、费用影响,双方签字——按变更单执行,最干净;
- 口头变更+已实施的:变更事实(聊天记录、版本记录、邮件确认)可证明协商一致的,变更成立;价款无约定的按追加的合理成本确定,参照规则见合同没约定价格,怎么确定货款;
- 客户拒绝确认却要求继续的:开发方可以书面先行报价并声明“未经确认的变更费用由客户承担”,继续施工的风险自担与否看这条声明;
- 相反方向——需求不明导致返工:客户需求描述不清、验收标准模糊的,开发方按“符合合同目的”的合理理解开发后客户反悔的,返工费用按双方过错分担,见对方违约后我没及时止损,扩大的损失还能索赔吗。
三、验收与尾款的对应
验收标准应锚定当前有效版本的需求文档,不是“客户看到成品的即时感受”:
- 分阶段验收:原型确认→阶段演示→终验,每阶段书面确认并对应付款节点,防止全款压到终验后客户无限挑剔;
- 验收异议期:约定“交付后×日内提出书面异议,逾期视为验收合格”,参照验收单签了字,还能反悔说货物不合格吗的效力逻辑;
- 尾款与交付物清单绑定:源码、部署文档、数据库设计文档、账号移交全部列明,见技术开发合同的成果归谁?职务技术成果怎么算的专文处理;
- 质量瑕疵与需求变更要分清:客户以“这里不对”拒付尾款的,先判断是bug(质量瑕疵,按承揽质量责任处理,见对方违约了,我能要求什么?继续履行、赔偿、解除怎么选)还是新需求(走变更另计费)——这是尾款诉讼的主战场。
四、双方的操作清单
开发方
每轮需求讨论出纪要请客户确认;变更一律走变更单(微信确认也可);版本管理与提交记录留存——git提交历史是“谁改的、改了什么”的铁证。
客户方
需求文档审签后再启动开发;变更前要书面报价与工期影响评估;按节点付款并对阶段成果书面确认或书面异议。
争议冻结
对某项是否属于变更发生分歧的,先按原需求完成基线部分并结算,分歧项单独谈,防止整单停摆。
解除清算
项目烂尾解约的,按已完成工作量比例结算,规则见合同解除后已经付的钱怎么退。
五、两个反向提醒
- 开发方:低价接单+指望变更加钱的商业模式,遇上客户不确认变更就全盘落空——变更不确认就别施工;
- 客户:把“改需求”当成免费服务的,最后往往连基线部分的质量都拿不到——变更付费是行业惯例,不是开发商刁难。
技术类合同成果归属的另见技术开发合同的成果归谁?职务技术成果怎么算;网站建设交付范围的专文见技术开发合同的成果归谁?职务技术成果怎么算;智力服务标准的通用问题见买卖合同中没有约定质量标准,按什么标准履行。
六、一个高频问答
- 《中华人民共和国民法典》第七百七十一条承揽合同的内容一般包括承揽的标的、数量、质量、报酬,承揽方式,材料的提供,履行期限,验收标准和方法等条款。
七、软件项目烂尾的止损顺序
项目陷入烂尾时的止损有优先级。第一步,固定已完成成果:要求移交现有代码仓库、部署包与文档,哪怕不完整——先落袋,再谈判,防止对方以“代码是我写的”扣留全部工作成果。第二步,按里程碑结算:对照合同与需求文档核定已完成部分的合格工作量,按比例结算,争议项单列——烂尾项目的结算争的是比例,不是全有全无。第三步,评估续建成本:另找团队的接手报价是判断“继续投入还是彻底了断”的标尺,报价明显高于剩余合同款的,果断解除并追赔。第四步,知识产权即时确权:解除协议中写明已完成成果的知识产权归属与源码交付义务,防止结了钱还留尾巴。烂尾项目的最大错误是把精力全部投入“追责”,成果保不住、钱款结不清、项目还得重来——止损优先于追责,是项目管理也是法律策略。
以上内容为一般性法律知识分享,不构成正式法律意见;具体案件请结合证据情况咨询执业律师。