基于WBS的信息化项目成本度量方法研究与应用
2022-01-13朱斌
朱斌
(南方电网数字电网研究院有限公司,广东 广州 510663)
0 引言
软件和信息技术的应用飞速发展,已经广泛地覆盖并渗透到社会生活的方方面面。特别是近10年来,以云计算、大数据、物联网和人工智能等为代表的新一代信息技术[1]推动信息技术应用进入跨界融合的繁荣期。如何科学、规范地对软件成本进行度量和计价,一直是业界的难题和关注点。
目前国内外以采用基于功能点的软件成本估算方法(FPA)最为主流和成熟。2018年,国家市场监管局和标准化委员会联合发布的GB/T 36964—2018《软件开发成本度量规范》也推荐使用功能点法作为度量软件开发成本的估算方法[2]。
功能点法简便易操作,适用于快速匡算信息化项目前期立项阶段的总投资。但在近年来开展南方电网公司信息化项目造价工作中发现,将功能点法应用于项目建设实施阶段及项目结算等环节仍有较大的局限性,主要原因包括以下几点。
a)功能点法是基于用户视角,可以在项目前期为甲方立项提供决策参考;但由于其不能反映项目建设过程中各个工序作业的资源耗量,因此不能测算出开发者在各个工序环节的实际投入成本,对项目建设实施及结算阶段的指导意义不大。
b)功能点法仅对项目9大阶段中开发阶段进行量化评估,其余8个阶段工作量的评估,通常是以开发工作量为基数按经验值比例推算得到。由于应用系统的定制化等因素,常导致需求分析、实施和运维等成本与项目实际值偏差较大。
c)功能点算法模型颗粒度较粗,主观判断因素多。各类因子如开发语言调节因子、开发团队背景调节因子[3]的赋值原则较模糊,可调空间较大,容易导致计量争议。
为此,南方电网数字电网研究院基于长期工作过程中的研究创新积累,提出了基于工序分解(WBS:Work Breakdown Structure)的信息化项目成本度量新方法,该方法将信息化项目工序按可交付成果分解成较小的,更易以进行成本测算和管控的组成部分,借鉴参考电网基建工程的成本计量法[4],将需求分析、设计、开发和实施等工作分解细化,将项目各级工序标准化,单价定额化,首次从开发者的角度对软件的价值进行度量,明确各项任务的边界,并以公式或定额的方法进行取值计算,提高标准的适用能力。
1 信息化项目工序法成本度量体系构建
国内外软件工程体系[5]一般将信息化项目按全生命周期划分为9个阶段,如图1所示。
图1 信息化项目全生命周期阶段图
其中,需求分析、设计属于信息系统开发前的准备阶段;系统开发集成、部署实施是系统建设成形的关键阶段;应用测试、联调测试和入网安评测试是系统上线前的准备阶段;日常运维、修理维护则贯穿系统从上线至寿命终止的全过程。
因此,基于WBS的信息化项目标准工序构建应覆盖整个项目周期的所有工作阶段,工序的颗粒度应能够反映各种功能组件差异化的工作量,且易以进行成本测算和造价管控。
1.1 深度分解信息化项目标准工序
采用WBS方法,将信息化项目各个工作阶段进行分解,以设计阶段为例,如表1所示。
由表1可见,项目设计阶段的工作内容被细化分解为项目设计过程中的流程化、标准化工序。分解后的工序对应可交付、可量化的成果,能够通过测定项目设计阶段的具体工作量,精确地度量每个工序的资源消耗量及工序成本。同理,项目其余阶段工序也按上述原则进行WBS分解,本文省略。
表1 项目设计阶段工序分解
1.2 测定标准工序的定额消耗量
将工作标准化分解后,能够分项测定各个工序的资源耗量定额。本文采用计时观察法,通过观察、记录、整理和分析项目各个工序的人工消耗量,测定各个工序的工时定额。计时观察法[6]以研究工时消耗为对象,是测定时间消耗的基本方法,工序定额时间测定的精度控制模型如下:
式(1)中:E——测时精度允许误差;
n——观察次数;
Δ——每次实测值与测时均值之差。
式(2)中:Kp——数列稳定系数;
tmax——最大观测值;
tmin——最小观测值。
根据计时观察法精度控制的边界条件,给定精度控制参数E,则观测次数n需要同时满足模型中Kp和E对应的约束条件。
以设计阶段中“UI设计”工序为例,采用计时观察法测定“新增UI效果图”工序完成1个页面的工时消耗量过程如表2所示。
表2 工时定额测定过程
由表2可知,通过密集抽样[7]进行直接的工序时间测量,并根据计时观察法模型检验测量精度,将表2中的数据代入公式(1)-(2)计算,得出Kp=1.44,n=13,E=±4.03%,根据模型边界控制条件:当Kp≤0.5时,同时满足E≤±5%,n≥9,则通过表2中的样本测算的定额时间消耗量满足精度要求,则“新增UI效果图”工序的工时消耗定额为X¯=5.94工时/页面。同理可测定信息化项目其他工序的定额消耗量,如表3所示。
表3 工序法工时定额示例
2 编码工作量算法模型研究
开发阶段的成本在信息化项目中一般占到总成本的40%左右[8],其中,编码是开发工作中的关键工序。故在构建标准工序的基础上,有必要研究一种基于详细设计深度和结算深度的编码工序计量法。
以“外部输入(EI)”的编码工作量为例,建立编码工作耗时与组件复杂程度的关系式,研究对比功能点法与工序法的编码工作量算法:
式(3)中:TEI——“外部输入(EI)”的编码工作耗时;
QDET、QFTR——该组件内部的字段数(DET)和引用文件数(FTR);
α、β——编码耗时率,对应组件内部每个DET或FTR编码工作占用的时间。
由式(3)可知,随着QDET和QFTR增加,TEI相应地增加,体现出编码工作随组件内含增加复杂程度提高,编码耗时增加的规律。根据式(3)的变量关系式,在三维坐标系中以QDET和QFTR为平面坐标值,TEI为垂直坐标值,绘制编码工作算法模型图,能够直观地呈现功能点法与工序法算法的区别,如图2-3所示。
图2 功能点法编码工作量算法模型图
由图2可见,功能点法从用户视角按高、中、低3种复杂度级别划分功能组件的开发耗时率[9],在DET和FTR的分段区间范围内编码耗时率均为常量,超过临界点则耗时率跃升一个梯度,故组件耗时只有高、中、低3种情况对应的取值。
由图3可见,工序法是从开发者的视角来构建算法模型的,编码耗时渐变趋势更为平滑,度量更为精确。与功能点法不同,工序法的编码工作算量首创了直接对组件的构成DET、RET和FTR编码耗时进行测定的方法,首次从开发者的视角按组件内含区分不同情况的编码耗时程度,精确地反映出开发耗时随组件具体内容的增减呈连续变化的实际情况,能够同时满足项目前期估算、详细设计预算和项目结算深度的需要。
图3 工序法编码工作量算法模型图
各类编码工作的定额消耗量按前文方法测定,结果如表4所示。
表4 工序法编码工时定额
由表4可知,结合测定的工序定额耗时和行业发布的开发人员工日单价,确定各个工序的定额单价,示例如表5所示。
表5 编码工序定额单价示例
3 基于标准工序度量信息化项目成本
本文选取一个应用系统开发项目,对基于标准工序方法度量信息化项目成本进行实例演示。
采用工序法度量项目直接建设成本,需按照标准工序表计算各个分项的工作量及费用,将各个分项的费用进行合计得出项目的直接建设成本,示例如表6所示。
如表6所示,基于标准工序表和定额单价计列出应用系统建设过程中各阶段的工作量及对应成本,能够清晰地呈现出各个阶段、各级工序的资源消耗量和费用,满足了对信息化项目造价进行精细管控要求;标准工序表的工作阶段应严格地依照项目过程的先后顺序排列,使前后工序的逻辑关系清晰关联,便于对成本的合理性进行评估,同时能够按时间顺序拟定项目的成本计划,满足对信息化项目造价进行实时监控的需要。
表6 标准工序计价表示例
项目管理费、审查费等可按费率预估或根据实际情况计列,本文不进行论述。
4 结束语
本文针对信息化项目成本度量难题,提出了基于WBS的信息化项目成本度量方法,首次从应用系统开发者的视角,将信息化项目全生命周期的工作按梯度分解为可交付、可管控的工序集合,采用科学方法测定各工序定额消耗量,有效地避免了主观因素偏差;首创了满足项目详细设计预算和项目结算深度的编码工作量算法模型,显著地提升了开发工作量的算法颗粒度,减少了技术误差。工序法能够清晰地呈现项目全局和各个工序的成本,并且工序及成本逻辑关联性强,使得项目成本计划更加合理,适用面更广,满足信息化项目造价进行精细管控和实时监控的需要。