基于工业工程角度谈软件开发外包项目

2020-03-15 05:49吴瑞刘炼周崇山
科海故事博览·中旬刊 2020年2期
关键词:软件开发风险控制

吴瑞 刘炼 周崇山

摘 要 最近几年IT行业的蓬勃发展,已经涌现出不少软件开发项目外包公司。一个软件开发项目通常要经历需求分析、设计、编码、测试等多个大的阶段。其中设计又包括总体设计,系统设计,详细设计等几个环节,其中还包括模块化之后的集成环节,整个项目还包含与专业或是非专业客户团队的沟通问题。项目整体环节复杂多变,管理困难,需要专门的项目管理方案与分析团队。

关键词 软件开发 成本核算模型 风险控制 质量保证活动

中图分类号:TP311 文献标识码:A 文章编号:1007-0745(2020)02-0049-03

随着高科技与信息化的发展,互联网已经被广泛运用到各个行业中,其运行载体“软件”更是渗透于生活中的点点滴滴。企业当然也要与时俱进,对各类的软件需求也越来越多,要求也越来越高,用以提高自身的核心竞争力。但是很多企业由于资金流短缺、技术低的局限,常会选择软件外包公司进行相关的软件开发服务。把信息化建设工作交给专业的服务公司团队去做,企业解放了这部分资源,把更多的人力物力集中在核心工作上。尤其是对于那些不可能投入大量资金和人力的企业来说,技术外包可以让他们更专注于研究自身的经营难题。由此软件开发外包团队应运而生,但随之而来的是外包公司对单个开发项目的项目管理问题。[1]

1 项目整体管理

1.1 软件开发外包项目简介

著名通信与科技公司华为正在参与最新的第五代通信技术“5G”的研发,研发与应用进度领先于美国在内的多个国家的龙头通信公司,该公司有望成为“5G”的行业标准制定者。由于要做“5G”的商用,在研发与商用开发的的过程中产生了软件开发问题,尽管华为公司的规模庞大,员工数量多,但是许多软件过程更加趋向于过程模式化,如果花费大量的人力、财力在此上,则是得不偿失。根据已知资料,华为在“5G”研发上已经投入超过153亿美元,在如此巨额的研发成本下,为了加快开发商用进度节约时间与成本。许多的软件开发则是由外包团队承担,所以在这个背景下外包团队成功的项目管理就显得格外重要。[2]

1.2 软件开发具体工作分解结构图

外包团队的软件开发周期分为若干个阶段,每个阶段都可以分为启动、计划、执行、控制和收尾等五个基本管理过程。这些过程按一定顺序发生,彼此交叠。一般情况下,执行过程消耗的资源较多,持续时间较长,启动和收尾过程时间较短,消耗资源较少。但是软件开发则是不同,软件开发在代码实现阶段难度不是太大,更多的时间成本花费在测试与运维阶段。以下简单介绍了其主要阶段[3]和核心工作。[4]

1.3 项目章程

中文名称:华为软件开发外包项目

立项时间:2018年11月

外包团队:中软国际,博朗软件……

外包软件数目:128个

项目结束预计时间:2020年9月

外包费用:15亿

负责人:华为研发部经理,各个外包团队负责人。

2 项目成本管理

华为外包总投入约为15亿。

2.1 软件开发规模核算模型

2.1.1 面向規模的度量标准

每KLOC(千行代码)的错误数,即总错误数除以总KLOC。

每KLOC(千行代码)的缺陷数,即总缺陷数除以总KLOC。

每KLOC(千行代码)的文档页数,即总文档页数除以总KLOC。

2.1.2 间接测量—功能点度量

功能点数从直接度量软件信息域和评估软件复杂性的经验量化关系中获得。

步骤:

·先算未调整功能点总计数UFC

·再算功能点FP

计算功能点(FP):

total_counts:总计数

Fi (i取1到14) :14项复杂性调整值

2.2 基于规模完成成本核算

算法成本模型-基于经验的度量:

●软件成本的算法成本模型

Effort=A+SizeB×M

●A,常量,由组织的实践与软件的类型所决定。

●B,常量,取值范围(1,15)。

●M,常量,反应产品、过程与人力属性。

●Size,可以是软件代码规模的估算,也可以是功能点或目标点。

3 项目质量管理

软件的质量管理工作是一个系统过程,在实施过程中必须创造必要的资源条件,使之与项目质量要求相适应。各职能部门及实施单位要保证工作质量和项目质量,实行业务工作程序化、标准化和规范化。支持质量部门独立的、有效的行使职权,对项目实施全过程实行质量控制。

软件质量是一个软件企业成功的必要条件,其重要性无论怎样强调都不过分。

项目的质量保证活动由项目经理协调项目组长在软件的各个阶段中实施。

4 项目的风险管理

风险是一种潜在的危险。软件项目由于其自身的特点而存在风险,甚至是灾难性的风险。

项目风险管理主要包括:风险标识、风险估算、风险评价、风险管理。

