我曾经供职于一家私营独立软件开发及咨询公司,这家企业专门为金融机构提供软件产品。三年前,我所在的公司决定把自己的成就与知识通过应用程序产品--也就是FinTP--与大家分享,从而使金融交易处理步入开源时代。 在这里,我将与大家探讨一家从事交易服务的公司在从传统业务模式向开源业务模式转变时,需要作出哪些变革与调整。文章中提到的结论来自这家公司在九年时间中打理曾经的商业解决方案时所积累的丰富经验。而如此彻底的变革动机则源自公司领导层希望在这个瞬息万变、挑战频发的行业中取得领先地位的决心。 开源共享文化一直是企业的前进方向,因为我们坚信通过与其它报有相同价值观的业界顶尖专业人士进行协作,我们终将拿出最出色的解决方案。最近金融行业的多项研究结果表明,在开源机制的辅助下、企业得以通过协作方式开发用于处理交易或者合规性工作的非差异化软件,而这样的趋势符合所有金融机构的实际需要与根本利益。 首先,我们选择了有能力领导团队的指引者,同时选定了一套开源许可机制。接下来,我们通过鼓励当前客户群体与潜在社区及用户群体为项目奠定了良好的发展环境基础。这将帮助我们的项目吸引到更多贡献者与使用者。 将我们的应用程序发布为开放平台已经给公司的核心业务及运营流程造成了巨大影响,因此必须作出重大变革以与之相适应。FinTP项目以及围绕它建立起来的社区需要获得远超过商业版本产品的更多关注,因为我们不光要继续在项目的开发与维护方面倾注心力、同时也得积极将新成员纳入社区当中。 下面我向大家介绍公司的具体处理方式。 改造原本的专有解决方案 开源应用程序需要满足的要求非常明确,但要实现这些要求却没那么简单。其中最重要的变更之一在于为大量第三方嵌入式产品提供支持。原先我们只需要为企业级版本的方案提供支持,但现在支持范围无疑发生了强制性扩展。产品的开源版本需要支持各类功能组件的最佳开源替代品,其中包括企业数据库、面向消息的中间件以及应用程序服务器等。应用程序所包含的所有代码都必须遵循许可要求进行重新编译,这样才能符合发布要求。另外,我们还需要物色内部开发者工具、工作项目追踪以及资源控制系统等需要整合的开源替代方案 而在产品文档与工作规程方面,命名机制、编码指南以及商业版本中的最佳实践等必须经过适当调整,从而满足开放社区当中的特定工作需求。我们发现在将产品以开源形式发布之前,有一个额外准备步骤非常重要:我们将FinTP共享到fintp.org上,这是一套只允许受控访问的平台,能帮助我们在实际发布开放源代码库之前妥善调整社区规则、流程以及产品方案。 建立开源社区 当大家着手将一款闭源产品转向开源时,建立一个强大而充满活力的社区是其中最重要的部分。首先,让我们看看封装社区与开放社区之间的区别。开放社区是由每一位成员所作出的贡献以及由此获得的报酬所组成。其中的代码允许开放性检查,这样每一位参与者都能够解决问题、开发新功能,并以平缓的节奏提供代码贡献。对于任何给定问题,大量社区成员都会加以关注并思考解决的可能性。相比之下,封装社区是由供应方与客户群体所组成,数量最庞大的客户在面对给定问题时往往束手无策、只能等着数量有限的内部开发人员们逐一处理。 在我们由闭源社区向开源社区过渡的初级阶段,大家应当保持严明的纪委要求:我们的负责在于紧跟金融行业不断发展的现行标准,以此为基础制定主要功能并复审已经贡献的代码。随着时间的推移,根据贡献价值的不断积累,新的层级结构将逐渐形成。每一位成员都能在我们的开源社区中受益,包括影响其它项目、吸引并留住开发人才、降低开发与维护成本等。 改变商业模式 传统商业模式是通过销售软件许可、收取维护费用以及提供专业服务来实现营收的。一旦决定以免费与开源作为产品的定位主旨,那么这一切也需要打乱重来。我们有幸拿到一份围绕FinTP的长年咨询合约,由一家颇具威望的国际融资机构参与并提供资助。 在商业方面,我们的目标在于建立一套全新商业模式及工作流程,并对内部流程与组织结构加以调整。在社区方面,我们的目标是打造一整套治理结构以及相应的法律组织、工作流程以及营销机制。 FinTP项目现在已经开始向众多客户提供金融交易处理方案,其中包括银行、企业、公共管理部门以及微金融机构等: 1.帮助客户巩固业务工作流程; 2.为各类市场结构创建灵活的接口; 3.处理各类资金转移事务(例如信用卡转移、直接借记、借记方案、资金流等),同时提供安全的运营与数据副本检测服务; 4.提供多种运营功能(例如流动性报告、会计对账、反洗钱交易过滤、汇款管理以及竞争力报告等)。 原文链接:http://opensource.com/business/13/12/fintp-to-open-source |