一、先说结论:接手费不能按原合同乘一个比例
“接手一般加收 20% 还是 30%?”这个问题看似方便,实际很容易误导决策。
同样是一个报价 30 万元的系统,可能出现完全不同的情况:
- A 项目有完整 Git 仓库、部署脚本、测试环境、数据库字典和企业自有账号,新团队用几天即可复现;
- B 项目只有服务器上的一份代码,没有提交历史,构建依赖已经失效,还要边运行边猜业务;
- C 项目代码尚可,但域名、短信、支付、云服务器和应用商店账号都在原供应商名下;
- D 项目功能基本完成,历史数据却没有清洗和校验,切换时不能停业务。
原合同金额相同,不代表可接手程度相同。接手报价至少应拆成:
接手总成本 = 资产盘点与技术审计 + 必要修复 + 环境与数据迁移 + 业务重新确认 + 未知风险准备
其中“未知风险准备”也不该是一句笼统的高价理由。更合理的方式是先做限时、限范围的审计,把未知项变成问题清单,再按已确认范围分阶段报价。
二、第一笔成本:代码不是“有压缩包”就等于可交付
老板最先问的通常是:“源代码拿到了吗?”
这个问题只问对了一半。真正影响接手成本的是:这份代码能否被独立取得、构建、测试、部署和维护。
1. 仓库是否完整
要检查的不只是当前代码文件,还包括:
- 前端、后端、移动端、小程序和定时任务是否都在;
- Git 提交历史、分支和版本标签是否保留;
- 数据库结构变更脚本是否与代码版本对应;
- 配置模板、依赖锁定文件、构建脚本是否齐全;
- 是否存在只放在某台开发电脑上的关键模块;
- 商业组件、字体、插件和第三方 SDK 是否有合法授权。
只有一个最终压缩包,新团队很难判断某段代码为什么这样写、哪个版本曾经上线、一次修改会不会破坏别处。提交历史不是装饰,而是排查问题和追溯决策的重要线索。
2. 能否在干净环境重建
最有价值的接手测试,不是看旧服务器上的页面还能不能打开,而是让新团队在一套干净环境中,按照现有文档从零完成:
- 拉取源码;
- 安装依赖;
- 初始化数据库;
- 启动各项服务;
- 运行基础测试;
- 构建可发布版本;
- 部署到非生产环境。
只要其中一步依赖口头指导、私人网盘、过期软件源或原供应商电脑里的文件,接手成本就会上升。
3. 技术债是否阻碍继续开发
代码“能跑”不代表适合继续加功能。新团队还要判断:
- 核心逻辑是否大量复制,修改一处会漏掉多处;
- 权限、金额、库存等关键规则是否散落在前端;
- 数据库是否缺少约束,错误数据能否直接写入;
- 是否存在明文密钥、废弃依赖和已知高风险漏洞;
- 是否有最基本的日志、异常处理与自动化测试;
- 架构是否已经达到当前业务量的瓶颈。
接手方不应把所有“不喜欢的写法”都列为重构理由;客户也不应要求在没有审计的情况下承诺原代码全部可用。审计要回答的是“哪些问题会阻断剩余交付”,不是追求一次性把系统改得完美。
如果是小程序或旧系统的二次开发,可结合《小程序二次开发为什么经常比重做还贵?》中的审计清单一起判断。
三、第二笔成本:数据迁移最贵的往往不是复制,而是证明没有丢、没有乱
代码可以重新写,经营数据通常不能重来。
接手时的数据工作至少包括四层:
1. 结构
需要拿到数据库表、字段、索引、约束、视图、存储过程、定时任务和文件存储关系。只交一个数据库备份,却没有说明哪个字段代表什么,新团队仍要反向推理。
2. 口径
“订单金额”究竟是下单金额、实付金额还是退款后净额?“有效客户”是否排除测试账号?“已完成”在哪些情况下可以被撤销?字段名称相同,业务含义可能完全不同。
3. 质量
重复记录、空值、异常日期、错误编码、孤立附件、手工修正数据都可能在迁移时暴露。新团队需要决定哪些原样保留、哪些修复、哪些进入异常清单,不能边导入边凭感觉修改。
4. 切换
若系统仍在营业,第一次全量迁移后还会产生新增数据。正式切换需要明确停机窗口、增量同步、校验方法、失败回滚和旧系统只读保留期。
因此,数据成本不能只按“多少张表”计算。三张表也可能承载多年交易和复杂口径,一百张空表反而容易处理。更可靠的报价依据是数据量、质量、关系复杂度、停机约束和校验责任。
关于字段映射、清洗、校验和回滚,可继续参考《老系统数据迁移怎么报价?》。
四、第三笔成本:账号和环境不在企业手里,系统就没有真正交接
项目最危险的情况,往往不是少一份文档,而是关键控制权在供应商个人账号中。
接手盘点应覆盖:
| 资产类别 | 常见项目 | 必须确认 |
|---|---|---|
| 基础入口 | 域名、DNS、ICP备案、SSL 证书 | 注册主体、管理账号、续费时间、转移方式 |
| 云资源 | 云服务器、数据库、对象存储、CDN、备份 | 企业是否为资源所有者,账单和权限能否独立管理 |
| 发布渠道 | 微信小程序、公众号、苹果/安卓商店 | 主体认证、管理员、开发者权限、发布密钥 |
| 业务接口 | 支付、短信、地图、物流、电子签章、发票 | 合同主体、配额、回调地址、密钥轮换 |
| 研发运维 | 代码仓库、CI/CD、监控、告警、日志平台 | 管理员权限、流水线配置、历史记录 |
| AI 与数据服务 | 模型账号、向量库、知识库、标注平台 | 数据去向、用量账单、模型版本、退出方案 |
正确的交接不是把所有密码发到群里。应先建立企业控制的主账号,再为新旧团队分配实名子账号和最小权限;在交接完成后轮换密钥、撤销离场人员权限并保留变更记录。
如果两个系统还要继续对接,还需核查接口账号、频率限制、数据口径和异常补偿,详见《两个软件系统对接为什么比想象中贵?》。
五、第四笔成本:业务知识丢失后,新团队只能花钱重新发现
最难复制的资产,通常不在服务器里。
为什么某类客户不能自动合并?为什么财务月底要先导出一张表再点确认?为什么这个审批人看起来多余,却不能删除?这些规则可能来自合同、监管、部门分工或过去事故。如果没有记录,新团队看到的只是“奇怪代码”,不知道它在保护什么。
业务知识至少要形成以下材料:
- 当前范围与尚未完成范围;
- 角色、权限和审批矩阵;
- 核心流程及异常分支;
- 字段、状态、金额和统计口径;
- 已确认需求、变更记录与被否决方案;
- 已知缺陷、临时绕行办法和影响范围;
- 外部接口联系人及协作限制;
- 典型真实样例和验收用例;
- 上线操作、日常运维和故障处理方式。
最有效的知识转移不是开一场长会,而是让旧团队按真实任务演示,新团队实际操作并复述,业务负责人现场确认。会议要录入问题清单,关键结论要落到文档,不能继续只存在聊天记录里。
六、先判断属于哪一种接手,再决定修、迁还是重做
| 接手状态 | 典型信号 | 更合理的策略 |
|---|---|---|
| 可平滑接手 | 源码完整、可重建、账号归属清楚、数据可校验 | 短期审计后继续完成剩余范围 |
| 带病接手 | 主流程可用,但测试、文档、部署或局部结构较差 | 先修阻断项,再按模块继续开发 |
| 高风险接手 | 无法稳定构建、核心数据混乱、权限失控、关键人员失联 | 先做止损和资产保全,再比较局部重构与重做 |
“重做”不一定更贵,“继续修”也不一定更省。真正要比较的是未来可交付成本:继续修复需要多少确定工作、还剩多少未知风险;重做能否保留数据和已验证业务规则、迁移期间是否影响经营。
七、接手前 10 个工作日,可以按这个顺序止损
第 1 步:冻结无记录的变更
没有紧急故障时,先停止口头插单和直接改生产库。所有新增修改进入统一清单,避免盘点期间资产继续变化。
第 2 步:建立企业资产表
逐项记录代码、服务器、数据库、域名、接口、证书、账号、联系人、费用和到期时间。每项标记“已取得、可验证、待移交、存在争议”,不要只写“有”。
第 3 步:做独立技术审计
审计范围要事先封顶,例如核心仓库、生产架构、关键数据表、五条主流程和高风险依赖。输出应包含证据、影响、优先级和处理建议,而不是一句“代码很烂”。
第 4 步:把业务范围重新画线
由企业业务负责人确认:哪些功能已经验收、哪些能用但有缺陷、哪些未完成、哪些属于新增需求。原供应商与新供应商的责任不能混成一张模糊待办表。
第 5 步:安排并行交接
在合同和权限允许的前提下,让旧团队讲解、新团队复现、业务人员验证。对无法取得或存在争议的资产,单独记录并由企业法务或合同负责人处理,不应通过猜密码、越权登录等方式“技术解决”。
第 6 步:分阶段签约
第一阶段只承诺完成接管基线;第二阶段修复必须项;第三阶段再交付剩余功能。每个阶段设置可运行结果、资料清单、验收方法和退出条件。
八、一份透明的接手报价,至少要拆成这六栏
| 报价栏 | 应写清的内容 | 不应接受的写法 |
|---|---|---|
| 资产审计 | 仓库、环境、数据和主流程的检查范围 | “全面检查,按实际发生” |
| 接管基线 | 可构建、可部署、可备份、可回滚的结果 | “熟悉代码” |
| 阻断修复 | 已发现问题、工作量和验收方式 | 把所有未来缺陷打包进一个高价 |
| 数据与环境 | 迁移批次、停机窗口、校验和回滚 | 只写“数据导入” |
| 剩余开发 | 明确页面、流程、接口和排除项 | 沿用旧合同中的模糊描述 |
| 风险与变更 | 未知项触发条件、上限和重新报价机制 | 无限期按人天、不设预算边界 |
如果审计前无法给出固定总价,可以接受一个有周期、有人员上限、有交付物的审计阶段;不能接受没有范围上限的“先做着看”。
九、老板最该防的不是接手费,而是再次被锁定
新团队接手后,合同中应补上可持续交付条款:
- 代码从第一天进入企业可访问的仓库;
- 云资源和平台主账号原则上由企业持有;
- 每个迭代同步数据库变更、部署和测试资料;
- 禁止把关键能力只放在个人账号或个人电脑;
- 第三方依赖、开源许可和持续费用要透明;
- 生产权限实名、分级、可撤销,关键操作留日志;
- 约定终止合作时的资料、协助时长和知识转移方式;
- 验收不只看页面,还看源码、数据、环境、文档和控制权。
交付清单可以结合《软件项目验收需要哪些资料?》写入里程碑。团队模式如何选择,也可参考《招自有技术团队、找软件外包还是混合交付?》。
十、签接手合同前,向新团队追问这 12 个问题
- 本次审计检查哪些仓库、环境、数据和业务流程?
- 哪些结论已通过实测,哪些仍是待验证假设?
- 现有代码中哪些可以保留,理由和证据是什么?
- 哪些问题会阻断上线,哪些可以后续优化?
- 数据迁移如何抽样、全量校验和失败回滚?
- 需要原团队配合什么,最晚何时完成?
- 哪些账号必须转为企业主体,哪些密钥需要轮换?
- 审计阶段的时间、费用上限和交付物是什么?
- 进入修复后,新增未知问题怎样确认和报价?
- 如何区分旧缺陷、剩余功能和新增需求?
- 每个阶段失败时,企业能拿走哪些可用成果?
- 新团队怎样保证未来还能再次平稳移交?
能清楚回答这些问题的团队,通常是在管理接手风险;只强调“我们经验多,什么烂代码都能救”的团队,可能只是把未知风险藏进高报价。
常见问题
原开发公司不配合,可以直接让新团队登录服务器拿代码吗?
不应贸然越权操作。先核对合同、账号归属、知识产权、数据处理权限和企业内部授权,并由合同或法务负责人处理争议。技术团队只在明确授权范围内保全和盘点资产。
已经拿到数据库备份,还需要旧团队交接吗?
通常仍需要。备份解决的是“数据在哪里”,不能自动解释字段口径、异常记录、附件关系、定时任务和切换方式。至少要完成恢复测试、数据字典、关键规则和校验口径确认。
新公司要求先收技术审计费,合理吗?
可以合理,前提是审计有固定范围、周期、人员投入上限和可交付报告,并且报告能被企业带走用于后续决策。没有清晰交付物的“熟悉费”不应接受。
接手后发现更多旧问题,是否都算新增费用?
要看合同如何约定。建议把审计已发现问题、合理可预见问题和真正新增未知项分开,并设置变更确认、预算上限和暂停决策点,避免所有问题都自动转成无限追加。
怎样判断原团队已经完成交接?
不要以“文件发过来了”为准。应由新团队在企业控制的环境中独立拉取、构建、部署、恢复备份并跑通约定主流程;企业同时验证主账号、账单、权限和文档可用性。
参考来源与口径说明
- NIST SP 800-218:Secure Software Development Framework:用于参考软件开发资产、完整性、来源和可维护交付的管理原则。
- 英国政府 Technology Code of Practice:用于参考开放标准、可替换性、云资源和技术治理原则。
本文给出的是软件项目接手的成本与治理框架,不提供统一“接手费”比例,也不构成针对具体合同争议的法律意见。实际费用取决于资产完整度、系统复杂度、数据风险、业务连续性和原团队配合程度。
结语:最便宜的接手,是从项目第一天就为可移交做准备
更换开发公司本身并不会自动制造成本。真正昂贵的是企业此前没有掌握代码、数据、账号和业务知识,导致新团队必须重新发现、重新验证、重新建立控制权。
老板面对一份较高的接手报价,不必立刻把它当成趁火打劫,也不能因为已经付过一次钱就要求新团队盲目兜底。先用资产盘点和限时审计把未知变成证据,再决定继续修、局部重构还是重做,才能控制第二次投入。
如果你正在处理项目延期、供应商更换或旧系统接管,可以查看华茂思捷的软件项目技术审计、系统接管与定制开发服务,也可以通过联系页面提交现有合同范围、系统清单和已取得资料。我们会先划清资产、问题与责任边界,再给出可分阶段验证的接手方案。

