我在一家专注于为金融机构交付软件产品的私有 ISV 和咨询公司工作。三年前,我们公司决定通过发布我们的金融交易处理应用程序 FinTP,以开源许可证的形式分享我们的成就和知识。
在这里,我将探讨一家公司在从传统商业模式过渡到支持开源的商业模式时必须进行的变革。这基于我们使用一个曾经是商业解决方案的九年经验。这种转型的动力来自于我们公司希望在这个不断变化和充满挑战的行业中处于领导地位的雄心。
开源的共享文化是我们前进的方向,因为我们相信,通过与整个专业人士社区的智力合作,他们与我们拥有相同的价值观,我们可以交付最佳结果。最近关于金融行业的研究表明,通过使用开源,公司能够协同开发用于处理交易或监管合规的非差异化软件,这是所有金融机构都需要的基础设施和框架。
首先,我们选择了指导团队的原则,并选择了开源许可证。然后,我们围绕项目建立了合适的环境,为当前的客户群以及潜在的社区和用户群鼓励积极的条件。这帮助我们开始吸引贡献者和采用者加入该项目。
以开放平台的形式发布我们的应用程序已经影响了公司的核心业务和运营工作流程,因此必须进行 drastic 的更改。FinTP 项目和围绕它建立的社区必须比商业产品获得更多的关注,因为需要投资于开发和维护项目,以及积极地将新成员整合到社区中。
以下是我们是如何做的。
调整专有解决方案
开源应用程序必须满足的要求是明确的,但实现这些要求是发人深省的。需要处理的最重要的更改之一与对第三方嵌入式产品的支持有关。以前,只支持企业版本的先决条件,因此必须进行返工。开源版本支持企业数据库、面向消息的中间件和应用服务器的最佳开源替代方案。应用程序中包含的所有代码都必须符合许可要求才能发布。此外,内部开发人员工具、工作项跟踪和源代码控制系统的开源替代方案也必须集成。
关于产品文档和工作程序,在商业版本中实施的命名约定、编码指南和最佳实践必须进行调整,以满足在开放社区中工作的特定需求。我们发现有必要在发布开源产品准备阶段增加一个步骤:我们在 fintp.org 上共享了 FinTP,这是一个受控访问的平台,允许我们在将其发布到开源存储库之前微调社区规则、流程和产品。
构建开源社区
当将闭源产品过渡到开源产品时,构建一个强大而充满活力的社区是最重要的部分。首先,让我们看看封闭社区和开放社区之间的区别。开放社区由 任何人、所有社区成员做出奖励性贡献组成。代码是开放检查的,因此任何人都可以修复问题、开发新功能并以审核形式贡献代码。对于任何给定的问题,都有可能有很多双眼睛在查看它。封闭社区由 提供商和客户群组成,并且 查看任何给定问题的最大人数始终受到雇用开发人员总数的限制。
在我们从封闭社区过渡到开放社区的早期阶段,我们运行着一艘严密的船:我们是唯一负责跟上金融行业不断发展的标准、开发主要新功能和审查贡献代码的人。随着时间的推移,基于贡献的价值,新的层级出现。每个成员在我们的开源社区中都具有以下优势:影响项目的能力、吸引和留住开发人才、降低开发和维护成本。
改变商业模式
传统的商业模式是基于通过销售软件许可证、维护费和专业服务来获得收入。当决定将主要产品作为免费和开源发布时,这种模式就会被颠覆。我们有机会从 FinTP 的一项为期一年的咨询计划中受益,该计划由一家著名的国际金融机构共同资助。
对于企业而言,目标是建立新的商业模式和工作流程,调整内部流程,调整组织结构。对于社区而言,目标是提出治理结构,包括法律方面、工作流程和营销材料。
FinTP 项目现在已设置为为银行、企业、公共管理部门和小额信贷机构处理金融交易提供这些构建块
- 帮助巩固业务工作流程
- 为各种市场基础设施创建灵活的接口
- 处理各种资金转移(如信用转账、直接借记、借记工具、国库资金流),同时提供安全操作和重复检测
- 获得多项运营功能(如流动性报告、会计对账、AML 交易过滤、汇款管理和竞争报告)
7 条评论