X-lab2017 / oss101-bok

https://www.x-lab.info/oss101-bok/
2 stars 5 forks source link

4. 生态 #33

Open bifenglin opened 2 months ago

bifenglin commented 2 months ago
          4.2 开源发起人(OSS Originator)是指最初创建并发布开源项目的人或组织,他们通过将软件代码公开,使其可以被公众使用、修改和共享。

Henkel J. Open source software from commercial firms–tools, complements, and collective invention[J]. Zeitschrift für Betriebswirtschaft, 2004, 4: 1-23.

4.3 开源开发者(Open Source Developer)是指在开源软件项目中,通过贡献代码、调试、分享经验等方式对项目做出贡献的人群。开源开发者的贡献形式多种多样,既包括技术贡献,也包括社交层面的贡献。

Di Bella E, Sillitti A, Succi G. A multivariate classification of open source developers[J]. Information Sciences, 2013, 221: 72-83. 吴哲夫, 朱天潼, 宣琦, 等. 基于贡献分配的开源软件核心开发者评估[J]. 软件学报, 2018, 29(8): 2272-2282.

4.4 开源组织(Open Source Organization)是指推动和管理开源项目和社区的机构或基金会,负责维护和推广开源软件项目,并通过全球开发者的协作,确保开源软件的持续发展和创新。主要的知名开源组织包括 Apache 基金会、Linux 基金会和 OpenStack 基金会等。

Crowston K, Li Q, Wei K, et al. Self-organization of teams for free/libre open source software development[J]. Information and software technology, 2007, 49(6): 564-575. 齐越, 刘金芳, 李宁. 开源软件供应链国家安全风险分析[J]. 信息安全研究, 2021, 7(9): 790.

4.5 开源教育(Open Source Education)是指在教育中使用和推广开源软件,并将开源理念融入教学中。它不仅帮助教育机构降低软件成本,还促进了创新能力的培养,并为教育信息化和人才培育提供了新的路径。

Wiley D. Open source, openness, and higher education[J]. Innovate: Journal of Online Education, 2006, 3(1). https://www.sgpjbg.com/info/93a485b0bd09afdfd5e6c9fc39f18fc1.html

4.6 开源学(Openology)是指以跨学科的方式系统性地研究开源现象及其背后的理论、实践和影响。它融合了历史学、社会学、经济学、哲学等多学科的视角,探讨开源作为一种创新、开放、自由协作的模式对软件开发及更广泛领域的影响。开源学不仅关注开源的技术层面,还探讨开源如何影响社会、文化和经济等各个领域。

https://zhuangbiaowei.github.io/opensource/openology/2021/10/05/what-is-openology.html McConnell S. Open-source methodology: Ready for prime time[J]. IEEE software, 1999, 16(4): 6-8.

Originally posted by @bifenglin in https://github.com/X-lab2017/oss101-bok/issues/31#issuecomment-2337581460

bifenglin commented 1 month ago

开源发起人(OSS Originator)是指最初创建并发布开源项目的人或组织,他们通过将软件代码公开,使其可以被公众使用、修改和共享。

开源发起人不仅仅是代码的贡献者,更是开源项目的推动者和管理者,肩负着项目的愿景、技术方向以及社区发展的责任。发起人需要在知识产权、经济利益、项目维护和社区建设之间进行平衡,既面临挑战,也能获得巨大的声誉和技术回报。

核心解释:

  1. 知识产权和商业化的风险

开源软件的发布通常意味着发起人要放弃对该软件的大部分知识产权控制,尤其是在使用宽松的许可(如BSD许可)时,其他竞争者可以将其私有化并商业化,这可能使发起人丧失部分市场控制权【1】。例如,竞争者可以基于BSD许可开发商业版本而不必公开其改动,这在商业竞争中可能对发起人不利。相对而言,GPL(GNU通用公共许可证)则通过“互惠原则”保护发起人,要求基于该许可发布的软件也必须是开源的,这为发起人提供了一定的知识产权保护。

发起人在选择开源许可时需要权衡知识产权保护和广泛使用之间的关系。宽松许可(如BSD)能够促进软件的广泛传播和应用,但可能导致商业竞争中的不利局面,而GPL等强制开源的许可可以避免软件私有化,但也可能限制潜在的商业机会。因此,发起人需要根据项目的长期目标和市场定位选择合适的许可策略。

  1. 经济成本与维护压力

开源软件的发布往往意味着放弃直接的销售收入,这在用户创新者(user-innovator)的场景中尤为明显。如果发起人原本可以通过销售软件获利,那么开源化意味着潜在的经济损失。因此,发起人需要权衡放弃这些销售收入所带来的代价与通过开源获得的其他收益(如社区贡献、市场影响力、技术扩展性等)之间的平衡。

