第2章 建立开源管理程序

​​​​​​https://www.linuxfoundation.org/wp-content/uploads/OpenSourceComplianceHandbook_2018_2ndEdition_DigitalEdition.pdf

 开源管理计划围绕开源软件的所有方面提供了一个结构,包括选择、批准、使用、分发、审计、库存、培训、社区参与和公共交流。

本章对开源管理程序中的各种要素进行了高级概述,调查了建立新的合规计划所面临的挑战,并就如何克服这些挑战提供了建议。

开源合规计划

我们从本章开始概述成功的开源合规计划所需的核心要素。 图 4 概述了我们在本章中讨论的这些基本要素。

 合规策略

开源合规策略推动了基于业务的对政策和流程实施主要方面的共识。 如果您不从高层共识开始,就政策细节和流程投资达成一致往往非常困难。 该战略确定了必须采取哪些措施来确保合规性,并为人员如何与开源软件交互提供了一套管理原则。 它包括批准、获取和使用开源的正式流程,以及发布包含在开源许可下许可的代码的软件的方法。

询问响应策略

开源合规政策是一组管理开源软件(使用和贡献)管理的规则。 流程是关于公司如何每天执行这些规则的详细规范。 合规政策和流程管理开源软件的使用、贡献、审计和分发的各个方面。

询问响应策略确定了公司在合规工作受到挑战时必须做什么。 一些公司收到了负面宣传——其中一些受到了正式的质疑——因为他们忽视了提供额外合规信息的请求,不知道如何处理合规查询,缺乏或有一个糟糕的开源合规计划,或者只是拒绝与查询者合作。 这些方法对任何相关方都没有成果或有益。

因此,公司应该有一个流程来处理收到的询问,确认收到,通知询问者他们将对其进行调查,并提供一个实际的跟进日期。 第 7 章讨论了管理开源合规性查询的简单过程。

政策和流程

开源合规政策是一组管理开源软件(使用和贡献)管理的规则。 流程是关于公司如何每天执行这些规则的详细规范。 合规政策和流程管理开源软件的使用、贡献、审计和分发的各个方面

图 5 展示了一个示例合规流程,其中每个软件组件将作为尽职调查的一部分经历的各个步骤。 第 4 章专门讨论合规流程。

合规团队

开源合规团队是一个跨领域小组,由各种负责确保开源合规的个人组成。 核心团队通常称为开源审查委员会 (OSRB),由工程和产品团队的代表、一名或多名法律顾问和合规官组成。 扩展团队由多个部门的各种个人组成,他们持续为合规工作做出贡献:文档、供应链、企业发展、IT、本地化和开源执行委员会 (OSEC)。 但是,与核心团队不同的是,扩展团队的成员仅根据他们从 OSRB 收到的任务,兼职从事合规工作。

图 6 说明了实现合规性所涉及的两个团队:核心团队和扩展团队。 第 3 章详细讨论了参与实现开源合规性的个人的角色和责任。

工具

开源合规团队使用多种工具来自动化和促进源代码审计以及开源代码及其许可证的发现。 此类工具包括:

  • 合规项目管理工具,用于管理合规项目并跟踪任务和资源。
  • 一种软件清单工具,用于跟踪使用它的每个软件组件、版本和产品以及其他相关信息。
  • 源代码扫描和许可证识别工具,可帮助识别构建系统中包含的源代码的来源和许可证。 第 12 章探讨了公司可以用来评估和比较市场上此类现有工具的各种指标。
  • 一种链接分析工具,用于识别任何给定 C/C++ 软件组件与产品中使用的其他软件组件的交互。 该工具将允许您发现不符合公司政策的源代码包之间的链接。 目标是确定是否有任何开源义务延伸到专有或第三方软件组件。 如果发现链接问题,除了关于如何解决问题的建议外,还会向工程部门分配一个错误单,其中包含该问题的描述。
  • 一种代码审查工具,用于在披露之前审查对原始源代码引入的更改,作为履行许可义务的一部分。
  • 一种物料清单 (BOM) 差异工具,用于在给定两种不同构建的情况下识别对任何给定产品的 BOM 引入的更改。 该工具在指导增量合规工作方面非常有帮助。

网站

公司在两个方向使用门户:向内,在公司内部; 向外,作为通往世界和开源社区的窗口。 内部门户托管合规政策、指南、文档、培训、公告和对邮件列表的访问。 外部门户为世界和开源社区提供了一个公共平台,以及发布开源包源代码、通知和其他披露的场所,以履行许可义务。

培训

培训是合规计划的重要组成部分,有助于确保员工对管理开源软件使用的政策有很好的理解。 提供正式或非正式的开源和合规培训的目标是提高对开源政策和战略的认识,并围绕开源许可的问题和事实以及纳入开源的商业和法律风险建立共识 产品和/或软件组合中的源软件。 培训还可以作为在组织内宣传和推广合规政策和流程以及培养合规文化的场所。

正式培训

根据公司的规模及其商业产品中包含开源的程度,公司可以要求从事开源工作的员工参加正式的讲师指导课程,最终可能会通过实际考试。

非正式培训

