使用开源作为开发人员来赚钱?


109

我目前是一名学生(应用信息技术),我们用C#和Java进行大部分编程。我想知道作为一名开发人员,如何通过开源赚钱。我知道有提供支持或提供服务的故事,但我不是sysadmin,而且我不喜欢sysadmin的工作。实际上,我希望将来能使用一些C和C ++并进行一些底层开发。

所以我的实际问题是:开源软件的开发能赚钱吗?

编辑:只是指出启动我自己的开源项目不是必需的。


阅读埃里克·雷蒙德(Eric Raymond)的书:大教堂和集市
Dipan Mehta 2012年

向开源“提供支持/提供服务”不一定涉及sysadmin工作。例如,如果客户制作了一个小代码模块,可能会发现一个开源应用程序几乎可以满足他们的需求,他们会雇用您来编写该代码模块。
詹姆斯,

为什么开发免费的开源程序的 可能重复项“?为什么一切必须对钱你怎么看待维基百科的工作没有人得到支付穿上维基百科的内容,但它是值得商榷的最好的百科全书周围...让我们来谈谈钱......”
蚊蚋

每个人都提到,大多数OSS开发人员都不会因为自己的努力而获得报酬。这是一个出色的商业模式。试想一下,巨大的公司通过使用OSS节省了数十亿美元的许可费用。这些公司的高管必须每天早上捏自己,以确保他们没有做梦。他们以某种方式说服了一群人免费为他们工作。它与软件的配合效果非常好,他们现在将模型扩展到其他领域,包括新闻和摄影。发展OSS有点像宗教,这次又一次提出了一大堆的大

Answers:


105

该答案总结了以下问题的许多答案,以及一些其他的研究和意见。

概要

开源可以是可行的主要或辅助业务模型,既可以通过特定的项目工作直接获得,也可以通过技能,经验和声誉的获得而间接获得。可能还有其他动机。产生对他人有用的软件的满意度,“刮擦个人的痒”(根据Eric S. Raymond的观点,迈向任何一款好的开源软件的第一步)或哲学上的原因,通常基于以下概念:自由软件,是Richard Stallman提倡的Copyleft方法,或是BSD许可的更宽松的方法。

通过开源赚钱的方法

1.公司赞助

