English version | 中文版本
English
A boss asked, who is stronger in open source?
One day, the boss asked a question, who is stronger contributor in open source?
My analysis to the question and answer
Such question is a typical question for some marketing or sales guys, because their mindset is that it is important to tell customers I am stronger and you should choose my proposal rather that compitetors’.
But it is not easy to reply such question to your boss, as you have to define a reasonable measurement to assess the contribution, and probably the weights.
And, you have to let him know that the the contribution is not equal to the solution or service you offer to your customers.
Let me try to reply this question.
What is contribution to open source and how to assess?
Regarding contribution to open source, I think there are following aspects.
1. Adoption
Without adoption, the open source software has not value to exist. You are contributing the open source software when you use it, as you share the knowledge or opinion of the author when you read his books, even without any feedback to the author.
Regarding adoption, there are different levels.
- Illegally
To adopt one open soure software into yours, you have to follow the open soure license and respect the intelligent propietory.
Unfortunately, some guys don’t have such knowledge and just copy the code and use it, which may lead to legal disputes.
Open Source is NOT free
Read https://opensource.com/resources/what-open-source to get details.
- Adoption legally
When a user or organization has the knowledge about using open source software, and set up a mechanism to manage his engineers using open source software legally, that is great.
- Adoption efficiently
I have to highly recommend Who wants a thousand free puppies? - Michael Scovetta.
Once you adopt open source software to your solution, you have to think about the following:
-
Lifecycle. the OSS (open source software) lifecycle does seldom cover your solution/product/service lifecycle.
-
Bugs management. If the OSS has a bug, how can you get the information and update, and how will you fix it in your software and update it to your customers.
-
Security issues management. The same and even more important than bugs.
-
First of first, you are responsible for the offers to your customer, not the OSS authors.
Watch the video I recommend above to understand the whole picture and the complexity.
Some people think open source is “free like in beer”.
It’s actually more like a free puppy.
2. Donation to the community or author
The developers need $$ to make his life better, and the development better, so to donate is definitely an important and respectful way to contribute.
Think about the self-development cost, and the $$ to donate, it is worthy.
3. Contribute in the development
While using the software, you may find bugs to solve, or improvement to meet your requirements. To work with the autors and other contributors is a pretty good way to contribute.
4. Open source your software
The idiom don’t reinvent the wheel is quite famous, not only in the software world, but also others.
5. Help engineers all over the world
Many great companies worked on helping the developers, like IBM, Microsoft and etc.
Here I would like to say Google has been doing a great job on helping developers.
Google offers knowledge, mentoring, infrastructure, community activities and even $$ to the developers.
What did I reply?
I replied the above, and leave the assessment to the boss. :-)
Futhure reading
I believe that some readers are wondering why commercial companies contribute in open source. Please read https://liyongle.github.io/articles/2020-01/open-source-community-operation-3. Sorry for Chinese version only. If you’d like to translate, leave your comments below and I will contact you.
中文版
我是先写的英文版,再用翻译工具翻译成英文再改的,写双语挺烦躁的,原来中文版内容的粗糙,和英文版内容的简单,我能力实在有限
老板这样问:我们和XX比,谁对开源的贡献大?
前几天,有个老板问大家,我们和XX比,谁对开源的贡献大?
问题分析
这类问题很典型,特别是Marketing和Sales的同事喜欢问,因为他们在做品牌或者在跟客户交流时,希望能告诉客户我的产品牛,买我的吧。
但是,这个问题并不好回答,因为需要设计一个尺子,没有尺子就没有办法量。
我就试着回答一下吧。
对开源的贡献有哪些方式?
1. 使用开源软件
使用本身就是一种贡献,如果软件没有人使用,软件本身是没有继续发展的动力的。
使用也有层次,不合规使用、合规使用、合规高效大规模使用。
- 不关注合规随便用
要在您的软件中使用开源软件,您必须遵循开放式源代码许可证并尊重其知识产权。
不幸的是,有些人没有这样的知识,只是随意复制代码并使用它,这可能会导致法律纠纷。
开源不是免费的
感兴趣的话可以读读https://opensource.com/resources/what-open-source。
- 合规使用
当用户或一个组织了解有关使用开源软件的知识,并建立一种机制来合法地使用开源软件管理其工程师开发行为是,已经很牛了。
- 大规模合规高效使用
强烈推荐Who wants a thousand free puppies? - Michael Scovetta。
引入了开源软件后,您必须考虑以下几点:
1. 生命周期。 OSS(开源软件)生命周期很少涵盖您的解决方案/产品/服务生命周期。
2. Bug管理。如果OSS存在bug,你怎样及时获取信息、修改之、发布之并且让(帮)客户升级。
3. 安全问题管理。同上,甚至比Bug管理更重要。
4. 总之的总之,是您给您的客户兜底,而不是OSS作者。
有些人认为开源是“像啤酒一样免费”。
实际上更像是一只免费的宠物狗。
想象一下你养1000只免费的宠物狗在家里。
2. 给开源软件owner或者基金会捐款。
捐¥,多实在的贡献啊。
3. 参与到开源社区开发软件
有问题、有需求,如果能够参与进去一起实现,大家共享结果,毫无疑问是很大的贡献。
4. 开源自己的软件
不要重复造轮子,把自己好用的软件开出来,避免其他人重复造轮子。
5. 为社会培养软件工程师
历史上很多伟大的公司都在帮助开发者,比如IBM、微软等等。
我感觉Google在这方面可能是做得最好的,致敬。
Google为开发者提供知识、文档、导师、开发工具、测试工具、社区活动,甚至还直接给钱,我的天呢!
最后,我是怎么回答的?
我回答了上面的内容。:-)
延伸阅读
我相信一定有人想,商业公司用开源可以理解,为什么要去贡献呢?别谈什么高大上的雷锋精神或者社会责任感,有没有比较俗的解释?看看这个吧 https://liyongle.github.io/articles/2020-01/open-source-community-operation-3。
欢迎在在博客上留言,共同提高。