标签 律师 下的文章

开源法规对成功有不同寻常的要求。一起来了解开源组织的律师如何帮助其雇主找到可行路径。

正如我在这个分为两部分的系列文章的第一部分中所分享的那样,我是 红帽公司 ( Red Hat ) 的一名开源律师。我工作中的一个重要部分是向其他公司(包括其内部法律顾问)提供有关红帽公司如何采用完全开源的开发模式来构建企业级产品的信息,并回答他们有关开源许可的一般问题。在听了红帽公司的成功经验之后,这些律师与我对话的话题常常转变为其所在组织如何发展成为更具开源意识和能力的组织,他们也经常询问我如何改善他们的做法,以便更熟练地为其组织的雇员提供开源法律咨询。在这两篇文章中,我将分享我通常在这些主题上告诉内部法律顾问的那些内容。

总是要找到一条可行路径

我的雇主红帽公司在使用开源软件方面的独特之处在于,我们的开发模式始于具有数千名贡献者的开源社区,并产生了经受过尝试、测试和信任的最终产品。更具体地说,通过我们独特的开发模式,我们从社区创建的开源软件开始,并在每个项目的基础上加强安全性,修复错误,修补漏洞并添加新功能。然后,我们将这些改进回馈给每个项目,以便使整个开源社区受益。此方法的效用非常重要,包括:

  1. 通过内部团队与组织外部其他人之间的协作来利用外部创新;
  2. 当现有或潜在的社区与您在同一问题上开展工作而且能够合作时,可以避免您自己开发和维护开源解决方案的成本和效率低下的问题;
  3. 通过与合作伙伴和上游项目社区的富有成效的合作,能够避免维护主项目下游分支的昂贵代价。

    • 一些公司发现创建上游代码的非公共分支很诱人,因为它是解决特定 用例 use case 的快速方法,或者因为它们不愿意在社区中进行协作。然而,由于增加的开发成本、互操作性损失和其他原因,这种分支的长期维护负担可能是令人望而却步的。相比之下,将开发集中在原始上游社区中,可以在所有参与者之间分担开发成本。

除少数例外(例如红帽公司)外,大多数使用开源软件的组织可能都拥有专有软件许可模式(或与 SaaS 等效的概念),并在其业务中对专有软件进行许可。这些组织认为他们拥有可以提供某些竞争优势的软件组件,并且不希望看到这些组件在开源条款下对其他人可用。这是可以理解的。但是,我会鼓励任何咨询此类问题的开源律师来敦促其客户采用开源开发模式,尤其是对于所有无差异且通用的软件。

例如,如果您的公司开发了用于手机的应用程序,并且您需要一个软件模块来读取和写入 PNG 图像文件,那么使用 GitHub 上流行的开源 PNG 软件模块之一将便宜得多。对于您的业务而言,对 PNG 图像进行编码和解码可能是无差别的,那么为什么要花费宝贵的工程时间来编写自己的版本?此外,为此功能编写自己的模块也可能会导致与使用常用开源模块的其他软件的兼容性问题。这是为什么呢?尽管您的模块和开源模块可能已被编写为对已发布的 PNG 规范进行编码和解码,但有时对规范的解释可能会有所不同,也可能会出现实施错误。使用同一模块执行此功能的每个人都可以确保大多数用户的兼容性,并降低开发和维护成本。

还必须意识到,您可能需要某些软件来保持专有性,并且不受开源条款的约束。取决于您系统的软件体系架构和所使用的开源许可证,除非采取某些措施(超出本文的范围),否则打算保留专有权的软件代码可能会受到开源许可证条款的约束。在这里向客户提供一些有关许可证选择和体系架构的咨询服务将变得很有用。

寻找灵活的解决方案

之前主要许可专有软件的组织逐渐增加了对开源软件的使用,但审核和批准的要求可能会增长(以我的经验甚至成倍增长)。由于资源限制,这样的组织可能会陷入困境。下面介绍了一些可以采用的灵活的解决方案。

授权并委托他人

律师不能也不应成为看门人。那样效率低下,并且肯定会导致开发和发布时间出现瓶颈,从而产生挫败感和收入损失。相反,应将审批权限授予产品或项目管理和工程领域有能力的个人。这可以让组织有效地保持灵活性。对客户进行教育(请参阅下一节)对于成功实现这一点至关重要。

我采用的一种方法是为整个工程组织提供开源培训,以便他们可以进行基本的许可模式和体系架构选择,同时为软件开发人员提供更专业的培训,以使他们能够提供更复杂的指导和决策。也要考虑在每个级别上对权限进行明确限制,包括哪些类型的问题和决定必须上报给作为他们开源律师的您。您组织的特定授权级别将取决于您团队在开源方面的经验以及对某些开源问题的敏感性。

教育客户

我发现培训是将您的组织迁移到更具开源意识组织的最有效工具之一。培训您的软件工程师和产品经理至关重要。让我详细说明。

