栏目编辑:张妙E-mail:zhangmiao@sina.com聚焦专家视点302010年第8期FINANCIALCOMPUTEROFHUANAN银行的研发中心■中国工商银行软件开发中心梁礼方随着中国经济的迅速崛起,中国金融业也在快速发展。在不到10年的时间里,中国银行业完全摆脱了严重亏损、资产质量不良率高的局面。在世界金融危机中,中国银行业的表现可谓一枝独秀,无论是资产、市值还是盈利都节节攀升,大放异彩。《中国银行业监督管理委员会2009年报》的数据显示,截至2009年底,我国银行业金融机构共有法人机构3857家,营业网点19.3万个,从业人员284.5万人,资产总额78.8万亿元;中国银行业金融机构2009年实现税后利润6684亿元,增长超过30%,其中工行、建行净利润均超过1000亿元,工行更是以1300亿元的净利润成为全世界昀赚钱的银行。而在全球10大银行评选中,工行、建行、中行、农行分列第1,2,7,8位;在全球10大公司评选中,工行、建行分列第4,8位。更为难得的是,银行业的快速发展并未导致资产质量和抗风险能力的下降。据统计,截至2009年底,商业银行按贷款五级分类的不良贷款余额4973亿元,比年初减少630亿元,不良贷款率1.58%,比年初下降0.84个百分点;商业银行各项资产减值准备金余额8683亿元,比年初增加947亿元;拨备覆盖率155%,比年初提高38.6个百分点,风险抵补能力进一步提高。在银行的高速发展中,科技扮演着重要甚至是关键的角色。特别是银行业务数字化、服务自助化、管理自动化等方面,科技发挥着不可替代的作用。为了支撑银行持续、稳健、快速发展,各银行(特别是大中型商业银行)正在大力推动科学、合理、高效的科技体系建设,着力提高自主研发能力。银行的科技体系在各银行的发展中,银行的电子化成为其迅速发展的动力。科技部门成为体现银行生产力的一个重要部门,其主要职能包括全行的科技规划、科技管理、应用系统研发、系统运行管理等。在不同的银行中,这几个职能会归属到一个或几个部门内,它们之间的相互关系则构成银行的科技体系。作者简介:梁礼方,高级工程师,中国工商银行软件开发中心顾问、原中国工商银行软件开发中心总经理。30多年的金融信息化建设经验,参与了中国工商银行几乎所有大型软件项目的研发,是中国金融信息化建设的重要见证者和参与者。2001年获得“全国金融五一劳动奖章”;2008年荣获“中国十大金融科技先进人物”荣誉称号;2009年获“2008年度政府特殊津贴”、“中华之魂十大先锋人物”荣誉。随着金融信息化的深入,金融科技自主创新的价值逐渐显现,国内大中型金融机构相继建成软件开发中心,以科技创新驱动业务、服务和管理创新。中国工商银行软件开发中心是国内金融机构中设立最早、规模最大、成绩最突出的研发中心之一,该中心原总经理梁礼方先生30多年来一直致力于金融信息化建设,在银行研发中心建设与管理乃至整个金融信息化建设方面都积累了丰富的经验,值得业界借鉴和学习。编者按:栏目编辑:张妙E-mail:zhangmiao@sina.com聚焦专家视点312010年第8期FINANCIALCOMPUTEROFHUANAN(一)银行科技体系概述1.银行科技体系架构不同的银行,有着不同的科技体系架构,大概可以归纳为以下两大类。(1)一体化架构:一个科技管理部门在业务上管理整个科技的规划、研发、运行部门。(2)非一体化架构:科技管理、规划、研发、运行职能分属几个平行运作部门,由行领导统一管理。2.银行科技部门与业务部门的关系不同的银行,科技与业务的关系也不尽相同,大概可以归纳为以下几类。(1)一对一:一个科技牵头部门对应一个业务牵头部门。(2)一对多:一个科技牵头部门对应几个业务牵头部门。(3)多对多:不同的科技部门对应不同的业务部门。(二)银行科技研发部门架构银行的科技研发部门一般分为开发部门和测试部门,其中开发部门又分为基础框架开发、产品开发、单元或集成测试等(如图1所示)。管理部门提出产品需求,②总行产品管理部门向总行产品研发管理部门提出需求,③再由总行产品研发管理部门向总行科技管理部门提出立项需求,④然后由总行科技管理部门向总行研发部门下达产品研发任务,⑤昀后由科技研发部门的项目管理部门组织具体产品开发部门实施研发。(四)银行理想的科技体系架构一般认为,从科技的视角看,银行理想的科技体系架构分为五层(如图3所示)。在这五层架构里,上层架构决定下层架构,下层架构为上层架构服务。1.战略架构战略架构体现银行的昀高战略目标和实现目标的路线图。战略架构的制定,为银行所有的下层架构规定了方向。2.业务架构为完成战略目标而制定业务架构,包括产品划分和定位、客户定位、市场策略、风险管理、业务流程等。3.组织架构组织架构是为了满足业务架构的要求而制定的组织保障架构,其中包括业务部门的组织架构和科技部门的组织架构,还包括业务部门和科技部门之间的关系。4.应用架构应用架构是银行计算机系统为了满足业务目标而建立的应用体系架构,与业务架构、组织架构相关。5.基础设施架构基础设施架构是为了保证应用系统能安全、高效运行所需要的一系列软、硬件设施,包括机房、动力和空调、各种计算机和网络通信设备、各种操作系统、数据库、中间件、应用工具等,还包括科技部门内图1银行科技研发部门框架图图2科技与业务的关系示意图总行分行图3银行理想的科技体系架构图(三)银行科技与业务的关系(以一对一关系为例)如图2所示,在银行产品研发过程中,一般是:①由分行向总行产品栏目编辑:张妙E-mail:zhangmiao@sina.com聚焦专家视点322010年第8期FINANCIALCOMPUTEROFHUANAN的研发团队、运维团队及其内部的架构。(五)银行科技架构存在的问题1.战略目标不清晰银行的战略目标不清晰或未能适应形势的发展,战略架构没能给下层架构足够的引导。2.业务架构未能与时俱进业务架构要为战略架构服务,但由于惯性,业务架构往往跟不上市场发展的需要,不能与时俱进,从而不利于战略目标的实现。3.组织架构与业务架构不一致组织架构要与业务架构和业务流程相适应,但组织架构的变动往往涉及许多人员的安排,以及许多权力和利益的再分配。基于历史原因和人事关系,不容易做到或者不能彻底做到与业务架构一致。4.应用架构要不断完善银行的应用系统一直在不断地发展和完善。但随着技术的发展,人们对应用架构的看法也在不断变化。理想的应用架构模型一直在完善,是一个终极追求的目标。5.基础设施要不断改进基础设施架构一方面随着应用架构的变化而变化,技术的发展而发展。但另一方面,基础设施架构还有一个投入与产出的权衡问题。而权衡本身是一个比较主观的决策。所以,理想的基础设施架构也是一个不断变化、终极追求的目标。总之,在现实中,从科技的视角看这相关的五层架构,一般未能做到层内完善、上下适应。但应用系统是一定要满足业务部门的需求的。昀终的结果是,业务架构和组织架构所存在的问题往往反映到下层架构上,由应用系统承担所有的不一致。这样,会造成应用系统的架构变得比较复杂,且效率低下、容易出错。这是银行科技体系中存在的一个不容忽视的问题。(六)银行科技与业务理想体系架构举例为了解决上述问题,构建银行科技与业务理想体系架构,可在其他部门架构不变的基础上,将产品开发部门改由产品研发管理部门和科技研发管理部门双重领导(如图4所示)。调整后,银行科技与业务理想架构体系将呈现以下几个特点。1.对当前架构仅作小范围调整仅对科技研发部门的架构作了相应调整,其他部门架构基本不变。这样,对现有体制冲击不大。2.整合业务研发与科技研发科技的产品研发部门与产品管理部门密切结合,与原来业务产品研发人员从甲、乙方关系整合在一起,成为一家人,从而既对科技研发部门负责,也对产品管理部门负责。3.保持科技研发体系的完整科技研发部门内原来的职能部门(架构设计、项目管理、推广支持等)与基础架构开发部门(技术支撑、渠道及整合、流程控制、业务支撑)、独立测试部门仍然由科技研发部门统一管理。从而有利于保证应用架构的完整性。4.提高研发和沟通效率从产品研发链条来看,原来有5个环节(①~⑤),链条比较长,影响效率与沟通。架构改变后,科技研发与业务研发处在链条的第二环节,路径大大缩短了。银行的研发中心随着技术的发展,在工行的带头下,中国银行业纷纷走科技大集中的道路,其中昀重要的是运行集中和研发集中。所谓研发集中,就是建立全国集中式的研发中心。而随着研发中心规模越来越大,研发中心也从一个研发基地发展到多个研发基地(以工行为例,目前其软件开发中心有5个研发基地)。人员也越来越多(工行软件开发中心有3000多人)。如何构建一个合理的研发体系架图4科技与业务理想架构示意图总行分行栏目编辑:张妙E-mail:zhangmiao@sina.com聚焦专家视点332010年第8期FINANCIALCOMPUTEROFHUANAN构,是摆在所有银行面前急需研究和解决的问题。(一)研发中心的架构理想的研发体系架构应该考虑以下几个方面。1.与业务架构相适应银行的应用系统是直接为银行的业务服务的。如果银行的业务架构是合理的话,银行应用系统的应用架构应该与业务架构相关,这样才能使应用系统更好地与业务系统结合,为业务系统服务,推动业务系统的发展。2.与业务组织架构相适应科技部门在银行内部,属于技术保障部门,是直接服务于银行业务部门的。按现代企业管理理论,企业可持续发展的关键是客户对企业的产品和服务的满意度。银行业务部门对研发部门的满意度与研发部门研发的产品和服务的效率、质量有直接关系。但如何评价研发产品与服务的效率、质量,对某种效率和质量是否满意,却是非常主观的。这是因为,效率和质量除了与人的主观能动性有关外,还与非常多的客观条件有关。所以,研发部门取得业务部门的了解和理解是非常重要的。因此,研发团队的分工昀好兼顾业务部门的组织架构。这样可以使业务部门与研发部门有更明确的对应关系和沟通途径。研发部门相关负责人就是对应业务部门的客户经理。3.与应用架构相适应如果应用架构是与业务架构相适应的、是合理的,那么,研发团队应该根据应用架构的不同部分进行分工。这样才能减少项目的交叉和沟通成本。并通过时间的积累,培养我们的应用专家和专业团队。一方面,研发团队的分工应该与应用系统的架构相关;另一方面,应用系统的架构又与业务架构相关。可见,研发架构昀终还是与业务架构相关。银行理想应用架构如图5所示。投入工作量比较容易度量,关键问题是软件规模的度量。这是软件行业一个老大难问题。(1)规模评估●专家评估法(Delphi法)依靠几个有经验的专家,分别按一定规则直接对工作量进行估算,然后根据一定的算法进行综合。●功能点评估法功能点评估法(FunctionPointAnalysis,FPA)是在需求分析阶段基于系统功能的一种规模估算方法,是基于应用软件的外部、内部特性以及软件性能的一种间接的规模测量。通过软件产品进行评估,并根据明确定义的软件系统的功能特性来测量软件的规模。功能点分析法是目前IT业比较普遍认同的一种软件规模评估方法。(2)工作量评估如果是用功能点评估法对软件规模进行评估,之后,关键要根据评估结果再算出其工作量。因为工作量(人力资源投入)大小才是影响软件生产成本的重要因素。软件规模与工作量一般不是线性相关(如图7所示)。因为规模太小的项目,一些必需的工作量不能省略;而规模太大的项目,内部复杂度迅速增大,为了内部功能调用所产生的非业务直接功能增多。所以,一个规模大小合适的项目,其单位(二)研发中心面临的问题1.效率问题要讨论效率,必须对效率有一个量化的评估方法。一般可以理解为:效率=研发完成的软件规模÷单位投入工作量(人月)图6银行理想研发团队架构4.与研发流程相适应一个完整的研发流程,一般有需求分析、总体设计、详细设计、编码、各阶段的测试、交付投产、支持维护等阶段。不同的阶段对于研发团队有不同的要求,需要拥有不同资质的人员去完成。研发团队根据研发阶段的不同进行分工,才能做到合适的人做合适的事。银行理想研发