上海浦东发展银行 徐 伟
银行软件开发方法改进分析
上海浦东发展银行徐伟
我国金融电子业的发展和进步使得银行软件行业进入到了一个关键时期。银行之间激烈的竞争关系使得银行对于软件的的要求越来越高,国外优秀的同类软件也在不断的参与着国内市场的竞争。巨大的市场压力迫使软件开发商放弃了传统模式的手工作坊的开发方式,转而采取更加先进的技术和方法来提高软件开发的质量,以保证企业的可持续发展和进步。
银行;软件开发;CMM;开发方法;改进
银行软件的开发过程的改进方法直接影响到银行业的进步和发展,对银行信息化水平的提高尤其重要。银行软件项目是由技术、过程和人才三个方面共同完成的,银行软件项目的开发和改进方法离不开以上三个要素的参与,只有提高银行软件的开发质量和工作效率才能吸引创造更多地利润,提高客户的满意度。
1、以产品化为核心的软件开发方法
银行软件业发展的初期阶段,软件商针对各银行服务项目的不同进行软件的定制是当时主要的银行软件开发方式。开发人员针对每个项目中实际的需求进行调研,设计出符合要求的开发方案再进行实施,但实际上,这种方式存在很大的局限性。
首先定制软件需要软件开发商将大量的技术人员派遣到不同的项目中去,他们的工作重复率十分高,极大的浪费了人力资源,效率还得不到提高,使得开发成本的投入不断增加,给企业的进步和发展带来了阻碍,定制软件的稳定性还非常差,出错几率较大,在客户满意度上始终达不到高标准。[1]
使用产品化的银行软件开发方法可以很好地解决以上问题,作为一种工程技术的方式,产品化的开发方法基本的研究思路是在同类软件产品的基础上,提取出相关的业务特征来予以实现,对于不稳定的部分进行参数化的处理,使其能够在较小的变化下满足大部分客户的需求。这样项目在经过首轮的开发研究之后,对不同银行的软件都能在最短时间内进行维护和保养,非常有利于提高软件质量、减少成本的投入和增加市场竞争力。
银行软件的开发方式以银行具体的业务标准作为基础和标准。从理论化的角度来看非常适合产品化的开发方式。但是针对目前银行界的发展情况来看,各银行之间有自己独特的业务处理程序,在流程和业务的处理方式上也大不相同,给产品化的开发带来一定的阻碍。
以产品化为核心的银行软件的开发过程是建立在技术平台的基础之上,通过业务逻辑的思维能力在部分定制条件下可以快速完成对于产品的开发和使用。银行软件业务的平台的开发步骤是在技术平台作为基础的情况下,再深入理解和分析银行内部的业务,建立和完善业务平台,然后在基本业务平台之上构建出一个完整的业务流程,对于具有近似流程的业务建立建立相关模板来用作更高层次的平台,以支付系统为例,大笔金额交易的流程必须经过录入、审核。传输、修改和修正等步骤,就可以做成一个完整的业务模板,通过对这个模板的修改和调整就可以用到其他类似的业务上。[2]
以产品化为核心的开发方式除了开发制作方便快捷之外,在后期的软件维修保养和升级方面也十分快速,虽然以产品为核心的开发方法的业务平台并不是彻底的产品化方案,还需要相应的开发人员的针对具体的银行业务进行第二次的开发,但是却是非常适合当前银行业的的一种改进方式。
2、以CMM为核心的软件开发方法
CMM是管理学理念在软件行业中的具体表现,在过去的几年时间内CMM用具体的成绩证明了他对改进软件开发过程的价值,是一种更加先进的改进方式,但是并不是所有银行的软件项目都适合CMM的管理理念,比如以算法为基础的银行研究性开发项目就不行,CMM为核心的软件开发方式只适合控制方便的业务型开发项目。
目前我国银行的软件大部分都是以业务作为核心的行业软件,因此在具体开发技术上是不需要十分高深的算法和复杂的逻辑的,因此十分适合使用CMM的理念对银行软件项目进行开发和使用,由于开发方式的产品化等特征,虽然整体的研究成本得以降低,但是在第一次的开发程度上却十分复杂,需要更加优良的管理方式才能保障以CMM为核心的软件开发成功。[3]
我国目前对于CMM的研究已经取得了很多的成果,例如对KPA中关键过程的实践内容的解析和证明,每个目标如何在单独的软件开发项目中完成。但是CMM在银行软件的开发实施需要企业文化作为基本保障,才能确保该方法的顺利进行。
CMM的管理理念提供了一系列的方案来保障银行管理的制度化,如在具体的银行业务中,软件工程作为立法机构提出相应的规范内容,所以软件在在开发过程就必须按照这些制度来执行,保障软件的质量监督规范的实施,这样就能确保软件管理的有效性。但是传统制度下的银行软件开发企业的管理者来说,自身也处在制度之下,只有企业内形成法制化的企业文化,才能保障新方法的推行管理过程。
需要参与CMM为核心的各组织相对独立的发展空间。只有在不会互相影响的情况下,各组织的评估和监督工作才能从真实性和客观性出发,对软件的管理和理解才加具有意义。例如在对软件工程过程组的计划评估中,由测试组对软件工程组的产品进行性能测试时双方都需要相对独立的空间的作为前提,但是在我国的发展过程中,企业管理人员的职责范围不明确,各组织属于从属的关系非常多,个别企业甚至是一组人员负责两个项目,自我监督效果极差。这样虽然从客观上采用了CMM的理念,但是在实际操作过程问题就会不断的出现,对于开发过程并没有起到明显的作用,所以对于软件开发企业来说这是必须要面对的问题。
CMM是作为一个评估系统的依据和过程改进的结构出现的,主要是针对如何建立科学有效的管理方法给出了确切的目标和建议,CMM在银行软件的开发方法中的具体实现就需要结合实际的银行业务水平和企业自身的结构,来制定出合理有效的管理方案。正确实施CMM的方法是根据各个项目中开发人员的技术经验来完成对KPA关键过程的目标实践并完成制定的目标。完成CMM2之后再从对多个项目的总结方案上开始对于CMM3的KPA研究分析,形成一个系统的组织结构,最后再反向推广,以完成对过程管理的改进。[4]
3、重视对人才的培养工作
不论是以产品化为核心的银行软件开发方式还是以CMM为核心的开发方式,这些方案的实施基础是有足够的技术人员来进行操作,对于软件企业来说人才来说专业的技术人员可以分为单一的技术型、纯业务型和管理者三种,他们各自倾向于自身领域中知识的学习和管理,目前我国的软件企业内存在着管理缺乏的现象,更是在业务型人才的培养上十分薄弱,这对软件的开发和推广以及后期的维护和管理是十分不利的,软件从性能上可以看成是一种针对其他行业发展的服务,缺乏业合格的管理人员和业务人员的软件企业无法开发出优质的软件系统的。
从银行软件的角度来说,业务人员是最重要的组成部门,因为银行业的主要工作就是以业务为主,本身也具备相对复杂的程序,只有技术丰富银行软件人员才能做好银行软件的开发工作。
银行软件的开发和改进方法主要就是包括对技术、应用过程和人才的培养上,这三个是相互关联的相互影响的,如果其中一个方面有缺失必然会相应其他方面的进步和发展,造成资源地浪费,因此在对银行软件的开发和改进中要注意对这三个方面齐头并进,避免造成短板效应,才能真正提升银行软件的质量和效率。
[1]侯晓靓.基于CMMI的软件项目风险管理研究[D].北京邮电大学,2012-11-12.
[2]张健.基于FPA方法的某银行软件开发项目的工作量估算研究[D].中国科学院大学(工程管理与信息技术学院),2015-07-23.
[3]王峤.银行业软件项目全生命周期的质量度量指标体系研究[D].山东大学,2014-10-03.
[4]李霁伦.银行软件开发方法改进分析[J].电子技术与软件工程,2015(06).
徐伟(1978—),男,浙江余姚人,专科学历,工程师,研究方向:银行软件系统项目管理、客户数据分析、银行产品开发及管理等。