我目前是一名学生(应用信息技术),我们用C#和Java进行大部分编程。我想知道作为一名开发人员,如何通过开源赚钱。我知道有提供支持或提供服务的故事,但我不是sysadmin,而且我不喜欢sysadmin的工作。实际上,我希望将来能使用一些C和C ++并进行一些底层开发。
所以我的实际问题是:开源软件的开发能赚钱吗?
编辑:只是指出启动我自己的开源项目不是必需的。
我目前是一名学生(应用信息技术),我们用C#和Java进行大部分编程。我想知道作为一名开发人员,如何通过开源赚钱。我知道有提供支持或提供服务的故事,但我不是sysadmin,而且我不喜欢sysadmin的工作。实际上,我希望将来能使用一些C和C ++并进行一些底层开发。
所以我的实际问题是:开源软件的开发能赚钱吗?
编辑:只是指出启动我自己的开源项目不是必需的。
Answers:
该答案总结了以下问题的许多答案,以及一些其他的研究和意见。
开源可以是可行的主要或辅助业务模型,既可以通过特定的项目工作直接获得,也可以通过技能,经验和声誉的获得而间接获得。可能还有其他动机。产生对他人有用的软件的满意度,“刮擦个人的痒”(根据Eric S. Raymond的观点,迈向任何一款好的开源软件的第一步)或哲学上的原因,通常基于以下概念:自由软件,是Richard Stallman提倡的Copyleft方法,或是BSD许可的更宽松的方法。
这可以通过几种方式发生。
个人或公司可以将自己定位为为现有开放源代码项目或项目增加价值的主要提供者。有许多通过打包,分层,组合或扩展现有项目来提供服务的公司的示例。它们大致分为两类。
一种强大的方法是根据两个替代许可证提供软件;一个copyleft许可证,如果分发了该软件,则需要将修改发布回社区;而一个商业许可证则允许在没有开源限制的情况下使用该软件。这种方法已被Qt和Open Office等大型项目以及小型一次性项目成功应用。
开源工作可以提供一种获得有价值的社区知名度的方法。
最后,收入可以通过辅助渠道获得,例如广告(如Stackoverflow所做的那样),捐赠或通过在软件本身中使用na软件技术(旨在使用户烦恼来向作者提供财务捐助)来获得收入。这些技术并非特定于开源开发模型。例如,非免费共享软件产品经常使用它们。
这是一个例子。
如果您在Qmail社区中闲逛,就会发现有些人完全了解Qmail。就在他们夫妇成为的,如果你想要一个扩展的Qmail的功能去到人。他们获得了承包工作,需要他们坐在家里,编写Qmail扩展名并为此获得报酬。
如果这听起来像您可以追求的生活方式,请尝试一下-找到一个细分市场,然后从事合同工作。您可能会为客户提供不同的条款,具体取决于客户是否想拥有自己生产的封闭源代码,或者是将代码发布为开放源代码,但他们可以使用。
这样想吧-在很多情况下,客户只是希望该代码存在。然后,他们不在乎是否拥有对此的独占访问权。
大多数时候,企业使用养蜂人模型赚钱。从本质上讲,您的开源贡献者可以免费使用最新的和最出色的产品,而您的客户可以获得可靠,成熟的产品。Red Hat,Novell和Sun都使用此模型的变体。
另一种选择是咨询和培训。如果您有使用某种产品的丰富经验(或者,您发明了更好的产品),那么人们可能会愿意花钱教他们使用。这是Canonical使用的模型。这不一定意味着您必须进行sysadmin类型的工作,除非那是您的事。毕竟,程序员,最终用户和主管也需要培训。
第三,作为学生,您应该认真考虑明年夏天的Google Summer of Code。
总的来说,我认为无论您是否直接从中赚钱,开源贡献都是值得的。虽然,我担心您短期内可能不会意识到这些好处。
真的要看 许多人只是业余爱好进行开源开发,并有一份日常工作(这通常也是软件开发,尽管并非总是如此)。
有些是由对开源项目感兴趣的公司支付的。LWN.net发布了一篇有关谁向Linux内核开发人员付款的文章,例如:
http://lwn.net/Articles/222773/
事实证明,许多公司为Linux内核开发提供资金,而不仅仅是Linux发行商。
一些开发人员还经营咨询业务,并使用软件开发来支持其主要工作或作为展示。
我和一个朋友无意间通过开源软件赚了钱。我们有类似的情况,但我只说说自己的情况:我写了一个开源VCDiff解码器,基本上是因为该规范看起来不错。(长话短说,但我原本打算在公司时间写这本书,但最终却在星期五晚上写。)
几年后,一家公司与我联系,该公司希望以商业包装使用它,但没有必要的署名。他们很乐意为此支付许可费,并向我提供了极为合理的非排他性许可。我们做了交易,双方都很高兴。
其目的绝不是为了赚钱-基本上这只是产生另一方想要的东西的副作用。
如果您确实想通过制作自己的开源项目来赚钱,我认为这是一个相当长的路要走。另一方面,在Red Hat,Sun,IBM,甚至Microsoft等公司中,有许多薪水丰厚的工作需要使用开源技术或开发开源软件。
您实际问题的答案
开源软件的开发能赚钱吗?如何?
是的,并且有不同的方法。如果您只是想成为一名开发人员,即不创办自己的公司,那么最好的开始就是参加您喜欢的项目。然后,您可能会发现这样的机会:http : //webapps.ubuntu.com/employment/canonical_GDOS/(在不同的领域,MySQL中有很多这样的名字,只是提到另一个“大”名字)。
然后,在LinkedIn上创建您的个人资料,并加入与您的技能和/或兴趣相关的OSS组。
最后但并非最不重要的是,加入本地组(例如LUG,JUG)并阅读邮件列表。通常在这些列表中会出现许多工作机会(不幸的是,我只有在得到工作后才发现)。
一些开源软件公司提供服务并赚钱。(例如应用程序托管等)在大多数情况下,它们会根据客户的要求提供一些自定义设置,并随时间提供支持和维护。
我认为“捐赠”不会带来很大的变化,但也会产生一些影响。
对于一家基于开源产品的斯里兰卡公司来说,这是一个很好的例子。
据我所知,有两家成功且盈利的开源公司:
在被Oracle收购之前,SleepyCat Software通过支持和增强Berkeley DB来赚钱。尽管其中一位创始人从事日常工作,但另一位创始人却没有,并且他们有十几名员工。
Chez Scheme通过为其编译器添加增强功能以及出售其编译器的本机代码版本来获利。典型的增强功能可能包括新的后端。最近更具雄心的增强功能是本机线程程序包。创始人(Kent Dybvig)从事日常工作;我不知道他有多少雇员。Chez与众不同之处在于,解释器是开源的,而编译器不是。
Cygnus和Red Hat都出售其软件的“支持”以及专用版本,但该软件也被赠与。我不太了解这种商业模式。
我从这些示例中脱颖而出的是,如果您的软件在同类产品中表现出色,人们会付钱给您,以帮助他们使用您的东西来解决问题。因此,这几乎就像咨询。
从本质上讲,您通常无法直接从代码中赚钱-因为它是开放的。您可以使用双重许可,但这也可能使OSS社区陷入困境。
可能是最简单的方法是努力为产生开源软件的公司。您可以通过编写代码获得报酬,并且公司可以通过支持等获得收益,但是您不必直接参与这方面的工作。
或者,您可以编写OSS来构建代表,并希望在其背面获得合同工作/专职工作。
我认为,现在可以接受的事实是,一旦安装了该软件,其价值就已经超过其价格,因为它已经“已经存在”。我说的是更多企业风格的应用程序。
许多公司在您购买软件时向您收费,然后与维护合同站在一起,如果您购买了7次以上的产品,最终您会从中获得更多的收益。我知道使用某些拥有30多年历史的专有软件肯定是这种情况!
碰巧这种软件是免费安装的(可以将其视为“一开始就免费药品”的商业模式)。当然,挑战在于选择一个维护良好且在线上拥有良好支持社区的项目。但是同样,非自由软件也是如此。
与专有应用程序相比,迁移到开放源代码和从开放源代码迁移往往要容易得多,因为它们倾向于更频繁地支持开放格式。专有应用程序通常会“放弃”迁移到它们的服务以及其他服务,以使您更轻松地与它们保持在一起。
O / S应用程序一开始往往会有较高的学习曲线,这非常需要维护合同,因此有很多机会可以使$$
我认为,这两种业务模式都不是更好,只是有所不同。专有模型恰好更普遍。
我在这里看到两个问题:
1)开发人员如何赚钱。
大多数开发人员都不是为了钱而做的。原因可能很多,但如果我们缩小范围,可以归结为1)抓痒2)争取信誉3)增强特定语言/领域的知识。
2)生意如何赚钱。
通常来自支持,培训,认证和增强。但是随后出现了一个问题:如果您的产品真的很好,那么它不需要太多支持。因此,它必须是Joel所说的 Consultingware。