4.1 风险标识

识别潜在的风险,分别对以下三类风险进行提取、分析:

项目风险。与项目有关的预算、软件开发进度、人力分配、资源、用户需求、软件规模、软件复杂性等方面的问题。

技术风险。影响开发质量和交付时间的设计、实现、验证、软件测试、维护、用户接口等方面的问题。

商业风险。包括与产品的商业运作有关的市场风险、预算风险、决策风险等。

4.2 风险估算

也称为风险评估,一般是从两方面进行估算:

⑴从影响风险的因素考虑风险发生的可能性。

a.因为对软件规模和功能点的估算失误,错误估计了开发时间。

b.对开发语言环境的不熟悉,编码阶段出现大量错误。

⑵风险发生所带来的损失的严重程度。

a.交付时间延长,违反合同规定。

b.开发成本增加,造成公司经济损失。

4.3 风险评价

为了反映风险产生的可能程度和风险产生后果的严重程度,建立风险度量的指标体系,一种简单的风险评估技术是建立风险评估表。(如表2)

4.4 风险管理

4.4.1 避免风险

是一种主动避免风险的活动。是在风险发生前分析引起风险的原因,采取措施,避免风险发生。

4.4.2 风险监控

贯穿在软件开发的全过程,是一种项目跟踪活动。主要监控对项目风险产生主要影响的因素。

4.4.3 风险管理监控计划

制定风险监控计划RMMP,保证文档的正确性,按监控计划记录、管理风险分析的全过程。

5 项目人力资源管理

该外包项目采用一般的软件开发公司人员管理模式,设立了对应的项目经理,以及软件模块化后的分组任务由各组长带领完成开发任务,后续的集成及完善皆有项目经理协调完成。

6 项目总结与评价

6.1 全过程的进度追踪与控制

外包软件开发是个多方参与多方协调的活动,在多方共同努力完成的大型软件开发项目,基于该项目的特殊性和重要性,华为方面主管部门、投资、开发、沟通、监督等所有相关单位,从项目立项开始到设计、招投标、实施、收尾等各个阶段、环节和过程都要进行项目管理。甲方华为公司应该与外包公司定期举行项目状态会议,由外包公司交接阶段可交付成果或阶段里程碑文件,实行项目进度的实时控制,解决项目开发中的问题,加快开发时间。

6.2 必须做到有华为公司参与的质量保证

由华为公司派出质量监督小组实时监督其开发质量以及标准化开发程序的完成度。其质量保证人员要创建和执行改进软件开发过程并防止软件缺陷的标准和方法。

6.3 做好项目的前期策划和项目开发计划

项目开发计划是指导项目管理工作的纲领性文件,是对项目管理的目标、依据、内容、组织、资源、方法、程序和控制措施进行的筹划与确定,在项目管理中有着十分重要的作用。工程项目管理必须有周密、可行、有效的项目管理规划,既要根据项目需要就如何进行管理作出策划,又要为项目建设的顺利进行创造必要条件,同时确定项目管理目标。

作为行业领头开发项目-“5G”的商用开发项目,开发时间也是要在整个项目中有着巨大影响的,所以一份完备的开发计划显得尤为重要。

计划中应对前期的招标公司资格进行严格筛查,因该寻找与之相对应的行业领头的外包公司,对这些公司的软件开发生产率,合格率等进行详细调查分析。

从其他软件开发项目管理成功运用的经验来看,综合考虑多元因素是很重要的,忽视其中任何一方面都会给项目带来问题。在进行大型开发项目的项目管理工作中,必要的分析研究可使项目的科学性和可操作性得到加强,同时也为项目管理工作提供更为充分的依据、更加科学合理的决策。大型软件开发项目不是简单的方案的选择问题,它需要考虑很多风险因素;大型项目管理规划也不是仅由项目管理学科书本上的知识就能解决的,它是一个跨学科的巨大系统工程,只有先进行大系统中的子系统的分析和研究,才能进一步整合大系统;另外,要成功建立大项目的科学综合评价体系,要进行多方案的比较选择,进而确定最终方案,而且对项目管理的评价也不能单一,应该是多角度的、综合的考虑很多因素,如各类成本因素。只有在科学的方法指导下,才能获得大型软件开发项目管理的最优最合理方案。

参考文獻:

[1] 舒森,方竹根:项目管理[M].安徽人民出版社,2002:23-25.

[2] 毕星,翟丽:项目管理[M].复旦大学出版社,2000:1-3.

[3] 同[2].

[4] 软件工程第七版.机械工业出版社,2016:1-8.

西华大学 管理学院,四川 成都

猜你喜欢
软件开发风险控制
信息安全环境下的计算机软件开发研究
试析基于现代风险导向的互联网金融审计
对行政事业单位内部审计信息化的探讨
论增强企业经营管理的风险意识
核电厂定期试验管理软件开发
医院财务管理风险及改进措施分析
FPGA软件开发过程中编码规范的作用