开发到一半,客户提出新增优惠券功能,为什么不能直接按“做一套优惠券功能”的总价收费?因为原项目已经完成的设计、代码和基础能力,可能仍可用于新需求。变更报价要回答的是:相对于原合同约定的交付范围,为完成这次变更,还需要额外投入多少工作。
这里的“增量”不只包括新增页面和功能开发,还包括变更造成的必要返工。比如原有模块能够复用,就不应把它重新计入开发费用;如果新规则要求修改既有流程、调整数据结构或接口,相关改造应纳入评估。新增功能的测试,以及受影响旧功能的回归测试,同样属于变更带来的工作量。费用边界取决于工作是否因这次变更而产生,而不是代码最终呈现在新功能里还是旧功能里。
因此,报价前需要先固定比较基准:原合同包含什么、目前已经完成什么、新要求具体改变什么。开发方可据此列出可复用部分、新增部分、需返工部分和测试范围,并说明各项工作量及计价方式。已在原合同中计价、且无需重做的工作,不应重复收费;原项目本来就需要完成的缺陷修复,也不应未经区分就装进变更报价。
增量工作量还影响工期,但费用与顺延天数不能简单画等号。独立任务可能并行推进,依赖现有模块的改动则可能迫使开发和测试重新排期。双方确认变更时,最好同时写明交付内容、验收条件、费用依据和调整后的交付时间。这样讨论的就不是“这个功能值多少钱”,而是“这次改变实际增加了哪些工作、由谁承担”。