公务员期刊网 论文中心 正文

商业银行软件项目开发能力探索

前言:想要写出一篇引人入胜的文章?我们特意为您整理了商业银行软件项目开发能力探索范文,希望能给你带来灵感和参考,敬请阅读。

商业银行软件项目开发能力探索

摘要:为了提高商业银行软件开发组织的项目开发能力管理水平,对软件开发项目的开发能力模型进行探索。通过模型准备,建立软件开发项目开发能力的定义、计量单位、分类。在此基础上,以能力规划为核心,围绕软件项目开发的约束条件进行定性和定量的剖析,形成组织级的和项目级的开发能力模型,为项目开发能力管理提供参考,并可作为信息化管理的算法模型。

关键词:商业银行;软件开发;项目;能力;模型

银行科技繁荣已久,网络金融高效助力,银行业发展再攀新高;互联网、云计算、大数据、人工智能等科技元素融入商业银行的愿景,影响着银行战略的调整;“科技引领业务”成为银行业生态的新适竞法则;软件开发项目作为商业银行的战略实现方式,历久而弥新地承担着新业态下的使命。但同时,商业银行软件项目开发所面临的“能力管理”难题显得尤为突出。基于此,对商业银行软件开发项目的开发能力模型进行探索,以期为行业软件项目开发能力管理与效率提升提供参照,也可作为开发能力管理信息化的算法模型。

1模型准备

1.1开发能力定义软件项目开发能力(以下简称“能力”),是指在既定自然、社会条件下,软件开发组织在正常的生产率条件下和一定的(开发)生产周期内,其软件开发系统将人力资源等投入要素转化为指定规格软件产品的能力。传统行业的产出能力度量经常用产出的产品、服务来计量,但在商业银行软件开发组织(简称“组织”)中,由于项目的临时性、独特性及统一度量管理的行业特性,用开发系统的输出计量往往效果不佳。所以,探索使用可供投入的能力计量,一般使用标准的人力单位计量。1.2计量单位标准任务,是指用标准化的计量方法折合的无差别的软件开发项目原子任务单位,如标准功能点、标准代码行、标准工作量等。标准人力,是指用标准化的计量方法折合的无差别的软件开发项目的标准劳动单位,如通过技术能力、金钱价值折合的标准人力(标准人天、标准人天价值等)。标准定额,是指综合各种影响软件项目开发的因素,建立的组织的标准人力与标准任务的数量关系,是一种函数计量关系。1.3能力类型设计能力,是组织按照一定时期的规划产出而预定的能力,用标准人力单位表示。核定能力,是组织按照环境特性、产品特性、人员素质等要素重新核查,计算出来的一定时期的能力。核定能力可能不高于设计能力,也可能不低于设计能力,用标准人力单位表示。计划能力,是在一定生产周期内(一般为年度),组织计划达到的能力。以上三种能力的计量单位都是标准人力,可有不同的用途。在软件组织设计、远期生产规划、重大技术改进、重大过程改进等方面可以用设计能力、核定能力;编制组织的年度生产计划、进行组织年度技术革新与过程改进、确定组织年度过程性能目标时,可以用计划能力。后续,围绕计划能力展开。

2组织级能力模型构建

