时间:2024-05-19
陈 丽 李晓利 余 俊 于 鑫
(电子信息系统复杂电磁环境效应国家重点实验室,河南 洛阳471003)
软件外包(Software Outsourcing,SO)是指企业为了削减软件项目成本、致力于核心竞争力的业务开发,而将软件项目的整体或者部分工作外包给其他公司的活动[1]。软件外包特指信息技术外包中的软件部分外包。根据商务部服贸司统计,2013年中国承接的服务外包合同167 424份,合同金额954.9亿美元,同比增长55.8%。其中软件外包占比超50%,且处于上升趋势[2]。软件外包有利于企业资源整合,提高效率,降低成本。
过程决定质量。目前我国的外包软件质量管理仍处于起步阶段。若委托方在控制项目质量方面没有一个规范的质量保证过程要求,承包方在承接项目研制时通常是“要什么交什么”,研制过程不透明,导致外包软件项目存在较大风险。
本文依据有关法律法规、项目管理相关标准、项目研制相关规定,深入研究外包软件项目各阶段的过程活动,分析各个活动应注意的关键问题并给出建议,为外包软件项目管理提供借鉴参考。
当前软件外包业务被广泛应用于各领域,软件外包理论得到长足发展,如罗纳德·科斯的“交易费用理论”、大卫·李嘉图的“比较优势理论”等[3],都对外包业务管理从理论上给出诸多研究结果。在这些理论的指导下涌现了多种外包项目管理办法,它们具有一个相似的项目管理框架,如图1所示。每个模块可作为一个独立的阶段进行管理,每个阶段的活动因实施主体不同而管理方法不同。
图1 软件外包项目管理框架
本节基于软件外包项目管理框架,结合军用软件能力成熟度模型、项目建设管理相关规定等要求进行研究。
在项目立项阶段,委托方编写总体技术方案,进行必要性和可行性分析,明确功能与用途、主要指标要求,论证项目的运行场景、编报经费预算及研制周期。
在总体技术方案中通常明确项目的实现方式:自研、整体或部分外包、采购货架产品等。自研项目管理可根据GJB5000A军用软件研制能力成熟度模型中有关要求开展,采购货架产品可按照GJB9001C质量管理体系要求进行,整体或部分外包的管理将在本文中详细给出。
在明确了项目顶层需求及实现方式后,优先从单位的合格供方名录中选择与外包软件技术要求相同或相近的备选承包方[4],必要时制定外部供方评价准则。建立供方协议的活动流程如图2所示。
图2 建立供方协议阶段研制流程
软件项目的采购或外协遵循相关采购管理办法相关规定,分为五种采购或外协的方式:公开招标方式、邀请招标方式、竞争性谈判方式、单一来源方式和询价方式。项目组选择一种适用的方式,并在招标申请中注明选择这种方式的理由。审批通过后,进行招标工作准备。
在该阶段,备选承包方拟制项目研制方案和投标书,委托方组织评审,现场评价打分,选定最终的合格承包方。评审结束后签订正式合同和技术协议。合同和技术协议签订后,为确保项目能够保质保量完成,委托方应制订一份供方协议管理计划,对研制过程关键节点进行监控。
对外包项目研制过程进行监控是为了规范项目的研制过程,委托方不可能像自研项目管理那样对外包项目进行全程跟踪,因此对研制过程中的关键路径和关键活动进行监控[5],就发挥着“四两拨千斤”的作用。
在软硬综合项目中,项目硬件装备生产按照GJB9001C质量管理体系要求对产品的生产过程进行跟产监造。软件产品的研制可以按照军用软件成熟度模型[6]要求进行过程监控。下面重点讨论如何对外包软件项目研制过程实施监控。
一般情况下,委托方选择外包软件研制过程的需求分析、软件设计、软件测试等关键活动实施监控。
2.3.1 需求分析阶段
为了确保委托方的需求和期望能够得到正确实现,需对外包软件项目需求分析阶段的关键活动进行监控:需求分析、需求评审、建立需求追溯矩阵。
对需求分析活动进行监控,通常重点关注承包方是否充分识别了需求,是否与委托方的需求存在差异,分析该差异的重要性和影响范围,在需求评审会上进行评价,最终确定是否接受。
需求评审重点关注承包方是否正确理解委托方的需求并转化为软件需求,应组织专家对需求进行全面评审。记录评审问题,分析承包方对问题的整改措施是否合理,并经过专家签字确认。
委托方建立的需求追溯矩阵与承包方的有所不同,委托方的需求追溯矩阵只需建立软件项目立项时确定的需求与交付物功能性能指标实现情况的追踪关系,确保委托方的所有需求“一个不多,一个不少”地得到实现。
2.3.2 软件设计阶段
软件设计通常分为三步:基于委托方需求的系统设计、基于系统需求的概要设计、基于概要设计的详细设计,如图3所示。
图3 软件设计
对系统设计的审核通常关注系统体系结构设计是否合理、可扩展;是否考虑了系统在不同状态下的运行方式;CSCI的用途描述是否准确,接口定义是否清晰;每个CSCI的控制关系和数据流程是否与预期用途吻合等。
对概要设计进行审核通常关注CSCI结构设计是否合理、可扩展;是否清晰标识CSCI的软件单元接口;实现CSCI所需的数据和数据文件是否齐全等。
对详细设计进行审核通常关注:是否对概要设计中的软件单元进行详细定义,若采用面向对象的设计方法进行设计,是否描述了每个类的属性和操作;是否明确每个类的数据成员和数据文件等。
软件设计评审通常为承包方项目组内部评审,委托方若想深入了解软件设计的细节,或准备进行二次开发时,可在合同中声明参与软件设计评审。
软件项目的验收交付活动主要有:厂所验收测试及评审、靶场验收测试及评审。验收交付流程如图4所示。
图4 验收交付流程
在开展验收测试时,应编写验收测试计划/大纲;建立需求双向追溯矩阵,确保需求被正确实现。在测试计划/大纲中应充分分析测试环境,区分哪些测试项在厂所进行,哪些测试项在靶场进行,哪些测试项需要结合试运行才能测试充分等。
在厂所测试时应重点关注:厂所测试环境与真实运行环境的差异;测试用例是否覆盖所有技术指标要求;测试问题影响域分析是否充分;测试问题严重程度及整改情况等。靶场验收测试充分结合厂所测试结果,重点对厂所验收测试中未开展的需求进行交付验收测试。
在军民融合方针指引下,软件项目的研制越来越多的选择外包方式。作为委托方不仅要做好总体、明确需求,还要对外包项目研制过程进行有效监控。外包软件项目是否成功存在多种不确定因素,做好关键过程和关键活动的监控能够提升项目的成功率。
本文依据装备建设管理办法及军用软件能力成熟度模型相关要求,对外包软件项目研制关键过程中关键点进行分析,指明每个活动应注意的关键问题,并给出建议措施。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!