另外,发布开源软件不仅仅是将代码开放,还需要进行全面的准备工作,例如清理代码、确保文档完备、更换受限许可的第三方模块,甚至还要检查是否侵犯了其他知识产权。这些准备和后续的维护成本会对发起人形成较大的经济和时间压力,特别是当项目的开发和维护依赖于个人或小型团队时,这种压力尤为显著。

开源发起人在选择开源前需要仔细评估其可持续性。开源并非一次性行为,而是长期的维护承诺。维护开源软件所需的成本和时间可能会超过预期,因此发起人应考虑是否有足够的资源进行持续的开发、文档编写和社区支持。对于商业组织而言,开源可以通过提升品牌影响力、扩大技术生态系统来间接获得商业收益,但必须通过有效的策略进行管理。

  1. 成功的关键因素

开源发起人的成功与其项目管理能力密切相关。成功的开源项目不仅仅依赖代码本身的质量,还依赖于项目的维护管理。发起人应确保代码结构清晰、文档完备、维护者能够快速响应社区的需求。此外,保持中立性也被视为成功的关键,例如将项目管理权移交给非营利组织可以增加社区的信任感。例如,OpenAdaptor 项目通过将权利移交给非营利组织,成功消除了竞争者的担忧【2】。

开源发起人的角色不仅限于代码贡献者,还需承担项目的运营和管理责任。通过合理的项目管理和维护策略,发起人可以最大化开源项目的成功机会。这包括保持项目的透明度、建立可靠的社区支持以及在必要时选择合适的中立性策略。成功的开源项目能够通过积极的社区互动获得巨大的声誉和技术回报。

  1. 声誉与技术回报

开源发起人往往通过其项目获得声誉和技术优势。一个成功的开源项目能够吸引广泛的用户和开发者,发起人通过开源项目所展示的技术能力和创新性可以提升其个人或企业的知名度。此外,开源项目的反馈机制(如Code Review、Bug报告等)有助于提高项目质量,减少“潜伏的重大Bug”,并增强软件的稳定性【3】。

开源发起人虽然在知识产权和经济利益上可能面临损失,但可以通过声誉、技术创新以及社区反馈获得其他形式的回报。尤其是对于商业组织,开源可以作为市场营销的一部分,通过项目成功吸引合作伙伴和客户,最终获得商业上的收益。

参考文献:

  1. Mockus, A., Fielding, R. T., & Herbsleb, J. D. (2002). Two case studies of open source software development: Apache and Mozilla. ACM Transactions on Software Engineering and Methodology (TOSEM), 11(3), 309-346.
  2. Schaarschmidt, M., Walsh, G., & Ivens, B. S. (2015). Firms’ intentions to open source software: Strategic decision-making and contagion effects. Research Policy, 44(3), 587-602.
  3. Paul Vixie (1999). Software Peer Review and Open Source. In Open Sources: Voices from the Open Source Revolution. O’Reilly Media.
bifenglin commented 1 month ago

开源开发者(Open Source Developer)是指在开源软件项目中,通过贡献代码、调试、分享经验等方式对项目做出贡献的人群。开源开发者的贡献形式多种多样,既包括技术贡献,也包括社交层面的贡献。

核心解释:

  1. 贡献形式的多样性

开源开发者的贡献不仅限于编写和提交代码,还包括对项目的调试、代码审查、提交功能补丁以及为新用户提供支持和撰写文档等【1】。这意味着一个开发者的价值不能仅通过代码量来衡量,还需要考虑他们在项目维护、文档完善、Bug修复等方面的参与。

研究表明,开源开发者的贡献可以分为多种形式,包括技术贡献(如代码提交和审查)以及社交贡献(如社区讨论、知识分享)【2】。这些贡献共同促进了开源项目的成长和成功。

  1. 核心开发者与普通开发者

在开源项目中,通常有少数开发者掌握项目的核心控制权,他们被称为核心开发者。核心开发者通常负责项目的总体设计方向,拥有代码提交权限(Commit Rights),并对重要的项目决策拥有发言权。与普通开发者相比,核心开发者不仅要编写大量的代码,还需要对其他开发者的代码进行审查,并协调项目的技术发展方向。

例如,吴哲夫等人【2】的研究表明,核心开发者的评估不仅依赖于代码提交数量,还需要通过贡献分配模型来识别出那些在项目中发挥重要作用的开发者。

  1. 协作与社交贡献

开源开发者不仅在技术上做出贡献,还通过社交互动支持项目的成长。开源项目中的协作常常依赖于开发者之间的沟通与协调,这通常通过在线论坛、邮件列表、GitHub的Pull Request机制等方式实现。通过这些社交互动,开发者可以帮助新成员融入社区、促进知识的传播和分享,并增强项目的社区活力。