2.1模型概述。构建商业银行软件开发组织的组织级能力模型,如图1所示。图1中:P是纵轴,为任务量轴,是指某时刻t,组织在生产周期内已经安排的标准任务量标度。Q是横轴,为资源量轴,是指某时刻t,组织在生产周期内可投入的或需求的标准人力量标度。D为需求量(曲线),是指某时刻t,基于生产周期内的已安排的任务量,组织对标准人力的需求数量,是任务量的函数。根据国家标准《GB/T36964—2018软件工程软件开发成本度量规范》[1],项目的功能点和工作量之间为幂函数关系。基于此,构建组织需求量幂函数曲线D,函数形式为Q=Pμ。在实际应用中,变量、常数都是大于0的,函数为增函数,函数曲线的凸凹、延伸方向,取决于Q、P的相对数据大小,可通过计量单位的安排进行调整,同时还取决于μ大于1还是小于1。仅从数学上考虑,任务量和需求量可以按照永远的增函数安排,但是从生产理和生产实践考虑,函数曲线应该是渐进平滑的,并且有可能呈现下降趋势。由于商业银行的“用户—外围类业务产品—核心类产品—总账类产品”的业务关联方式、“内部网页访问渠道产品、外部互联网访问渠道产品、ATM与POS访问渠道产品”的人机交互模式、“总线类交易管理产品”的交易负载路由方式,使得产品呈现网状关联,产品开发中的依赖关系紧密而复杂,使得该函数特征在商业银行的实际软件开发中更为显著。基于此,构建如图1所示的需求量曲线,可以根据具体情况增加技术、成本、传统资本等相关要素的影响系数。函数中的常量可根据组织的实际数据进行回归得到,也可根据经验数据估计。S为能力量(直线),是指在时刻t,组织在生产周期内安排的计划能力。组织级能力模型中,曲线D和直线S相交于一点,对应的资源量为Q0,对应的任务量为P0。在这一点,组织的任务量和需求量达到平衡,为Q0。2.2需求量特性。组织级能力模型中,需求量具有如下特性。2.2.1曲线特性D曲线向右上方延伸;组织的需求量是由任务量驱动的,任务量和需求量之间呈现幂函数关系,为增函数关系;曲线的斜率逐渐减小,即随着组织在生产周期内安排的任务的不断增加,安排的人员不断增加,生产开发效率逐渐降低,并且有可能出现曲线斜率为负的情形。这是一条近似的曲线,因为在生产周期内,组织有多个项目在运行,不能确定每个项目所处的效率状态,所以这条曲线是一种近似拟合曲线,是对任务量、需求量关系的大概率表达,也是一种实践经验曲线表达。商业银行的软件开发项目按时间成功交付的概率非常高,项目在时间维度上可粗略地按照一定时期的组织级生产率(基线)安排任务,D曲线也可以近似的表达成直线D',如图2所示。直线的斜率可以通过实际数据回归得到,表达方式相对直观,可以根据组织的实际情况选择曲线或者直线。2.2.2影响因素银行业中,组织的需求量是任务量驱动型的,多年来任务量虽然一直持续增长,但仍然受到业务部门的业务预期以及实际需求、内部开发成本、内部资本转化效率、收益预期、市场替代产品等因素影响。但在这些因素既定的情况下,任务量与需求量关系的主要影响因素为生产率,即工程技术和工程管理的水平。工程技术和工程管理的水平越高,斜率越大,表现为较小的需求量对任务量的弹性,也就是任务量的变化率大于由此带来的需求量的变化率;斜率越小,表现为较大的需求量对任务量的弹性,也就是任务量的变化率小于由此带来的需求量的变化率。总的来说,斜率大小就是需求量变化对任务量变化的敏感程度。2.3能力量特性。组织级能力模型中,能力量具有如下特性:(1)斜率。S线垂直于横轴,说明能力量对任务量是无弹性的。(2)截距。S线与Q轴正方向垂直相交,截距为正,是能力量值,即计划能力。(3)影响因素。影响计划能力量的因素,主要是组织对任务量的预期、可投入的成本、工程管理水平、工程技术水平、产品特性、成本管理特性及其他的传统资本(资产)要素特性等。这些要素限制水平越低,计划能力量越大,S线初始位置就越靠右。(4)能力量函数。能力量函数公式如下Q0=[(Qy1×Py1+Qy2×Py2+Qy3×Py3)/(Py1+Py2+Py3)]×Φ×Mα×Tβ×Lλ×C×R式中,Q0为计划能力量,为一定时期(以年度为例)的计划能力;Qy1为上一年度实际能力量;Qy2为上上年度的实际能力量;Qy3为自上年度起,倒数第三年的实际能力量;Py1为上一年度的实际任务量;Py2为上上年度的实际任务量;Py3为自上年度起,倒数第三年的实际任务量;[(Qy1×Py1+Qy2×Py2+Qy3×Py3)/(Py1+Py2+Py3)]为以往三个年度的实际能力对当年度实际任务量的移动加权平均,用于对本年度能力量的基础推测,可用Qave表示[(Qy1×Py1+Qy2×Py2+Qy3×Py3)/(Py1+Py2+Py3)]×Φ。可以根据实际情况选择以往更多年度的实际能力量的加权平均。其中,Φ为年度增长系数,是根据经验人为估计的;M为工程管理水平的影响系数;T为工程技术水平的影响系数;L为产品特性,如软件架构、计算机语言、网络与数据、算法等要素的特性与水平的影响系数。α、β、λ为工程管理、工程技术和产品特性的偏弹性。例如,对于式Q0=Tα两边取对数并微分,α≈(ΔQi/Qi)/(ΔT/T),这恰恰是弹性的定义。其为其他要素不变的情况下,T的变化率对Q的变化率的影响系数。β、λ的定义与此类似。对于函数Q0,在使用前,α、β、λ是既定的,Q0被称为约束型函数。C为计划周期内可投入成本影响系数;商业银行的软件开发组织,是成本中心,不是利润中心,也就是说没有利润率绩效考核指标,是按软件的成本的投入,用多少花多少,即便如此,仍然需要有一定的价值约束,如年度可投放资金、成本效率等。R为传统资本要素影响系数,如建筑房屋、办公设备、生活设施等。例如,即使轮流就餐,员工食堂也只能容纳5000人,一旦超过这个数量,工作效率就会大大降低。对于M、T、C、L、R、α、β、λ,可以根据以往实际数据和经验进行估计,也可以根据实际数据进行回归分析,建立参数表备用。Q0可以表示为Q0=Qave×Mα×Tβ×Lλ×C×R,对这个公式两边取对数并微分(α、β、λ相对其他变量为常数)。lnQ0=lnQave+αlnM+βlnT+λlnL+lnC+lnRd(lnQ0)/dt=d[lnQave+αlnM+βlnT+λlnL+lnC+lnR]/dtdQ0/Q0dt=dQave/Qavedt+(αdM)/(Mdt)+(βdT)/(Tdt)+(λdL)/(Ldt)+dC/(Cdt)+dR/(Rdt)对于相同计划周期的变化量,可得出近似公式ΔQ0/Q0=ΔQave/Qave+αΔM/M+βΔT/T+λΔL/L+ΔC/C+ΔR/R可以定义成各要素变化率r的形式r0=rave+αrM+βrT+λrL+rC+rR上式表示计划能力的变化率的构成。通过对实际数据的分析,可以分析出各个因素对能力量变化的影响程度,为能力设计和能力效率提升提供依据[2]。通过能力函数可以计算本年度计划能力,再通过需求量函数可以估算本年度预期可以安排的任务量。该函数也可以用于单项的计划能力规划,只是Qave的估计是用以往项目的能力量对任务量进行加权平均。2.4能力平衡。组织级能力模型也可以作为组织能力平衡模型使用,如图3所示。2.4.1平衡机制。(1)P=P0,组织的需求量等于组织的计划能力量,供需平衡。在组织的能力设计中,可以围绕计划能力设计一个波动范围,在这个范围内都认为是平衡的。针对这个范围涉及的需求量与能力量设计调整机制,可形成动态资源管理机制。(2)P=P1,组织的需求量大于组织的计划能力量,供给小于需求,此时需要做任务资源调整,可以进行部分任务外包,可以重新安排任务的优先级和进度,可以裁减部分任务,以减少组织内部需求量;或者调整能力量,招聘员工、引入外包人员等。(3)P=P2,组织的总需求量小于组织的计划能力量,供给大于需求,此时需要做任务资源调整,可以导入部分外包任务,可以增加部分内部任务,可以将部分人员外包,可以进行裁员等。2.4.2平衡指数。为了度量能力偏差的程度,以便进行有效平衡,可设计能力负荷指数。(1)能力负荷指数。负荷指数=一段时间内能力量/一段时间内需求量。可以对以往年度的实际数据分析建立负荷指数基线,作为能力平衡的参照。(2)人员负荷指数。负荷指数=人员实际工作时间/人员理论正常工作时间。可以根据当地法律规定和以往年度的实际数据分析建立负荷指数基线,作为能力平衡的参照。组织进行任务安排和资源配置,以能力负荷指数为依据,同时一定要在人员负荷的可接受范围内进行。2.5规模效益。在设计组织的计划能力时,需要考虑规模效益,即组织的规模经济。2.5.1组织的规模经济模型。根据组织的任务量、需求量的幂函数关系,幂函数为增函数,其微分是大于零的,且随着需求量的增加,微分先减小后变化不大,微分可能为负的情况不予考虑;ΔP/ΔQ近似的也有如此特性,由此可以构建组织的规模经济模型,如图4所示。图4中:Q是横轴,表示需求量标度。ΔP/ΔQ是纵轴,为任务量变化量/需求量变化量标度,任务量-需求量函数曲线的斜率(近似微分)。M(ΔP/ΔQ)为随着Q增加ΔP/ΔQ的变化曲线,意味着随着需求量增大,ΔP/ΔQ不断减小,随后变化不大。A(ΔP/ΔQ)为随着Q增加ΔP/ΔQ平均值的变化曲线,意味着随着需求量增大,ΔP/ΔQ不断减小,随后变化不大。P(ΔP/ΔQ)为行业的ΔP/ΔQ均值。由以上可以判断,Q2往左都是可以接受的,最佳区域为Q1往左,组织有规模经济效应。通过实际数据,找到Q1、Q2,确定合适的组织能力量。2.5.2能力函数修正需要根据组织的规模经济模型增加一个规模经济特性系数E,用来修正组织的能力函数,以使组织的规模更经济。

