我不是软件工程师。所以我很好奇一家公司如何确保其产品的源代码不会被自己的开发人员/员工泄露?一旦泄露,你们用什么方法来追踪?
答案1
雇佣你信任的人,信任你雇佣的人。如果你表现得好像你不信任他们,他们就会不再信任你,也不会再为公司的利益而行动。
从技术角度来说你无法做任何事,因为如果我能处理你的源代码,我就能把它偷偷地放到拇指驱动器上或通过电子邮件发送到我的家庭帐户,或者通过任何其他方式把它拿走。
答案2
我认为保罗关于‘如果你不信任他们,就不要雇用他们’的说法是正确的,但还有两件事需要考虑:
源代码真的有那么特殊吗?
通常,整个业务流程、品牌名称与代码的结合才能打造出真正优秀的产品。编写的绝大部分代码可能更容易被其他开发人员重写,而不是真正阅读开发人员编写的代码。
如果真的那么特别
你唯一的选择是将任务分解,不要让所有开发人员看到所有代码。这显然会带来很大的损失,并且可能会导致更糟糕的代码。我认为这种做法极其罕见,可能是在高度安全的政府场合。
答案3
我认为保护源代码的唯一方法是不雇用任何人,并且你是该项目的唯一开发人员。
我想你可以尝试将项目分解成多个模块,然后单独链接在一起,这样就没有人能够完全组装你的产品,但我无法想象这样的环境会带来什么样的政治后果(或士气低落)...
否则,您必须与律师讨论起诉背叛您的开发人员的选项,强制执行代码签入系统,该系统可以查明谁在何时使用了哪些代码,并使用大量同行评审来检查源代码中隐藏的恶意软件。并确保您的所有政策(包括起诉条款)都已记录在案并为您的员工所知。
当然,要做到这一点有点困难,而且要避免给人留下一个被盗源代码的混蛋的印象。
我想说,你只需要信任你的员工,就像任何其他雇主都必须相信他的员工不会用公司的车去飙车,也不会利用他们的小隔间来经营私人的 Lia Sophia 生意一样。并不是说你不会偶尔受到伤害,但如果你把每个人都当成罪犯,你就会培养更多的怨恨和流失。
态度也有可能发生变化……正如 SO Podcast 指出的那样,StackOverflow 会定期被“窃取”并重新利用,但显然仍有一个成功的原创产品存在。如果您的代码被盗,而其他人仅基于源代码就创建了蓬勃发展的业务,那么该公司本身很可能在某些方面存在不足,例如客户支持体验、专业性等。被盗是不对的,但有时被盗总是有风险的,这是做生意的代价。更不用说从技术上讲,有人可以对任何产品进行逆向工程(或者只是窃取产品并自己重新包装,没有源代码,这要容易得多……)
似乎大多数人都担心这种盗版行为,担心有人窃取原始资料,然后以那种方式对其进行更新、修改和编译。
答案4
处理这个问题的另一种方法是使源代码开源。如果一切都是公开的,那就没什么可偷的了。然而,唯一可能的情况是,如果源代码不是秘密武器可以带来收入。如果公司通过销售服务或硬件赚钱,那么免费提供软件就不是什么问题了。同样,如果软件只是一个极其复杂的系统的一小部分。