这可以通过几种方式发生。

  • 继续从事备受瞩目的项目的永久工作。这可能是最罕见的情况。如果您是Linus TorvaldsGuido van RossumTheo de Raadt之类的大型开源项目的高级成员,那么您可能能够在获得大型公司(例如GoogleIBM。尽管这种支持方式相对罕见,但是您不一定非要成为开源巨星才能获得这种类型的资金。许多Linux内核开发人员部分或全部Red Hat等公司提供资金
  • 为特定功能或扩展付费。一些公司提供赏金,以便在用于业务功能的开源软件中实现特定功能。通常不需要使该功能保持封闭源代码,因此将大量代码贡献给社区。这已被描述为开源开发的养蜂人模型。在某些情况下,需要其他功能来保持专有性,但是这些功能是基于开放源代码库的。在这两种情况下,开源专业知识对于开发人员来说都是明显的优势。
  • 您的日常工作代码可以开源。一个相关的案例是,您在日常工作过程中为公司编写的代码的某些方面可能是开源的,而不会损害公司。该代码可以基于或不基于现有的FOSS项目。一般有用的工具和库可能经常以这种方式发布,并且轶事证据表明一旦成为志愿者驱动,此类项目通常可以加速

2.为现有项目增值

个人或公司可以将自己定位为为现有开放源代码项目或项目增加价值的主要提供者。有许多通过打包,分层,组合或扩展现有项目来提供服务的公司的示例。它们大致分为两类。

  • 支持。 Enthought通过打包针对科学库的定制Python发行版来增加价值。Redhat和其他Linux发行版通过整理和测试许多不同的开源项目并提供易于使用的安装和升级机制来增加价值。这些公司以与许多专有提供商相同的方式出售支持服务。
  • 免费增值模式。在这种模式下,该软件或服务的基本版本是免费的;额外的“高级”功能通常会额外收费。Sleepycat软件根据专有许可为 Berkeley DB提供了额外的功能。Cedega提供了Linux下Windows API的重新实现,以免费和专有代码的混合形式发布。该模型不需要开源。用于组织的Gmail是提供免费(如啤酒)和高级选项的服务的一个示例。

3.在双重许可模式下提供代码

一种强大的方法是根据两个替代许可证提供软件;一个copyleft许可证,如果分发了该软件,则需要将修改发布回社区;而一个商业许可证则允许在没有开源限制的情况下使用该软件。这种方法已被QtOpen Office等大型项目以及小型一次性项目成功应用。

4.咨询

开源工作可以提供一种获得有价值的社区知名度的方法。

  • 展示能力。通过查看他们所参与的开源项目,能够验证开发人员的工作和能力,这对于准雇主来说是一个强大的吸引力
  • 建立声誉。在开源社区中享有很高的声誉,可以根据您的专业知识进行演讲,培训或撰写书本。
  • 成为专家。成为公司所需技术的重要参与者意味着需要对该技术进行定制咨询,支持和培训。这可以导致在您的专业领域中创建特定的工作环境

5.辅助渠道

最后,收入可以通过辅助渠道获得,例如广告(如Stackoverflow所做的那样),捐赠或通过在软件本身中使用na软件技术(旨在使用户烦恼来向作者提供财务捐助)来获得收入。这些技术并非特定于开源开发模型。例如,非免费共享软件产品经常使用它们。


21

因为您是此系统的创建者,所以您是“最终专家”。使用或希望使用您的软件的营利性公司可能会带您进行一些咨询工作。另外,您有资格在我听到的报酬丰厚的大会上发言。

向现有项目贡献代码也是在这里树立名字的好方法。您贡献越多,寻找合同工作时就越有信誉。


17

这是一个例子。

如果您在Qmail社区中闲逛,就会发现有些人完全了解Qmail。就在他们夫妇成为,如果你想要一个扩展的Qmail的功能去到人。他们获得了承包工作,需要他们坐在家里,编写Qmail扩展名并为此获得报酬。

如果这听起来像您可以追求的生活方式,请尝试一下-找到一个细分市场,然后从事合同工作。您可能会为客户提供不同的条款,具体取决于客户是否想拥有自己生产的封闭源代码,或者是将代码发布为开放源代码,但他们可以使用。

这样想吧-在很多情况下,客户只是希望该代码存在。然后,他们不在乎是否拥有对此的独占访问权。


承包工作是不定期的,我认为这不是一个好的职业选择。似乎有薪水工作(可靠)或初创公司(赌博,但至少有潜在的回报)似乎更好。
sixtyfootersdude

15

根据我的经验,编写OSS不会给您任何收益。但这确实使您变得更有价值,因此可以就业。既因为您从实践中获得了高度调整的能力,又因为当您能够使用现有的OSS时,您对生态系统的熟悉度使您可以浪费更少的时间评估已经存在的内容,从而避免重写车轮。


11

大多数时候,企业使用养蜂人模型赚钱。从本质上讲,您的开源贡献者可以免费使用最新的和最出色的产品,而您的客户可以获得可靠,成熟的产品。Red Hat,Novell和Sun都使用此模型的变体。

另一种选择是咨询和培训。如果您有使用某种产品的丰富经验(或者,您发明了更好的产品),那么人们可能会愿意花钱教他们使用。这是Canonical使用的模型。这不一定意味着您必须进行sysadmin类型的工作,除非那是您的事。毕竟,程序员,最终用户和主管也需要培训。

第三,作为学生,您应该认真考虑明年夏天的Google Summer of Code

总的来说,我认为无论您是否直接从中赚钱,开源贡献都是值得的。虽然,我担心您短期内可能不会意识到这些好处。


10

真的要看 许多人只是业余爱好进行开源开发,并有一份日常工作(这通常也是软件开发,尽管并非总是如此)。

有些是由对开源项目感兴趣的公司支付的。LWN.net发布了一篇有关谁向Linux内核开发人员付款的文章,例如:

http://lwn.net/Articles/222773/

事实证明,许多公司为Linux内核开发提供资金,而不仅仅是Linux发行商。

一些开发人员还经营咨询业务,并使用软件开发来支持其主要工作或作为展示。


7

有很多不同的方法

  • 由另一家公司提供资金(例如Google付给Guido van Rossum一半时间从事Python工作)
  • 销售支持服务
  • 销售咨询服务
  • 通过开源为自己建立一个个人资料,希望它会导致诸如说话,写书,获得一份高薪工作等其他事情
  • 例如为“企业”客户旋转产品的商业版本

然后,我认为最大的是扩展知识,并从产品用户那里得到爱。


6


创建一个有关开源产品的网站(您的应用程序,论坛,支持网站等),然后在其中放置一些广告。

那可以解决问题。


2
当然可以赚钱,但不能靠广告谋生。

1
虽然google在em方面有些运气;)
Michael Durrant