3单项目能力模型构建

单项目资源规模估算方法的已有文献偏多,这里阐述商业银行软件(单)项目能力的约束模型。3.1成本-范围约束模型。构建单项目投入-产出约束模型[3],如图5所示。图5中:PP是纵轴,为单项目产出的任务量标度。Q是横轴,与上面描述的意义一致,是图5单项目成本-范围约束模型资源量标度,为单项目的资源量。P-Q,为投入-产出函数曲线,即成本-范围函数,对于一个具体的项目,随着资源量的投入,输出任务量不断增加,但是增加率逐渐减小(斜率逐渐减小),函数曲线变得平坦,随着资源量的继续投入,输出的任务量反而可能会减小,这是因为超出正常生产的各要素的承载能力,生产率下降的太大造成的,当然这一点在实际中,不会使其发生;函数可以拟合为幂函数或多项式函数。所以,在单项目的能力规划中需要识别出Qp点,在这一点曲线的斜率接近于0或绝对值最小值。根据实际数据判断项目阶段能力投入、总能力投入的Qp,在进度允许的情况,能力投入选择斜率较大的区间。这需要组织实际数据的积累作为依据。该约束适用于组织能力规划。建立此约束,也就意味着约束函数Q0=Qave×Mα×Tβ×Lλ×C×R×E中,α+β+λ<1,说明随着投入资源量的增加,边际效益递减。3.2进度-成本约束模型。构建单项目进度-成本约束模型,如图6所示。图6中,Q是纵轴,与上面的意义一致,是资源量标度,是单项目的资源量。S是横轴,为单项目的工期标度。P为任务量,在图中是一系列的曲线族,表达不同任务量的单项目,越向上方意味着任务量越大。同一条曲线上,即给定任务量的项目,投入的资源量Q越小,工期越长,可以拟合为多项式曲线。但是,对于给定资源量的Qx,不断延长工期S,但并不是无限的,因为Q是一个成本约束;对于给定的工期SX,不断增大资源量,可以完成更大任务量的项目,但也不是无限的,因为在给定工期内,即使投入再大,有些大项目也是完不成的。根据实际数据积累,结合上述成本投入约束,建立有效率的成本-进度约束。3.3进度-范围约束模型进度、范围的相互约束对于本文而言探讨意义不大,此处不再赘述。3.4进度-人力约束模型。构建单项目进度-人力约束模型,如图7所示。图7单项目进度-人力约束模型对于具体项目,工期维度上单位时间平均投入的人数QH(标准人力单位)和工期S的乘积是常数G,也就是QH×S=G,这就是所谓“软件人月神话”中所说的主要矛盾。显然QH、S形成双曲线函数,随着G的不断增大,产出也可能逐渐增大,向右上方形成双曲线函数系列,这些曲线可以在成本约束范围内进行QH和工期S的权衡。通过实际数据积累,定义该双曲线函数。这需要在实际数据的基础建立可能,因为G增加,产出往往未必增加,需要实践积累来验证“神话”、打破“神话”。结合上面的分析,对于单项目可以进行范围、成本、进度、人力的权衡,使项目的能力计划在多约束下更具有经济性、可操作性。3.5动态能力量预测模型。对于进行中的单项目总投入能力量,建立动态能力预测模型。(1)预测1:EAC1=AC+(BAC-EV)。该预测表示,成本绩效按照计划执行。其中,EAC1为项目总需求量的预测;BAC为项目计划总需求量;AC为项目实际发生资源量;EV为目前完成计划需求量的当量。(2)预测2:EAC2=AC+(BAC-EV)/CPI。该预测表示,后续成本绩效按照当前实际成本绩效执行。其中,EAC2为项目总需求量预测;CPI为绩效成本指数,为EV/AC。(3)预测3:EAC3=AC+(BAC-EV)/CPI1。该预测表示,后续成本绩效按照重新核定的成本绩效指数CPI1执行。(4)预测4:EAC4=(以上预测的最大值+以上预测的最小值+4×以上预测的中间值)/6。在其他文献中不难发现以上三种方式,但计量单位标准化了,此处仅仅将其作为数据基础。预测4表示项目最终的需求量预测。根据预测4,结合以上约束,进行项目的计划能力设计。3.6外包能力约束模型项目能力不足时,常常需要引入外包人力资源,但是需要建立一定的引入标准。在此,构建外部资源引入的判定指数。判定指数K=I/(F/rF)=rF×I/F。其中,I为组织标准人力的价值;F为外购的外部开发人力资源的价值;rF为外部开发人力资源的价值的转化率,即转化成组织内部标准人力价值的转化率。判断定系统需要大于1,引入外部资源才有意义。对K进行修正,K=I/(F/rF+F/rF×δ)=rF×I/[(1+δ)×F]。其中,δ为引入外部开发人力资源引发的额外费用率,如额外的管理费用、额外技术引入消化费用等对F的比率;额外费用也需要转化成标准人力价值。K必须大于1,引入外援才有意义。该判断指数既可以用于单项目,也可以用于组织级项目。

4结语

自1946年计算机诞生以来,“质量”和“效率”就逐渐成为软件行业的关键问题,软件组织在这两个问题的困扰中探索前行。本文采取定性与定量相结合的方式对组织级能力模型、项目级能力模型围绕约束条件进行剖析,为商业银行及其他组织提升软件项目开发能力管理水平和效率提供参考。

作者:付伟江 董平军 刘洋 单位:中国银行