开源软件通识基础:第二周课程回顾与总结

接第一篇《开源软件通识基础:第一周课程回顾与总结》,本文为第二周课程内容的回顾与总结。

本导学班在调研全球开源教育与课程的基础上,通过收集、整理、理解、拓展国际最新的前沿开源课程,采取众创的模式,由 X-lab 核心开源研究的成员共同进行协作学习,以最大效率的吸收国际前沿开源知识,共创、共享、共进。本导学班,以开源 FOSS 和开源 COSS 课程内容为基础,结合自己的理解,并进行适当拓展。第二周的课程内容包括了:

  • 软件行业与开源

  • 开发者主导的开源基金会

  • 用户主导的开源基金会

  • 单一开源软件供应商模式

  • 劳动者经济学

一、软件行业与开源

为了了解开源中的各类商业模式,我们先来看看整个软件行业是如何工作的,什么是软件,以及软件如何为生态系统提供基础。

开源软件通识基础:第二周课程回顾与总结

画面中的人物是硅谷精英 Marc Andreson。他在接受《华尔街日报》的采访时说到——软件现在正在吞噬这个世界。实际上,我认为他的观点主要是:软件无处不在意味着,没有高科技产品能脱离软件的服务;但我更倾向于:没有软件就不会有创新,也没有如此高速的创新。

和其他行业比较,比如,农业和其他的行业也在进行创新,都是硬件主导的。但是因为软件的独特特性——它是可塑的,可以快速、容易地更改。软件领导的创新速度比任何硬件都高出一个数量级。

正在吞噬这个世界的不仅仅是软件,更具体来说,开源软件正在吞噬世界。

软件行业的重要参与者有软件供应商、咨询公司以及监管机构等。软件供应商公司,他们生产软件产品;咨询公司,他们需要与客户进行交互来执行项目。不同之处是,软件供应商的产品被卖给一个市场,而不是单一的客户,而咨询公司的项目总是针对特定的客户群体,为它们开发特定的解决方案。另外还有监管机构和其他的参与者。

开源软件通识基础:第二周课程回顾与总结

为了更深入的理解:在这里我们看到这两种类型的企业之间的主要区别。左边是,向市场销售产品的软件供应商。右边是,与客户交互做项目的咨询公司。

我们可以看到产品收入是如何不断积累的。项目收入是逐年保持不变的,因为咨询公司只有有限的人数。如果他们每年做一个项目,那就是他们赚的钱。

所以你可以看到。最初你在项目设置中赚的钱可能会高于订阅费或维护费用,甚至是软件产品的初始许可费。但随着时间的推移,它不能真正成长。

所以在一段时间后。一个公司的软件产品收入将超过一些咨询的项目收入。当然,咨询公司可以通过雇佣更多的人来成长。但经济增长却受到了他们雇佣称职人才的速度的限制。这通常比软件公司增加客户去使用他们的产品的速度要慢得多。下图举出了几个很好的例子,来说明产品和项目的发展关系。

开源软件通识基础:第二周课程回顾与总结

更好的方法是水平分层设计,并且让这些层的专业化。所以从 80 年代和 90 年代开始。我们看到了分隔这些层的非常明确的边界出现了。

有了明确定义的边界,会出现专门从事这些层的供应商。有时这些层主要被一个特定的供应商占据。就像 Windows 一样,有很长一段时间是主要的操作系统供应商。层内之间会有竞争,底层的实现会使上层的实现成为可能,这样就产生了平台,构成一个生态系统。垂直集成无论怎么重构,最终速度都太慢,而且不够创新。

开源软件通识基础:第二周课程回顾与总结

开源软件通识基础:第二周课程回顾与总结

新的开源项目可以快速获得用户和贡献。也会面临一系列问题。我们在课上介绍了开源社区的优势,以及相较于传统财团有哪些优势。

开发者基金会也可以分为两类,一类是应用型开发者基金会,在一个应用程序开发人员的基础上,重点是共同开发、联合管理、开发一个特定的开源应用程序。然后是涉及其中的公司,通常提供附加组件、服务和咨询。例如,WordPress 基金会,Drupal基金会, blender基金会。

开源软件通识基础:第二周课程回顾与总结

开源软件通识基础:第二周课程回顾与总结

我们将在之后讨论这些公司是如何运作的。这里有几个用户基金会的例子,Kuali 基金,是大学系统中使用的用户基金会。这可能是运行时间最长的例子,也可能是最容易理解的一个,这就是为什么我们将在下面进行更深入的研究。

首先,我们需要了解导致用户基金会诞生的最初的原因。用户基金会想要达到的目的是,摆脱对单一供应商的依赖,让他们所使用的软件能够得到多个供应商的支持和进一步开发。只有当他们所使用的软件是开源软件。而不是公司的专有知识产权时,这才是可行的。因此, 为了在使用同一个软件时,使之从一个供应商转变为多个供应商来为用户提供服务。这就需要使该软件开源,否则这些额外的供应商将不被允许使用它,或者如果他们没有对源代码副本的访问权,那么它们的服务将遭遇巨大的阻碍。

开源软件通识基础:第二周课程回顾与总结

图上这八点,我们在课程中进行了详细的介绍和讨论,欢迎感兴趣的朋友来B站看录播课程(B站账号:Xlab2020)。

接着我们继续介绍用户基金会的第二个例子,OPENK。

开源软件通识基础:第二周课程回顾与总结

