技术尽职调查的暗面:能跑的代码不等于可交割的资产
演示环境很干净,干净得可疑
一次并购项目的技术访谈里,标的公司打开演示环境,页面流畅,接口响应稳定。会议室里有人点头。可当我要求从代码仓库重新构建同一版本时,构建脚本缺了两个私有依赖,镜像标签指向一个已删除的分支,云账号的访问密钥由一位已离职工程师个人保管。演示没有撒谎,它只是没有回答真正的问题:交易完成后,这套技术资产还能不能以同样的方式存在。
技术尽职调查常被误解为代码审计的加长版,或者专利清单的核对。两者都只是切片。更接近的定义是:对技术资产的可验证性、权属完整性、可维护性和合规边界做证据化审查。它不判断技术“好不好”,那属于商业判断;它要确认技术“是不是你的、能不能跑、跑下去要付什么代价”。
技术尽职调查 代码仓库权限审查 场景图
演示环境会掩盖依赖。真正需要打开的是构建链路:源码、依赖锁定文件、制品仓库、基础设施即代码、密钥管理、数据管道。一个项目能在开发者笔记本上运行,和它能在一台干净机器上可重复构建,是两件事。后者的证据链更长,也更接近交割后的现实。
专利清单之外,权属链往往更脆
专利和软著能提供一种安全感。它们整齐、可编号、可放入附录。但技术资产的权属链经常不在证书里。员工发明转让协议是否覆盖海外子公司?外包团队交付的代码有没有明确的权利让渡?开源组件进入产品的方式是动态链接、静态编译,还是以服务形式调用?这些问题的答案会改变交易对价,也可能改变交割条件。
许可证扫描工具会给出告警列表,但告警不等于侵权。比如某些宽松许可证允许商用,却要求保留声明;某些传染性许可证在修改和分发时触发义务,而内部使用可能不触发。判断需要结合分发方式、修改范围、链接形态和商业模式。反过来,一份看似干净的自研代码,也可能因为复制了带有许可证头的片段而出现权属瑕疵。工具输出是线索,不是结论。
更隐蔽的是贡献者痕迹。代码仓库的提交记录能显示谁在关键模块上留下密集修改,也能显示某段核心逻辑是否由外部顾问在短期内一次性灌入。若贡献者没有签署知识产权归属文件,后续主张会让资产边界变得模糊。说实话,这类问题在早期公司里常见,在快速扩张的团队里也常见。合同和仓库记录对不上,技术访谈就会变成回忆录。
技术尽职调查 开源许可证依赖图谱 截图
模型类资产把问题推得更远。权重文件的来源、训练数据的授权、微调过程的记录、推理服务的第三方接口依赖,都需要单独的证据。模型卡不是装饰,它要能回答数据从哪来、用途边界在哪、输出风险由谁承担。缺少这些记录时,技术资产仍可能运行,但它的可交割性会变薄。
可维护性不是代码风格,是知识分布
代码风格争论在尽调里价值有限。缩进、命名、注释密度可以改。真正影响交割后运营的是知识分布:关键模块是否只由一个人理解?发布流程是否依赖某个人的本地脚本?事故复盘是否留下可检索的记录?测试覆盖是否集中在边缘功能,而核心路径靠手工验证?
有一种反例值得警惕:仓库里测试很多,但测试与生产行为脱节;文档很厚,但版本停在两年前;架构图很漂亮,但和实际部署不一致。这些不是代码质量问题,是证据质量问题。技术尽职调查要做的,是把访谈中的说法和仓库、流水线、监控、工单系统交叉验证。可维护性最终表现为:换一拨人,系统还能不能按可接受的速度继续演进。
团队依赖也需要量化,但不能滑向排名。可以看关键人覆盖、模块耦合、发布频率、变更失败率、平均恢复时间,但每个指标都有适用边界。早期公司样本少,指标波动大;平台型业务变更成本高,发布频率低并不等于不可维护。把指标当结论,容易误伤;把指标当提问入口,才有用。
把审查做成可复现的证据链
把审查做成可复现的证据链
方法上,时间盒和抽样偏差是两座山。仓库太大,不可能逐行阅读;依赖太多,不可能每个许可证都做法律意见。可行的路径是分层抽样:核心交易链路、身份与权限、数据出入、计费与风控、模型推理服务。每层抽取代表性模块,做构建复现、依赖图谱、许可证核对、密钥与配置检查,再用访谈补齐背景。样本选择要写清楚,结论要标注置信边界。
构建复现是一个高信息密度的动作。它会把私有依赖、环境变量、制品仓库权限、基础设施脚本一次性暴露出来。若无法复现,至少要记录缺口:缺的是凭证、是文档、还是外部服务合同。这个记录本身就有价值,因为它对应交割后的迁移成本。
数据流图同样关键。个人信息、敏感业务数据、跨境传输、第三方SDK、日志留存,这些不是合规部门的单独任务,而是技术架构的一部分。若数据流图画不出来,通常意味着系统边界也没那么清楚。此时给出的风险描述应带条件:在何种业务规模、何种部署区域、何种分发方式下,义务会被触发。
AI相关资产还需要额外一层:训练数据来源与授权、权重访问控制、推理日志、输出滥用防护、供应商锁定。模型能力可以演示,但证据链不能靠演示。权重是否可移植、推理成本是否随规模突变、第三方接口是否有替代方案,都会影响交割后的技术路线。
交割之后才到的账单
交割之后才到的账单
技术债在交易前常被当作可修项,交易后却变成现金流。云资源预留、日志存储、第三方API调用、开源维护者断供、安全补丁响应,这些成本不会因为交易完成而消失。出口管制、数据跨境、行业许可也会在特定条件下改变部署方案。审查报告若只列问题不给触发条件,读者无法定价。
趋势并不神秘:软件供应链透明度在提高,SBOM和依赖证明会从加分项变成基础材料;模型权重和训练数据尽调会从边缘问题进入核心清单;云成本与架构可移植性会被放在同一张表里看。边界也在这里:证据链的厚度应与交易规模、技术复杂度、监管暴露相匹配。对一家早期工具软件公司套用金融机构的审查强度,既昂贵也失真。
回到开场那间会议室。演示环境仍然干净,但问题已经换了:构建能否复现,权属能否闭合,知识能否转移,义务何时触发。技术尽职调查不生产确定性,它生产的是可复核的判断依据。交割之后,账单会到。证据链决定这笔账由谁付、付多少、能不能分期。