尽管您的软件工程师处在最前沿,并且通常可能对开源问题和软件许可非常了解,但是基于您组织的特定要求对他们进行培训仍然很重要。例如,您的公司可能只允许使用宽松的开源许可证,并且可能对其版权声明和源代码可用性有某些要求。为避免开发中出现随后必须纠正的问题(一种昂贵且耗时的实践),最好培训工程师最大程度地减少不当行为的可能性,尤其是在所有开发过程的开始时(请参阅下一节)。

产品经理也必须接受培训。在许多公司中,产品经理负责营销的经典四个环节(产品、价格、定位和促销),并负责产品从生到死的整个生命周期。产品经理工作的方方面面可能会受到使用开源软件的影响。出于上述相同的原因,了解使用开源软件的要求对他们很有用。此外,更重要的是,产品经理在组织中的重要影响,意味着他们通常能够对流程和政策进行必要的更改。产品经理可能会成为您针对“开放”进行流程变更的最强有力的拥护者之一。

早期发现

在开发过程快要结束时解决开源许可问题非常困难且成本很高。随着软件的发布日期临近,体系架构和开源软件模块都是已经选定且难以更改了。如果检测到问题,例如专有软件模块中嵌入的“左版”(copyleft)软件(当该专有模块无意受开源条款约束时),则在该开发阶段修改体系架构或模块可能非常困难且成本昂贵。相反,应该在开发过程中尽早进行架构分析和开源模块选择的过程,以便可以进行成本更低且更有效的更正。

开源法规的“奖励”

实践开源法规是一项有益的职业,因为它具有影响组织朝着“开放”方向发展的能力,这具有很大的好处。是否成功取决于您随着组织的成长和成熟而找到具备可行性和灵活性的解决方案的能力。


作者简介:Jeffrey R. Kaufman 是全球领先的开源软件解决方案供应商 红帽公司 ( Red Hat ) 开源法务团队的资深商务法律顾问,还担任 北卡罗来纳大学 ( University of North Carolina ) 的兼职法律教授。在任职红帽公司之前,Jeffrey 曾担任 高通公司 ( Qualcomm ) 的专利和开源法律顾问。

译者简介:薛亮,集慧智佳知识产权咨询公司互联网事业部总监,擅长专利分析、专利布局、竞争对手跟踪、FTO 分析、开源软件知识产权风险分析,致力于为互联网企业、高科技公司提供知识产权咨询服务。

开源法规之所以独特,是因为它对成功的要求比较特殊。一起来了解开源组织的律师如何帮助其雇主达成目标。

我是 红帽公司 ( Red Hat ) 的一名开源律师,我工作中的一个重要部分是向其他公司(包括其内部法律顾问)提供有关红帽公司如何采用完全开源的开发模式来构建企业级产品的信息,并回答他们有关开源许可的一般问题。在听了红帽公司的成功经验之后,这些律师与我对话的话题常常转变为其所在组织如何发展成为更具开源意识和能力的组织,他们也经常询问我如何改善他们的做法,以便更熟练地为其组织的雇员提供开源法律咨询。

在本文和下一篇文章中,我想阐述一下针对这些话题我通常对企业内部法律顾问是怎么说的。如果你不是内部法律顾问,而是在软件领域为客户提供法律服务的律师事务所,你可能还会发现此信息也很有用。(如果你正在考虑上法学院并成为一名开源律师,则应在进入开源律师职业之前阅读 Luis Villa 的出色文章《在入坑成为开源律师之前先要知道的那些事儿》)

我的观点基于我在各种工程实践、产品管理和律师职位上的个人经验,并且这种经验可能非常独特。我的非典型背景意味着我能通过与大多数律师不同的视角看世界。因此,下面介绍的想法可能不是传统做法,但是在我的实践中它们对我很有帮助,希望对你也有所帮助。

一、与开源组织保持联系

许多开源组织对开源律师来说特别有用,其中不少组织对开源许可协议的观点和解释具有可以衡量的影响。可以考虑加入一些著名组织,例如 开源促进组织 ( Open Source Initiative ) (OSI)、 软件自由保护组织 ( Software Freedom Conservancy ) 、 软件自由法律中心 ( Software Freedom Law Center ) 、 自由软件基金会 ( Free Software Foundation ) (FSF)、 欧洲自由软件基金会 ( Free Software Foundation Europe ) 和 Linux 基金会 ( Linux Foundation ) 。还有许多有用的邮件列表值得追踪甚至参与,例如 OSI 有关许可协议讨论和许可协议审查的邮件列表。

参加这些组织和列表将帮助你了解在落实开源法规时可能遇到的无数独特问题,比如社区如何解释开源许可协议文本里的各种术语。没有什么判例法可以指导你,但是有很多人乐于帮助你回答问题,这些资源是最好的指导来源。这也许是落实开源法规的非常独特而令人惊奇的一个方面——开发社区的开放性与法律社区提供观点和建议的开放性相匹配。你只要问就行啦!