对于原始的单一开源供应商,通常是企业家或者公司。企业家识别市场机会、创办公司、获得资金;公司从零开始开发软件、通过发布开放源代码的软件进入市场、保持知识产权的权利。

但最近的单一开源供应商往往是这样:企业家发现现存项目周围的商业机会,再去创办公司筹集资金;公司在开源社区版项目的基础上进行开发,再发布开源代码进入市场,保持对拓展部分的知识产权的权利。下图展示了单一开源供应商的几个时期。

开源软件通识基础:第二周课程回顾与总结

并且,社区是单一开源供应商非常重要的部分,优秀的开源社区可以帮助单一开源供应商提升声誉、提高产品的质量等等。单一供应商需要针对社区创建一套引导流程,包括提升社交引导力、明确的开发流程、策略性的方向等等。社区管理是非常重要的商业环节,需要有专门的角色来负责。

并且公司也应该认识到,社区版的开源项目,大多是消极的使用者,少数是积极的贡献者,最少的应该是公司专门负责该项目的员工。同时,对于收入来源的分布来说,绝大部分应该是企业级的交易。如下图所示。

开源软件通识基础:第二周课程回顾与总结

五、开源劳动者经济学

这一节我们来看开源的劳动者经济。如果说,谁是最大的开源受益者,我想 Linus Torvalds 可能是最符合的人。但是他在参与之初,绝对想不到能带给他如此之大的收益。不仅是他,许许多多参与开源的人都获得了巨大收益,这背后的劳动者经济值得我们深思。

我们先来看传统的开发者生涯。一个软件企业内部,通常有市场营销、产品管理、产品开发三个大部门。作为开发者,可能毕业后从开发工程师做起,一条路是一直技术做到底,那么架构师甚至 CTO 可能是最高的职位。但开发者也可能会转型去做产品,先从产品经理做起,最后成为 CPO 也有可能。不过很少有人会去市场部门,这个比较少见。

开源软件通识基础:第二周课程回顾与总结

参与开源社区,对开发者来说有非常大的好处,比如可验证的技术能力、同行证实的能力、有权力和影响力的地位等等。与传统软件公司不同,开源世界中的技术是在阳光底下的。你的实力可以用代码来证明,也可以看到你在开源社区中的影响力。你的声誉你的地位,都证明了你的实力。课程中,我们花了很多时间具体介绍开源开发者的这三点好处。

刚刚是对开发者的好处,然后我们来聊一下开源开发对公司的好处。通常,这个开源项目的未来发展是更清晰的,开发的每一步都是透明的,而且在社区的视野之下,比起公司少得可怜的开发者来说好很多。另外,开源项目的问题更容易被发现、被解决,这也导致了产品的质量更高。同时,开源项目的开发成本更低,社区中有非常多热心的贡献者,愿意自己花时间来解决问题。一个优秀的产品,带给公司的除了经济收益,还有更大的影响力、提高公司在行业的声誉。下表总结了一些,对于不同类型的公司,开源的商业目的。

开源软件通识基础:第二周课程回顾与总结

需要特别指出的是,贡献者的身份并不能提供可持续的优势,每个足够聪明的人都可以做出贡献并获得认可,没有进入的障碍,总是有一个更多的功能要实现,也没有障碍,因为开源是免费提供给所有人的。

但是 committer 的身份确实提供了可持续的位置优势。这个地位具有经济价值,因为它不容易实现,也不容易派发。成熟的项目基本上不对新的提交者开放,一旦获得,提交者的地位也不会轻易被剥夺。

从长远来看,普通开发人员可能会被雇佣来开发专有代码,他们知道并使用开源代码,可能会也可能不会做出贡献。较低的劳动力市场准入门槛拉低了工资。而开源项目的 committer可能会受雇于商业相关的开源的工作,committer 的经济价值与开源项目有关,committer 的行为更像自由人而不是雇员。并且committer 身份的稀缺性可能导致高薪,所以未来开发者的劳动力市场将成为一个两级社会吗/strong>

如果想要成为 committer,又需要哪些能力呢目的技术能力是肯定的,通常是编程技能,但真正的项目需要更多的技能,配置,管理,文档,网站,…对系统构建过程的理解等等。

社会技能同样重要,需要沟通和协作技能来进行团队工作,需要良好的阅读和写作技能(电子邮件沟通)。领导技能永远是稀有的,也是需要的,需要了解同行的行为、亚文化。在同等条件下,往往社交技能更为重要。

获得 committer 资格是一个共同的过程,用户通过自己的努力,从用户到 committer 的地位不断提升。这样可以建立声誉,减少错误决定的风险。最终,贡献者被推举为committer。决定通常是由现有的committer投票决定的。

有好的时机,也有坏的时机,一个成长中的项目需要更多的人,会在早期给予更多的责任。一个发展缓慢的成熟项目,很少需要更多的committer。尽量在需要帮助的时候尽早加入。对于那些潜在的committer ,这就有了两难的境地:押注于哪个项目呢/strong>

以上就是第二周直播课程的总结,下一次将是 COSS(商业开源软件)的部分,小伙伴们不要错过,欢迎加入我们~

本文为  X-lab开放实验室  原创文章,遵循CC-BY 4.0协议,转载请附上原文出处链接及本声明。

文中部分图片源自:https://nythesis.com

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91312 人正在系统学习中

来源:dotNET跨平台

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月20日
下一篇 2021年7月20日

相关推荐