非正式培训渠道可能包括以下任何或全部:

午餐研讨会:

午餐研讨会通常是由公司员工或受邀演讲者在午餐时间进行的演示。 这些午餐研讨会的目标是展示和引发对将开源纳入商业产品或企业软件组合的各个方面的讨论。 这些会议还可以包括对公司合规计划、政策和流程的讨论;

新员工入职培训:

在某些情况下,合规官向新员工介绍公司的合规工作、规则、政策和流程,作为员工入职培训的一部分,为新员工提供必要的开源管理信息:与谁交谈,内部有什么 要访问的网站,如何注册开源和合规培训等。

自动化

希望使用或为开源软件做出贡献的开发人员将被要求提交在线请求并获得适当的批准。 这个过程最好通过一个自动化的在线系统来管理,通常是一个bug 跟踪系统,它有一个专门设计的工作流程来适应开源合规性的管理。

信息传递

内部和外部的信息传递是任何合规计划的组成部分。 关于信息传递的一个最重要的建议是清晰和一致,无论是在内部向您的员工解释公司的目标和对开源的关注,还是在外部向您在产品/软件中使用的开源项目的开发人员社区解释 堆。

行业项目

已经有几个行业计划旨在简化和实现更好的开源合规性,例如 Software Packaged Data Exchange® (SPDX)、OpenChain、Linux Foundation Open Compliance Program 和 TODO Group。 我们将在整本书中讨论这些举措。 我们建议公司参与这些举措,以获取更多知识并支持其内部合规工作。

合规挑战和解决方案

公司几乎肯定会面临建立开源合规计划的挑战。 在以下部分中,我们将探讨五个常见挑战,并就如何克服这些挑战提出建议。

创建合规计划

第一个挑战是平衡合规计划及其支持基础设施与(现有)内部流程,同时满足交付产品和启动服务的最后期限。 各种方法可以帮助缓解或解决这些挑战,并有助于创建一个确实给开发活动带来负担的简化程序。

建议的解决方案

行政支持
高管层对开源管理计划的长期承诺对于确保成功和连续性至关重要。

轻量级政策和流程

流程和政策很重要; 但是,它们必须轻巧高效,这样开发团队才不会认为它们对开发过程来说过于繁重。 根据两个重要的基本要素简化开源管理:简单明了的合规政策和轻量级的合规流程。

遵守基本规则

作为建立合规计划的一部分,您需要创建一些每个人都必须遵守的简单规则:

  • 要求开发人员为他们计划合并到软件堆栈产品中的任何开源软件填写申请表。
  • 要求第三方软件供应商披露有关其可交付成果中包含的开源软件的信息。 您的软件供应商可能没有很好的开源合规实践。 因此,一般建议公司更新其合同协议,包括披露与开源相关的语言并澄清与开源合规性相关的所有事项。
  • 授权开源审查委员会 (OSRB:Open Source Review Board) 进行架构审查和代码检查,以了解软件组件如何相互关联,并发现可以从开源软件传播到专有软件的许可义务。 您将需要适当的工具来适应大规模操作。
  • 扫描从第三方软件提供商处收到的所有传入软件,并确保他们的开源披露是正确和完整的。

在开发过程中整合合规性
建立合规性的最成功方法是将合规流程和政策、检查点和活动合并为现有软件开发流程的一部分。

长期目标与短期执行

图 4 描述了成功的合规计划所需的基本要素。 一些团队成员可能对实施如此完整的程序所需的工作量感到不知所措。 实际上,这并不是很困难,因为您不必同时实现所有元素。 所有组织的首要任务是按时交付产品和服务,同时构建和扩展其内部开源合规性基础设施。 因此,您应该在开发过程中一直持续构建合规性基础架构,同时牢记未来活动和产品的可扩展性。 关键是周全和现实的规划。

建议的解决方案

  • 规划一个可以满足您的长期目标的完整合规性基础架构,然后仅根据短期执行的需要逐步实施这些要素。 例如,如果您刚刚开始开发包含开源的产品或提供服务,并且您还没有任何合规基础设施,那么当务之急应该是建立合规团队、流程和政策、工具和自动化, 并培训您的员工。 在启动了这些活动(按此顺序)并很好地掌握了构建系统(从合规性角度来看)之后,您可以继续处理其他程序元素。
  • 建立基本的政策和流程。
  • 将合规里程碑作为开发过程的一部分。

合规性沟通

沟通对于确保合规活动的成功至关重要。 公司应该考虑两种重要的沟通类型:组织内部的内部沟通,以及针对其产品中使用的开源项目的开发人员社区以及针对其产品的最终用户的外部沟通。

内部交流

公司需要进行内部合规沟通,以确保员工了解将开源纳入商业软件组合时所涉及的内容,并确保他们了解公司的合规政策、流程和指南。 内部沟通可以采取以下几种形式中的任何一种:

  • 提供行政支持的电子邮件沟通;
  • 对所有使用开源软件的员工进行正式培训;
  • 午餐时间 开源和合规研讨会,带来额外的合规意识并促进积极讨论;
  • 一个内部开源门户,用于托管公司的合规政策和程序、开源相关的出版物和演示文稿、邮件列表以及与开源和合规相关的讨论论坛;
  • 公司范围内的开源通讯,通常每隔一个月或每季度发送一次,以提高对开源合规性的认识