二、采用业务经理的思维方式,并找到实现目标的途径

产品经理最终要对产品或服务的全周期负责,其中当然也包括让其产品或服务进入市场。由于我的职业生涯的大部分时间都花在服务产品管理型组织上,所以我的思路是无论如何要寻找一条途径,将可行的产品或服务推向市场。我鼓励所有律师都采用这种思维方式,因为产品和服务是所有企业的命脉。

因此,在发现问题并为面临风险的客户提供建议的法律实践中,我一直采用的方法是始终以寻找通向“YES”的途径为目标,尤其是当我的分析影响产品/服务开发和发布时。在为企业内部评估法律问题时,我的团队或我有时可能会认为风险过高。在这种情况下,请继续鼓励每个人都致力于去解决问题,因为以我的经验,解决方案最终会以一种意想不到的方式呈现出来。

确保利用你的所有资源,包括你的软件开发客户(参见下文),因为它们可以成为解决问题(通常使用技术来解决问题)的创造性方法的绝佳来源。我对这种方法感到非常高兴,我的客户似乎也对此感到满意。我鼓励所有律师考虑这种做法。

可悲的是,内部法律顾问出于自我保护总是很容易说“NO”,并消除可能对企业造成任何风险的因素。我总是发现这种回应是站不住脚的。所有商业交易都有风险。作为法律顾问,你必须了解这些风险并将其呈现给你的客户,以便他们做出有根据的业务决策。在存在任何风险时简单地说“NO”,而没有提供任何缓解风险的其他情境或途径,对组织的长期成功不利。企业需要提供产品和服务才能生存,你应该尽可能地帮助它找到通向“YES”的道路。当然,在某些情况下,你可以负有道德责任地说“NO”,但首先请穷尽所有合理的选择。

三、与开发人员建立积极关系

与你的软件开发客户建立积极关系绝对至关重要。融洽和信任是加强这些关系的两种重要方法。

1、融洽

你作为开源律师的成功通常是与软件开发人员建立积极关系的直接结果。在许多情况下,你的软件开发人员是你的法律建议的直接或间接接受者,他们将寻求你的指导和咨询。不幸的是,许多软件开发人员对律师持怀疑态度,并经常将律师视为其开发和发布软件能力的障碍。克服这种弊端的最好方法是与客户建立融洽的关系。对于大多数人来说,操作方式有所不同,但是这里有一些建议。

对客户的工作表现出兴趣:对他们项目的细节、项目的工作方式、底层的编程语言、它如何与其他系统连接以及如何使公司受益感到好奇。在确定法律风险和减轻风险的方法时,其中一些答案将在你的法律分析中很有用,但是更重要的是,这为与客户保持积极的关系打下了坚实的基础。

让你的客户清楚,你正在努力寻找通向“YES”的途径:让你的客户知道你对他们项目的某些方面感到担忧,但随后提出减轻这些担忧的想法。向他们保证,与他们一起找到解决方案,而不是成为障碍。但是这里面不能夸大其词。

参与一个开源项目:如果你具有软件开发经验,则尤其应当如此。即使你没有这样的经验,也可以通过多种方式参与,例如帮助编制文档或进行社区拓展。或仅仅是为了更多地了解他们的工作,要求参加他们的进度会议。这也让你可以按需实时提供顾问服务,以便团队可以在此过程的早期进行纠正。

2、信任

你的软件开发人员在其开源社区中非常活跃,并且是了解当前影响开源软件和开发问题的最佳资源。当你与当地的律师协会或国家层面的法律组织等保持联系,以了解最新法律进展时,你还应该与各种软件开发资源进行定期沟通,并就各种事项征求他们的意见(例如,对于此许可协议应用于某项目,社区的观点是什么?)。

四、关系造就成功

开源法规之所以独特,是因为其对成功的不寻常要求,其成功即是与其他开源律师、开源组织的联系以及与客户的深厚和互相尊重的关系。成功是这些关系的直接成果。

在本系列的第二部分中,我将探讨为什么给你的组织找到“开放”之路并开发可扩展的解决方案是如此重要,并告诉你如何去做。


作者简介:Jeffrey R. Kaufman 是全球领先的开源软件解决方案供应商 红帽公司 ( Red Hat ) 开源法务团队的资深商务法律顾问,还担任 北卡罗来纳大学 ( University of North Carolina ) 的兼职法律教授。在任职红帽公司之前,Jeffrey 曾担任 高通公司 ( Qualcomm ) 的专利和开源法律顾问。

译者简介:薛亮,集慧智佳知识产权咨询公司互联网事业部总监,擅长专利分析、专利布局、竞争对手跟踪、FTO 分析、开源软件知识产权风险分析,致力于为互联网企业、高科技公司提供知识产权咨询服务。