社区化开发模式在金融科技领域的探索应用
作者:赵培桐 吴利华
来源:《中国金融电脑》 2018年第9期
    当前金融行业竞争日益激烈,金融业务日趋繁多,金融软件产品的研发团队规模不断扩大,管理复杂性也随之增加。为提高新形势下软件产品的研发效率和质量,亟需提升研发团队的协作效能,有效整合各类技术资产并且加强与合作方的融合共建。为此,中国工商银行软件开发中心(以下简称“工行软开”)进行了深入的探索和研究,形成了社区化开发模式并在实践中取得了较好的效果。
    一、新形势下金融软件产品研发面临的挑战
    1. 研发协作效率有待提高
    随着新技术应用步伐的加快,加之当前金融软件产品复杂度高、上下游关联性强及研发团队规模庞大等特点,软件研发过程中各角、各团队的高效协作对产品研发的成功起到至关重要的作用。在公共技术平台的研发和推广、新技术研究和应用等需要跨团队、跨部门协作的场景中,因“团队墙”“部门墙”导致出现了问题响应不及时、需求实现存在偏差、功能模块重复开发以及技术推广应用效率低下等状况,在一定程度
上影响了研发的时效性和版本质量,制约了新技术的推广应用和价值转化。由于工行软开与各分行信息科技部之间存在办公地点分散、团队数量庞大等因素,在进行跨区域的大规模协同开发上问题也更为突出。
社交软件源码
    2. 技术资产价值尚未充分发挥
    商业银行的软件研发机构在产品研发、新技术研究的过程中产生大量的技术资产,但大多数未能形成体系。与产品相关的需求、架构、用户手册、代码和测试案例等重要资产由不同角人员分散管理、维护和使用,未建立相互间的内在关联,既不利于资产的共享复用,也不利于各角、各团队间相互参照和快速学习,尤其是具有复用价值的公用组件代码未能很好地推广使用。另外,人员流动也会带来资产流失。
    3. 团队创新活力有待增强
    互联网金融的快速发展对金融软件的创新性、版本质量和交付时效都提出了更高的要求,需要团队具备更强的能力投入产品创新研发工作。然而,传统的研发管理模式下,团队通常在流程分工的框架中完成本职工作,缺乏交流和相互启发,团队的集体智慧、技术精英的能力和价值得不到充分发挥。
    4. 行内与社会各界合作方的协作有待加强
    随着信息技术对传统行业的改造和融合持续深入,商业银行与社会各界合作伙伴的互联模式不断升级,行内的服务及数据需要以接口的形式方便及时地提供给行外合作方等开发者用户。由于缺少统一的支持平台,接口形式多样、难以统一,协作沟通上依赖于集中办公或单点交流,由此造成的接口问题频繁、协作成本高和效率低等问题较为突出。
    二、社区化开发模式的研究
    为有效应对上述挑战,工行软开在借鉴业界开源理念和实践的基础上,结合金融软件产品研发特点及现状,研究出了一套适用于金融科技领域的社区化软件开发模式。通过构建统一的社区协作平台,为社区化开发模式的落地提供强大的技术支撑;通过建立社区化的研发运营模式,推动跨团队、跨部门和跨机构协同开发共建;通过建设企业级的技术资产体系实现技术资产的集中管理和持续保鲜,促进资产的共享复用和积累传承,充分发挥资产价值;通过建立社交型的团队管理机制,借助社区个人主页、粉丝等社交属性,促进个人创新贡献及相互交流启发,打造集体智慧大脑,提升团队整体创新活力。
    1. 构建统一的社区协作平台
    工行软开在对业界主流研发协作工具进行深入研究的基础上,着力构建统一的社区协作平台,该平台具备以下特点:一是支持各类需求、问题和任务的线上交流与有序跟进,实现透明化管理;二是支持资产集中共享和多人协作编辑,用户可订阅、检索或参与讨论及完善;三是支持协作编码,不同团队人员