开源开发者不仅仅是技术贡献者,他们在开源项目中的角色更像是多面手,通过技术和社交贡献推动项目的成功和社区的成长。不同于传统软件开发,开源开发者通常是在一个全球化的、分布式的环境中进行协作,这种开放、自由和协作的模式对开发者的沟通能力、技术能力和团队合作能力提出了更高的要求。

  1. 开发者之间的角色流动

开源项目通常具有高度的开放性,任何人都可以参与项目的开发,随着时间的推移,开发者的角色也会发生变化。例如,一名普通的贡献者可以通过持续的贡献逐渐成长为核心开发者。核心开发者通常具有更高的影响力和责任,需要协调项目的技术决策和社区事务【3】。

Di Bella等人【4】通过多变量分类研究了开源开发者的不同类型,发现开发者可以根据贡献的频率、类型和影响力进行分类。这说明了开源项目中的开发者角色并不是固定的,而是随着时间和贡献动态变化的。

  1. 核心开发者的影响力评估

评估开源开发者的影响力是一个复杂的过程,传统的代码行数或提交次数往往无法全面反映一个开发者的真实贡献【2】。因此,许多研究采用多维度的模型,考虑代码贡献的质量、项目中的协作角色以及技术决策中的参与度等因素。这种评估方式不仅能更好地识别核心开发者,还能更清晰地反映出开发者对项目的长期影响。

1.Di Bella E, Sillitti A, Succi G. A multivariate classification of open source developers[J]. Information Sciences, 2013, 221: 72-83. 2.Wu, Z., Zhu, T., Xuan, Q., et al. (2018). 基于贡献分配的开源软件核心开发者评估. 软件学报, 29(8): 2272-2282. 3.von Krogh, G., Spaeth, S., & Lakhani, K. R. (2003). Community, joining, and specialization in open source software innovation: A case study. Research Policy, 32(7), 1217-1241. 4.Di Bella E, Sillitti A, Succi G. A multivariate classification of open source developers[J]. Information Sciences, 2013, 221: 72-83.

bifenglin commented 1 month ago

开源组织(Open Source Organization)是指推动和管理开源项目和社区的机构或基金会,负责维护和推广开源软件项目,并通过全球开发者的协作,确保开源软件的持续发展和创新。主要的知名开源组织包括 Apache 基金会、Linux 基金会和 OpenStack 基金会等。

核心解释:

  1. 推动和管理开源项目

开源组织负责管理多个开源项目,提供基础设施支持(如版本控制系统、代码仓库和文档托管),并确保项目的顺利运行。例如,Apache 基金会管理着数百个项目,提供组织性支持和法律保护,帮助项目在开源社区中健康发展【1】。开源组织的管理工作还包括制定项目的技术方向、协调不同开发者的贡献,并确保项目的整体质量。

开源组织在项目的协调和管理中发挥着重要作用,它们通过提供统一的基础设施和治理结构,降低了个人开发者或小型团队的负担,增强了项目的可持续性。

  1. 全球协作与自组织

开源组织的一个显著特点是它们依赖全球范围内的开发者协作。这些开发者来自不同的国家和背景,通过开源社区进行协作,贡献代码、反馈问题、修复漏洞并提出改进建议。Crowston等人【2】的研究表明,开源项目中的团队自组织能力是其成功的关键因素之一。团队成员通常没有正式的职位划分,而是通过贡献和协作自然形成分工,这种去中心化的工作方式促进了创新和灵活性。

自组织和去中心化的协作模式是开源组织成功的重要因素。全球开发者的贡献使项目能够快速适应变化,创新速度大大加快。这种开放的协作模式打破了传统的软件开发界限,增强了项目的灵活性和适应性。

  1. 维护和推广开源文化

开源组织不仅致力于软件的开发和维护,还积极推广开源文化。它们通过各种方式提升公众对开源的认识,例如组织开源会议、发布开源指南和推动开源政策。Linux 基金会通过培训计划、开源认证和倡导政策,推动全球范围内对开源技术的接受和普及。

通过推广开源文化,开源组织将开源软件的影响扩大到更广泛的领域。它们不仅促进了技术的进步,还帮助建立了一个基于协作和共享的创新生态系统。这种文化的推广为开源软件在全球范围内的广泛应用奠定了基础。

  1. 安全和法律支持

开源组织为其管理的项目提供法律支持,确保项目不侵犯第三方知识产权,同时保护开发者免受潜在的法律风险。例如,Linux 基金会通过其法律团队帮助开发者处理知识产权相关的事务。齐越等人还分析了开源软件供应链的安全风险,强调了开源组织在维护软件安全和防范风险方面的重要作用。

由于开源项目涉及全球范围内的开发者和贡献,法律和安全问题不可忽视。开源组织通过提供法律支持和风险管理,确保了项目的合规性和安全性,从而减少了开发者的顾虑,促进了项目的长远发展。

  1. 知名开源组织

