编者按:
本文所有内容皆以 CC- BY- SA 4.0 创作共用许可证 ( Creative Commons ) 授权。
| 原文链接:https://github.com/todogroup/guides/blob/master/casestudies/salesforce.md
| 文章贡献者: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 对那些可能只是开始启动自己的开源计划的公司, 有五个关键的教训:
一,创建一个全公司范围内强烈鼓励在内部使用和创建开源的政策 。
二,认识到一个社区能够远远地超出内部自己埋头苦干而推进一个项目。
三,从诸多不同类型的利益相关者那里寻求对开源计划的投入。工程师们不应该是唯一的利益相关者, 例如, 您的法律团队和执行管理人员也应该直接参与其中。
四,专注于利用完善的文档和健康的论坛,为您的开源项目建立良好的 "接入点" 。
五,认识到开源的成功可以推动全行业的成功和遍地更好的产品。
受访者介绍
Ian Varley
-- 首席架构师, Salesforce.com - 在 Salesforce.com 核心工程团队工作
--应用程序开发总监, 使用 Microsoft .Net 平台, 开发数据库驱动的 web 应用程序, 供公司内部使用。
-- 科学老师, Woodside 修道院学校教 AP 计算机科学 (C++), 七年级 Logo 编程, 八年级 HTML, Javascript。以逻辑、探索和发现为重点的课程。
-- 软件开发人员, Embark
-- 软件开发人员, CollegeEdge