可借助社区代码审核机制建立代码提交、审核和入库等一体化的协作开发流程。
    与此同时,社区协作平台通过统一的对外协作门户,整合提供标准化的接口服务,打造面向各界合作方开放的统一接入门户,提供便捷的接口信息及资料获取渠道,及时受理用户反馈的各类问题和意见,协助合作方更好地参与金融软件的应用创新研发,加快互联网金融生态圈建设,实现多方共赢。
    2. 建立社区化的研发运营模式
    通过建立社区化的研发运营模式,为产品研发尤其是公共技术平台的研发推广及新技术的研究应用建立开放、透明和有序的线上协作机制,并在社区协作平台中落地。社区化的研发运营模式通过设置不同社区角开展具体工作,主要体现在两个层面:一是问题、需求、任务和方案等统一在社区中进行线上沟通,实行透明化管理;二是产品或新技术牵头团队在社区中开放源代码访问入口,支持其他团队参与协同开发共建。
    场景一:以公共技术平台的协同开发共建为例,在相应社区中设置社区版主、社区牵头人员、社区用户及社区贡献者等角。社区牵头人员指公共技术平台牵头团队成员,社区用户指使用公共技术平台、参与社区互动的其他团队人员,社区贡献者指社区用户中参与平台研发的人员(即参与共建的人员)。社区版主由公共技术平台牵头团队指定人员担任,负责社区的日常运营。各社区角通过约定的规则进行协作。
    (1)基于社区的跨团队问题、需求和任务线上沟通协作(如图1 所示)。社区用户在社区中提出问题和需求;社区牵头人员在社区中及时受理用户提出的问题和需求,并组织讨论分析,创建、分配和执行任务;社区贡献者可参与讨论分析,接收或主动认领任务,并按计划完成;社区版主可定期对问题、需求或任务进行统计分析,为团队管理提供决策参考。
    (2)基于社区的跨团队协同开发共建(如图2 所示)。社区牵头人员或社区贡献者按照任务要求下载源代码进行开发,社区牵头人员需要及时对社区贡献者提交的代码进行审核;社区用户可按需下载查看源代码;社区版主可定期对代码变更、审核记录等进行统计分析,为团队管理提供决策参考。
    场景二:以总行、各分行间的社区化协作为例,在社区系统中建立专门的总分行协作社区,提升总行、分行间的协作效率。
    (1)基于社区建立总分行线上协作渠道。总行在社区中发布总行项目信息和资料,设置专栏在线及时受理分行各类咨询,与传统的分行现场支持共同形成线上和线下双渠道协作模式,加速总行研发的项目及各项创新研究成果在分行的实施落地和推广应用。(2)基于社区建立分行特项目共享复用流程。
    各分行统一在社区中发布特项目业务需求、总体方案及源代码等内容;各分行可通过访问社区查看其它分行共享的项目,结合项目业务价值及自身的业务特点,评估是否需要复用并在社区中标识复用意
向;总行根据各项目的实际推广价值及分行的复用意向,组织对高复用价值的项目进行推广实施,减少分行间重复研发,助力分行快速引进优秀产品、抢占市场。
    社区化研发运营模式通过透明化的线上协作和管理、开放有序的协同开发共建,在促进整体研发效率提升的同时,能够有效提高版本质量,让实现的功能更加符合实际需求。
    3. 建设企业级的技术资产体系
    通过社区化协作平台对资产进行集中管理、建立内联及动态更新等措施建立企业级技术资产体系。
    集中管理资产方面,一是按照技术领域在社区系统中设立多个社区,在社区中集中管理相应领域的各类技术资产,包括相关的研究成果、产品的需求、架构、代码、测试案例、用户手册及经验总结等重要资产,形成资产全视图,确保资产有效积累、共享和传承;二是打造中央内源仓库,统一管理各类公共组件,以服务化的形式提供各产品线便捷复用,并基于仓库机制建立完整的组件引用关系,为组件版本引用的兼容性及一致性提供保障。
    建立资产内联方面,借助技术手段,建立各项关键资产的内在关联,例如代码与测试案例的关联、需求与代码的关联等,形成资产有机体,利于各角关联学习,快速获取所需内容及知识。
    动态维护资产方面,通过制定规则,明确维护资产的主要角及时效要求,及时对新产生的资产进行
归集、对存量资产进行保鲜,以确保资产持续可用。
    在建设企业级资产体系的基础上,通过资产搜索引擎、个性化订阅和精准推送等机制,促进技术资产按需进行高效复用,发挥其最大价值。
    4. 建立社交型的团队管理机制
    在团队管理上,引入社交理念,基于社区个人主页、粉丝等社交属性,结合适当的宣传、评优等活动,建立社交型团队管理机制。通过个人主页,对团队成员在社区中参与的项目、提交的代码、共享的研究成果及发表的评论等集中进行展示。通过粉丝机制,支持关注、跟随自己感兴趣的人,建立社区“人际”链接,彰显个人价值,提升荣誉感及影响力。同时,通过对社区的分层管理、对话题活跃度的排名等方式宣传及推送热点内容,通过定期评优活动,奖励社区中的活跃人员,在管理上积极引导社区互动和智慧碰撞。
    社交型机制借社交之力形成软性激励,鼓励每个成员在做好团队本职工作的同时,尽其所能,积极创新,参与其他团队的产品研发、平台建设及技术研究。一方面,深入挖掘每个人的潜力,充分发挥每个人的价值,培养专业的技术精英,促进研发效率及版本质量的提升;另一方面,激发团队的集体创造力,提升团队整体活力和能力,为金融业务的快速发展保驾护航。
    三、实施效果与未来展望
    目前,工行软开已建立四十多个社区,全面覆盖工行软开各公共技术平台的研发及重点新技术的研究;各社区共享技术资产2 万多项,日均访问量近千人次;总分行协作社区共享特项目200 多个,已有复用意向的项目达80 多个。整体研发协作效率明显提升,技术资产得到有效的传承与复用。
    未来,工行软开将进一步把社区化开发引向深入,一是不断优化社区协作流程、持续完善技术资产体系、积极营造技术精英文化,促进产品研发共享共建,以更高的研发效率及版本质量,提升金融软件产品竞争力;二是加速与工商银行合作伙伴共建金融社区,全力打造高效、透明的社区化开发生态,扩大行业影响力,巩固在同业中的领先地位。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。