对外交流
公司需要外部合规沟通,以确保开源社区了解他们为履行他们在其产品中使用的开源软件的许可义务所做的努力。

  • 外部沟通可以采用以下几种形式之一:
  • 专门为合规目的发布开源软件的网站
  • 开源组织的外展和支持:此类活动对于帮助公司与开源组织建立关系、了解这些组织的角色以及在有意义的情况下为他们的努力做出贡献非常重要
  • 参与开源活动和会议:参与可以在各个层面,从赞助活动到贡献演示文稿和出版物,或者只是派开发人员参加并与开源开发人员会面,并与开源社区成员建立新的关系

建立合规的软件基线

启动合规计划时的最初挑战之一是准确找到正在使用的开源软件以及可用的许可证。 我们经常将这个初始审计过程称为为产品或软件堆栈建立一个干净的合规基线。

建立合规基线的活动是一项在一段时间内的密集活动,可能会持续数月,具体取决于您在开发活动的同时开始合规活动的时间。

建议的解决方案
组织通过以下活动实现初步合规:

  • 尽早提交和审查开源使用请求
  • 基于所有源代码的预定义时间间隔的连续自动化源代码
  • 持续扫描源代码库,包括从第三方软件提供商处收到的代码,以拦截在没有相应合规票据的情况下签入代码库的源代码。 例如,可以安排这样的源代码扫描每月运行一次。
  • 除代码检查外,还需强制进行设计和架构审查,以分析开源、专有代码和第三方软件组件之间的交互。 仅当给定交互可能调用许可证合规义务时,此类审查才是强制性的

如果一家公司未能建立基线合规性,则他们在同一产品(或使用初始基线代码的其他产品/服务)的任何未来修订版中必将面临合规性挑战。 为防范此类情况,公司应考虑以下事项:

  • 实施轻量级政策和流程,为管理开源软件的引入设定框架。
  • 将合规检查点作为软件开发过程的一部分。 理想情况下,对于每个开发里程碑,您都可以合并相应的合规里程碑,确保构建中使用的所有软件组件都具有平行且经过批准的合规票证。
  • 确保有专门的合规团队可用。 第 3 章详细介绍了这个主题。
  • 利用工具和自动化来支持合规票证的高效处理。 我们在整本书中都在讨论这个话题。 第 12 章重点介绍了评估源代码扫描工具的各种标准。

保持合规

维护开源合规性有几个挑战,类似于建立基线合规性时面临的挑战,但较小的增量规模。

保持合规是一项持续的努力,它依赖于将合规活动纳入现有工程和业务流程的纪律和承诺。 图 7 说明了增量合规的概念。 增量合规性是确保版本之间合规性的行为,涵盖了最后一个合规代码基线和当前源代码库之间的增量。

 建议的解决方案

公司可以通过以下活动保持增量合规:

  • 遵守公司的合规政策和流程,以及提供的任何指导方针
  • 对集成在代码库中的所有源代码进行持续审计,无论其来源如何
  • 不断改进用于确保合规性和自动化尽可能多的流程的工具,以确保高效执行合规性计划

制度化和可持续性

随着组织的发展和在新产品和服务中部署更多开源软件,维护开源合规性活动是一项持续的挑战。 公司可以采取几个步骤在其发展文化中将合规制度化,并确保其可持续性。

建议的解决方案


赞助
高管层的承诺对于确保合规活动的可持续性至关重要。 一位公司高管需要成为开源合规计划的支持者和财务赞助商。 

一致性

在拥有多个业务部门和子公司的大公司中,实现整个公司的一致性是关键。 一致的方法有助于记录保存,并有助于跨组共享最佳实践、工具、指南和源代码。 在拥有多个业务部门的大公司中,一致性管理合规性是强制性的。

量化和分析
衡量和分析合规活动、流程和程序的影响和有效性,以改进合规计划。 如果您无法测量特定功能,则很难改进它。 在推广合规计划时,指标将帮助您传达每个计划要素所带来的生产力优势。

完善合规流程

 组织使用开源的范围和性质是动态的——取决于产品、技术、合并、收购、离岸开发活动和许多其他因素。 因此,有必要不断审查合规政策和流程并进行改进。
此外,开源许可解释、法律合规风险和版权拖钓不断发展。 合规计划也必须发展,以通过更好和改进的工程和合规实践来减轻此类风险。

执行实施
有效的合规计划应包括持续监控计划遵守情况以及在整个组织内执行政策、程序和指导方针的机制。 执行合规计划的一种方法是将其集成到软件开发过程中。 一些公司更进一步,确保其员工绩效评估的特定部分取决于他们在个人和集团层面对合规计划活动的承诺和执行情况。

人员配备
公司必须确保为合规职能部门分配适当的人员,并为所有员工提供充分的合规培训。 在较大的组织中,合规官和相关角色是 FTE(full time equivalents:相当于全职); 在较小的组织中,合规责任很可能是一项共同的和/或兼职的活动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值