Open source 为什么';你的公司没有为开源做出贡献吗?

Open source 为什么';你的公司没有为开源做出贡献吗?,open-source,Open Source,对开源的贡献可以有多种形式:与问题追踪者、补丁、进一步开发、文档、资金等合作。假设您的公司使用开源项目,您不为社区做出贡献的最重要原因是什么?开发人员花费了我们的钱。开源不需要我们花钱。因此,如果我们开始给开发人员时间来开发开源软件,那么开源就失去了它的竞争优势,我们不妨给微软打个电话,因为至少我们可以确定他们在前期花费了我们多少钱。开发人员时间/团队资源,以及反馈代码的“适当性” 这意味着,如果我们对一个OSS项目进行修改,有时这些修改并不一定适合于为项目做出贡献。这可能是因为知识产权,但实际

对开源的贡献可以有多种形式:与问题追踪者、补丁、进一步开发、文档、资金等合作。假设您的公司使用开源项目,您不为社区做出贡献的最重要原因是什么?

开发人员花费了我们的钱。开源不需要我们花钱。因此,如果我们开始给开发人员时间来开发开源软件,那么开源就失去了它的竞争优势,我们不妨给微软打个电话,因为至少我们可以确定他们在前期花费了我们多少钱。

开发人员时间/团队资源,以及反馈代码的“适当性”

这意味着,如果我们对一个OSS项目进行修改,有时这些修改并不一定适合于为项目做出贡献。这可能是因为知识产权,但实际上,最常见的原因是,我们根本没有预料到其他人会以我们制作软件的方式要求对软件进行如此具体的修改。因此,一般来说,将这些补丁发送回开发OSS项目的团队是没有意义的

在其他情况下,这些更改可以作为补丁发送给OSS项目开发人员,但这需要清理/重新格式化代码,将私人公司数据从补丁中分离出来,等等。通常,如果我们一开始使用OSS软件,我们并不关心这些事情,因为大多数OSS软件在代码质量方面有点脏(即,没有测试用例、编码标准、文档等)。因此,清理已经脏了的代码的脏补丁所需的时间通常比我们想要花费在利他主义因素上的时间要多


也就是说,我曾在一些公司工作过,这些公司在必要时确实为OSS项目捐款,而那些公司没有为某些OSS项目或发行版捐款。

如果一家公司没有开发人员,那该怎么办?也许他们不是一个软件集团,而是使用OSS来省钱,一个基于网络的集团,使用LAMP,但从不修改任何组件?

我们的管理层不了解开源。我不确定我们的老板是否理解我们正在使用OSS进行开发

在上一次,我们的老板想发布一些开源软件,但是软件包应该与支持合同捆绑在一起,所以我不相信他真的知道开源是什么意思

所以用一句话来说:我们不会回馈开源,因为我们的管理层不理解开源背后的概念

更新:现在我们有了一个操作系统产品,但我们的管理层直到今天才了解它。实际上我们这样做了,因为我们的一些客户谈论开源(实际上是免费的)。

业务逻辑

如果我开始构建一个项目,其中我使用源代码作为FLOSS项目,而不仅仅是一个库,那么我需要意识到两个因素:对代码的更改以使其实现我想要的允许向世界发布的方面


一般来说,做到这一点并不困难,但如果最后期限很紧,那么我不会“浪费”时间剥离我们的专有扩展

是的,我们是建立在开源基础上的——但我想我们是特别的;)

无论如何,这不是对你问题的真实回答,而是对其他答案中“问题”的回答。有很多方法可以为开源做出贡献。当然你可以贡献代码,但你可以贡献的另一件事是捐款。杰夫·阿特伍德(SO的创始人之一)几个月前在我知道的一个维基系统上做了这件事

当我为上一家初创公司工作时,我们给了300美元。这是一个贡献,可能是一个更好(至少更便宜)的贡献,然后让我们的一个编码人员尝试找出WatiN背后的代码模型和编码标准等,然后修复一些bug并提供补丁

但是第三种“贡献”你最喜欢的开源项目的方式更微妙,但通常是你能贡献的最好的方式,那就是关注它,就像我刚才通过那个链接对WatiN做的那样

我愿意支付100美元,让阅读此答案的人查看WatiN的链接,阅读有关该项目的信息,下载并开始在他们自己的测试套件中使用它。他们应该这样做,因为WatiN是一个伟大的开源项目,而Jeroen这个项目背后的人真的很有帮助


这也起了作用。通过告诉别人它有多棒,帮助你最喜欢的开源项目获得一些关注

在我看来,最大的问题是大多数公司都在为项目开发。如果一个项目开发了一些值得作为开源发布的东西,那么维护的承诺只能在项目完成之前给出。在此之后,没有更多的资源可用于进一步的开发、社区支持、bug修复等。这通常意味着开源“产品”的缓慢消亡


此外,一些公司非常渴望看到他们发布的东西的公共关系,这通常意味着要通过发布的所有流程。这是工程师和程序员普遍无法接受的事情。

在一种情况下,如果我们不这样做,那将是纯粹的疯狂。当我们修复bug时,我们总是确保它们被推到上游


正如我所说,不这样做真的很疯狂,还可以选择维护一个fork。

我们提供了后台补丁和错误修复

不过,我们通常不会启动新项目。我们没有足够的开销来支持这样一个项目。不幸的是,你不能仅仅在网站上发布一个tarball,期望陌生人为你的代码添加特性。建立一个通信需要付出努力