全球范围内有多个知名的开源组织,各自负责不同领域的开源项目:

•Apache 基金会:负责管理如 Apache HTTP Server 等知名项目,专注于提供健全的项目治理和长期支持。 •Linux 基金会:推动 Linux 操作系统的发展,并通过培训、开源认证等推广开源技术。 •OpenStack 基金会:专注于云计算领域的开源项目,推动 OpenStack 等技术的社区发展。

不同的开源组织根据其专注领域和使命提供了各自的支持。它们通过项目治理、法律支持和全球协作,确保开源项目在复杂的软件生态中健康、可持续地发展。

参考文献:

1.Crowston K, Li Q, Wei K, et al. Self-organization of teams for free/libre open source software development[J]. Information and software technology, 2007, 49(6): 564-575. 2.齐越, 刘金芳, 李宁. 开源软件供应链国家安全风险分析[J]. 信息安全研究, 2021, 7(9): 790.

bifenglin commented 1 month ago

开源教育(Open Source Education)是指在教育中使用和推广开源软件,并将开源理念融入教学中。它不仅帮助教育机构降低软件成本,还促进了创新能力的培养,并为教育信息化和人才培育提供了新的路径。

核心解释:

  1. 降低成本与提高可访问性

开源教育通过使用开源软件,帮助教育机构大幅降低软件采购和维护成本。与传统的商业软件相比,开源软件的自由使用和修改权限使得教育机构能够灵活地定制和优化教学工具。此外,开源教育资源的广泛可用性也提高了教育资源的可访问性,使更多学生能够免费或低成本地获得高质量的学习工具和内容【1】。

通过开源软件和资源的应用,开源教育为欠发达地区和低预算教育机构提供了广泛的支持,从而帮助缩小教育数字鸿沟,提高了教育的公平性和普及度。

  1. 创新能力与动手实践的培养

开源教育不仅仅是使用开源软件,还倡导通过“做中学”的方式(Learn by Doing),帮助学生通过实际动手操作来理解技术和知识。学生可以参与开源社区,贡献代码、调试项目,从中学习协作开发的技能和解决问题的能力。Wiley【1】指出,开源教育通过强调动手实践,促进了学生创新能力的培养,并帮助他们在实际项目中积累经验,增强就业竞争力。

开源教育的动手实践教学模式,不仅提高了学生的技术水平,还培养了他们的创新思维和协作能力。通过参与开源项目,学生有机会接触到真实的技术场景,并从全球开发者的反馈中获得改进建议。

  1. 开放资源与共享文化

开源教育强调开放资源和知识共享的文化。开放教育资源(OER)的发展使得教育工作者可以自由获取和使用世界各地的教学材料,并根据具体需求进行修改和再分发。这种共享文化不仅促进了教育资源的传播,还为全球范围内的教育创新提供了支持。开源社区和教育工作者之间的协作使得教育资源不断完善,提升了教学效果。

开源教育的开放资源共享文化改变了传统的教育模式,使得知识的获取和传播更加广泛和高效。教育工作者可以更自由地共享和优化教学资源,推动了教育创新和教学质量的提升。

  1. 教育信息化与技术普及

开源教育在推动教育信息化方面发挥了重要作用。教育机构通过采用开源技术(如Moodle、Open edX等开源学习管理系统)来创建和管理在线学习平台,推动了远程教育和在线学习的发展。开源软件的可定制性使得教育机构能够根据自身需求进行调整,创建适合不同学习环境和教学目标的解决方案。

开源技术的应用加速了教育信息化的进程,为远程学习和个性化学习提供了广泛的技术支持。同时,开源教育工具的普及也为教育机构提供了灵活、可扩展的解决方案,推动了教育模式的数字化转型【2】。

  1. 人才培养与开源生态

开源教育不仅有助于培养具备开源软件开发和应用能力的人才,还推动了开源生态系统的可持续发展。通过将开源理念融入教学,学生在学习过程中能够参与全球开源社区的协作与贡献。这种参与有助于培养学生的技术能力、开源精神和协作意识,使他们成为未来技术创新的重要推动者【1】。

开源教育为人才培养提供了全新的路径,学生在学习过程中不仅获得了技术知识,还掌握了开源协作的基本理念和工作方式。这种教育模式不仅服务于学生个体的成长,还推动了整个开源社区的繁荣。

参考文献:

  1. Wiley D. Open source, openness, and higher education[J]. Innovate: Journal of Online Education, 2006, 3(1).
  2. https://www.sgpjbg.com/info/93a485b0bd09afdfd5e6c9fc39f18fc1.html
bifenglin commented 1 month ago

4.1 开源生态 开源软件生态系统(标准中有) 开源组织(标准中有) 开源基金会(标准中有)

标准中已有。使用标准中的概念