6

我和一个朋友无意间通过开源软件赚了钱。我们有类似的情况,但我只说说自己的情况:我写了一个开源VCDiff解码器,基本上是因为该规范看起来不错。(长话短说,但我原本打算在公司时间写这本书,但最终却在星期五晚上写。)

几年后,一家公司与我联系,该公司希望以商业包装使用它,但没有必要的署名。他们很乐意为此支付许可费,并向我提供了极为合理的非排他性许可。我们做了交易,双方都很高兴。

其目的绝不是为了赚钱-基本上这只是产生另一方想要的东西的副作用。


3
我认为您遇到了一个重要的问题:您不会为了金钱而开源。

@伯纳德:我假设您的陈述不包括Sun,Novell,Red Hat,Google,IBM,Apple甚至Microsoft?
杰森·贝克

不,我的意思是作为个人,一个人的意图不应该是赚钱。并不是说这是不可能的,甚至是困难的或不需要的。

@Jason-我认为微软从来没有“进入”开源。
克里斯·卢兹

5

我认为常见的情况是他们也有工作。很多开源工作源于开发人员的业余时间,以及他们有偿工作的要素。

一个示例可能是创建解决方案以解决工作中的特定问题,并开放源代码解决方案以帮助面临类似情况的其他开发人员。


4

仅开发一个开源软件项目可能不会赚到很多钱。可以提供高级支持,定制等。通过开发Firefox,Thunderbird,Red5和其他一些开源项目的扩展和自定义版本,我可以做出很大的改变。我创建的大部分内容也都提供给了开源社区。

也可能有双重许可系统。例如,您可以在GPL类型许可下以及在商业许可下发布软件,在商业许可下,允许购买商业许可的人保留所有修改的专有权,并在不发布源代码的情况下出售该软件。


3

如果您确实想通过制作自己的开源项目来赚钱,我认为这是一个相当长的路要走。另一方面,在Red Hat,Sun,IBM,甚至Microsoft等公司中,有许多薪水丰厚的工作需要使用开源技术或开发开源软件。


3

实际问题的答案

开源软件的开发能赚钱吗?如何?

是的,并且有不同的方法。如果您只是想成为一名开发人员,即不创办自己的公司,那么最好的开始就是参加您喜欢的项目。然后,您可能会发现这样的机会:http : //webapps.ubuntu.com/employment/canonical_GDOS/(在不同的领域,MySQL中有很多这样的名字,只是提到另一个“大”名字)。

然后,在LinkedIn上创建您的个人资料,并加入与您的技能和/或兴趣相关的OSS组。

最后但并非最不重要的是,加入本地组(例如LUG,JUG)并阅读邮件列表。通常在这些列表中会出现许多工作机会(不幸的是,我只有得到工作后才发现)。


2

一些开源软件公司提供服务并赚钱。(例如应用程序托管等)在大多数情况下,它们会根据客户的要求提供一些自定义设置,并随时间提供支持和维护。

我认为“捐赠”不会带来很大的变化,但也会产生一些影响。

