2023-04-18
在网站开发和软件外包行业混迹多年,我见过太多客户满怀信心地拿着“源码”来找我们,最终却发现自己买的只是一串无法修改的字符。
这不是个例,而是行业里心照不宣的灰色地带。今天我想通过两个真实的故事,揭开这个行业最深的套路之一——源码交付的文字游戏。
第一个故事:运行源码 vs 工程源码
一位客户通过朋友介绍找到我们,说他们需要一个长期的技术维护伙伴。我第一句话就问:“您手里有完整的工程源码吗?如果没有源码,我们只能做最基础的服务器的维护,任何功能调整都做不了。”
客户信心十足:“有的,合同里白纸黑字写明了‘交付源码’。”
当我们拿到所谓的“源码”时,技术人员一眼就看穿了真相——那是运行源码,也就是经过编译、压缩、混淆后的代码。它确实能运行,能部署,能展示一个完整的网站,但它是一团无法阅读、无法修改的“黑盒子”。
打个比方:运行源码相当于一台已经烤好的蛋糕,你能看到它、闻到它、吃掉它,但如果你想调整糖的分量或改变夹心口味——对不起,你没有配方。
客户懵了:“合同上明明写着交付源码啊!”
是的,合同写了“源码”,但没写“可修改的工程源码”。一字之差,天壤之别。如果要拿到真正的工程源码——那个可以自由修改、二次开发、添加功能的原始代码——需要再付一笔不菲的费用,通常是原合同金额的30%-50%。
第二个故事:加密的工程源码
有了第一次的教训,第二位客户在沟通二次开发需求时,我们特意反复确认:“您手里的源码是工程源码吗?技术人员可以直接打开、阅读、修改吗?”
客户斩钉截铁:“是的,我们确认过,对方说是工程源码。”
签合同、走流程、拿到代码。技术人员一打开——所有代码文件都是加密的。需要特定的解密工具和授权文件才能读取,而这个解密服务的报价是几万元。
这是另一个经典套路:交付的确实是工程源码,但被加密了。就像给了你一本用密码写成的书,书是真的,但你读不懂。要读懂?请再付费购买“密码本”。
为什么会出现这种情况?
根源在于“源码”这个词在行业里从来没有一个统一、明确的法律定义。它可以是:
运行源码(已编译的、不可读的)
加密源码(需要额外解密)
工程源码(真正的、可修改的原始代码)
部分源码(缺少核心模块)
带依赖缺失的源码(无法完整编译)
每一层都有不同的成本,每一层都能成为二次收费的借口。
我们的应对之道
经历了这些案例后,我们在合同里做了三件事:
明确界定“工程源码” :合同条款中清晰写明“交付不加密的、可直接在标准开发环境中打开、阅读、修改、编译的完整工程源码”。每一个定语都是血的教训换来的。
明确交付标准:约定源码必须能在技术人员电脑上直接运行、调试、打包,不需要额外解密工具或授权文件。
明确质保期:所有项目自交付之日起,提供一年的免费质保服务。这一年内,任何因代码本身质量问题导致的bug,我们都免费修复。
给所有准备做网站或软件开发的客户一个忠告
签合同前,一定要问清楚这五个问题:
交付的是“运行源码”还是“工程源码”?
源码是否加密?是否需要额外解密工具?
源码是否完整?是否包含所有模块和第三方依赖?
我是否有权对源码进行任意修改和二次开发?
这些权利是否都写在合同里,用词是否清晰无歧义?
不要相信口头承诺,更不要被“合同里写了交付源码”这种模糊表述蒙蔽。在技术合同里,模糊就意味着陷阱。
我们不敢说自己是行业里最便宜的服务商,但我们敢承诺:合同里写的“工程源码”,就是你能真正打开、修改、拥有的工程源码。没有加密,没有二次收费,没有文字游戏。
因为技术行业的尊严,不应该建立在客户的认知盲区上。