请选择语言

Salesforce 的开源故事 | 世界顶级企业开源故事系列之二

原文链接: https://github.com/todogroup/guides/blob/master/casestudies/salesforce.md

正文大纲
  1. Salesforce 开源计划的目标
  2. Salesforce 如何衡量开源成功
    1. 范例:Apache Phoenix
  3. 5 个开源计划经理的重要课程
  4. 受访者介绍

文章贡献者:Mike Linksvayer & Chris Aniszczyk

Salesforce 在早期就了解到,开源项目在拥有一个有兴趣使软件成功的多元化利益相关者社区时,就能保持健康发展。

Ian Varley,Salesforce 领导开源计划的软件架构师说:“Apache Phoenix 一开始在 Salesforce 只是自己的开源项目。但直到 Salesforce 之外的人也开始投入,使得项目不再依赖于一家公司的需求和愿望之后,它才找到成功之路。”在一个真正的社区协同努力中,来自其他公司的人加入也说出,“这对我们很有用,我们想贡献”。最终,这个多元化的社区让这个项目成为 Apache 项目,并纳入了公司自己的工程师们做梦也想不到的许多新功能。

Salesforce 将重点放在培养多元化利益来使用和参与 Salesforce 项目的概念。同时,它同样专注于将其内部利益相关者 —— 从工程、法律、营销和公关 —— 与它自身开源的努力相匹配。

Salesforce 开源计划的目标

Salesforce 在开源方面有许多优先事项。该公司的开源策略使每个人保持一致。专门设立的开源计划团队向公司的工程团队传播内部文档,提供战略指导,鼓励开源的创建和使用。这些文件为开源文化提供了基础,让团队毫不含糊地知道公司的领导人完全支持开源战略。

开源逐渐成为每个公司中所有软件项目的一部分。它的理由是,开源的每一种可能的商业模式都将可以建立并在市场上尝试。

Salesforce 是一个软件即服务(SaaS)的供应商,它没有发布或销售面向最终用户的开源产品。取而代之的是,工程团队将重点放在开源共享基础结构组件、库、工具、示例和软件开发包(SDK)上,其他公司可能会发现它们通常是有用并且有益于其客户。

Salesforce 如何衡量开源成功

公司开源计划的一个目标是在开发者中建立声誉。不使用 Salesforce 产品的工程师有时会看着公司的开源项目,并说:

“嘿,这个公司真的参与了一些伟大的事情。”

开源是外部开发人员看到公司内部正在进行伟大工程的一个窗口,他们原本无法做到这一点。

—— Salesforce 软件架构师 Ian Varley

Salesforce 开源计划还侧重于拓展与 Salesforce 自身开源项目能密切合作的诸多社区。这些社区不只是使用 Salesforce 的软件,同时也作出贡献。因此,Salesforce 开源计划专注于创建“接入点”到诸多开源项目里,例如为程序的补丁,改进的文档,健康的论坛,欢迎新贡献者等提供明确的审批程序,以及为积极响应的维护者创建的接入点。

Varley 说:“我们成功地提供给人们参与我们的项目的各种方法,不要求他们有博士学位或在类似的领域工作了 25 年。你需要提供让他们快速参与的方法。”

Salesforce 也基于全行业的成功标准衡量它自己的开源成功。在许多方面,开源的进展越多,对每个人都更有利,因为更多的开源意味着整个行业的更大的进步。如果 Salesforce 能提高商品软件的基准线,以及构成了大家都可以依赖的共享组件,那么整个行业就会受益。

范例:Apache Phoenix

作为 Apache 软件基金会的一部分,Apache Phoenix 是一个开源的大数据分析平台。但是,当 Phoenix 开始启动的时候,只是一个由几个 Salesforce 工程师为一些特定的内部使用案例而构建的项目。但是不久之前,这个小团队意识到,任何人都可以从这个项目中获益,如果全世界都在为这个项目努力的话,项目开发的速度将会提高。因此,他们在内部推动了这个项目的开源,并把它变成一个社区项目。

在创建 Phoenix 开源项目的第一年内,Salesforce 工程师开始在二或三家发现并希望加入 Phoenix 项目的大公司获得重要的功能贡献。通过开放项目到外部使用和获得贡献,Phoenix 项目的进展远远超出了原来的项目工程师自己能够做到的程度。

5 个开源计划经理的重要课程

回顾他在 Salesforce 管理开源的 4 年经验,Varley 对那些可能只是开始启动自己的开源计划的公司,有五个关键的教训:

  1. 创建一个全公司范围内强烈鼓励在内部使用和创建开源的政策。

  2. 认识到一个社区能够远远地超出内部自己埋头苦干而推进一个项目。

  3. 从诸多不同类型的利益相关者那里寻求对开源计划的投入。工程师们不应该是唯一的利益相关者,例如,您的法律团队和执行管理人员也应该直接参与其中。

  4. 专注于利用完善的文档和健康的论坛,为您的开源项目建立良好的“接入点”。

  5. 认识到开源的成功可以推动全行业的成功和遍地更好的产品。


受访者介绍

Ian Varley

  • 首席架构师,Salesforce.com - 在 Salesforce.com 核心工程团队工作

  • 应用程序开发总监,使用 Microsoft .Net 平台,开发数据库驱动的 Web 应用程序,供公司内部使用。

  • 科学老师,Woodside 修道院学校教 AP 计算机科学 (C++),七年级 Logo 编程,八年级 HTML、Javascript。以逻辑、探索和发现为重点的课程。

  • 软件开发人员,Embark

  • 软件开发人员,CollegeEdge