对于一家基于开源产品的斯里兰卡公司来说,这是一个很好的例子。

WSO2


2

据我所知,有两家成功且盈利的开源公司:

  • 在被Oracle收购之前,SleepyCat Software通过支持和增强Berkeley DB来赚钱。尽管其中一位创始人从事日常工作,但另一位创始人却没有,并且他们有十几名员工。

  • Chez Scheme通过为其编译器添加增强功能以​​及出售其编译器的本机代码版本来获利。典型的增强功能可能包括新的后端。最近更具雄心的增强功能是本机线程程序包。创始人(Kent Dybvig)从事日常工作;我不知道他有多少雇员。Chez与众不同之处在于,解释器是开源的,而编译器不是。

Cygnus和Red Hat都出售其软件的“支持”以及专用版本,但该软件也被赠与。我不太了解这种商业模式。

我从这些示例中脱颖而出的是,如果您的软件在同类产品中表现出色,人们会付钱给您,以帮助他们使用您的东西来解决问题。因此,这几乎就像咨询。


我认为Chez Scheme的口译员是免费的,但不是开源的。我只看过Chez Scheme解释器的二进制文件。和谷歌没有帮助。
香农遣散费

2

从本质上讲,您通常无法直接从代码中赚钱-因为它是开放的。您可以使用双重许可,但这也可能使OSS社区陷入困境。

可能是最简单的方法是努力产生开源软件的公司。您可以通过编写代码获得报酬,并且公司可以通过支持等获得收益,但是您不必直接参与这方面的工作。

或者,您可以编写OSS来构建代表,并希望在其背面获得合同工作/专职工作。


无需双重许可。没有什么可以阻止您出售GPL代码。唯一的问题是,您不能阻止买方自己出售或赠与它。比作为代码的商品更好地出售编写代码的服务
苗条

这不是真的。您确实可以出售它,但是随后您将在GPL条款(作为版权所有者的权利)范围内进行分发。但这并没有使其成为公共领域。最好使此替代许可证明确。

1

您可以通过多种方式执行此操作。现在免费增值模式很流行。
另外,正如其他人发布的那样,开源工作被搁置一边。我使用的模型是在我的工作地点使用开源并将我的贡献回馈给主线。您需要获得管理层的支持,但它可以正常工作。还应记住斯托曼·弗里斯(Stallman Free)的话,就像《自由》中的


1

我认为,现在可以接受的事实是,一旦安装了该软件,其价值就已经超过其价格,因为它已经“已经存在”。我说的是更多企业风格的应用程序。

许多公司在您购买软件时向您收费,然后与维护合同站在一起,如果您购买了7次以上的产品,最终您会从中获得更多的收益。我知道使用某些拥有30多年历史的专有软件肯定是这种情况!

碰巧这种软件是免费安装的(可以将其视为“一开始就免费药品”的商业模式)。当然,挑战在于选择一个维护良好且在线上拥有良好支持社区的项目。但是同样,非自由软件也是如此。

与专有应用程序相比,迁移到开放源代码和从开放源代码迁移往往要容易得多,因为它们倾向于更频繁地支持开放格式。专有应用程序通常会“放弃”迁移到它们的服务以及其他服务,以使您更轻松地与它们保持在一起。

O / S应用程序一开始往往会有较高的学习曲线,这非常需要维护合同,因此有很多机会可以使$$

我认为,这两种业务模式都不是更好,只是有所不同。专有模型恰好更普遍。


1

我在这里看到两个问题:

1)开发人员如何赚钱。

大多数开发人员都不是为了钱而做的。原因可能很多,但如果我们缩小范围,可以归结为1)抓痒2)争取信誉3)增强特定语言/领域的知识。

2)生意如何赚钱。

通常来自支持,培训,认证和增强。但是随后出现了一个问题:如果您的产品真的很好,那么它不需要太多支持。因此,它必须是Joel所说的 Consultingware


0

如今,一些(很多)公司向开发人员付费以为开源软件做出贡献,因为他们的业务基于开源软件或衍生自开源软件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.