软件项目管理过程研究

时间:2022-05-05 09:43:07

导语:软件项目管理过程研究一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

软件项目管理过程研究

摘要:项目管理就是将知识、技能、工具与技术相结合应用于项目活动,以满足项目的要求的一种管理科学,是20世纪40年代以后迅速发展起来的一门学科,是现代管理学的一个很重要的分支。有效的软件项目管理是软件项目成功的基石,软件项目的特性决定了软件项目管理较为复杂。结合软件项目全寿命周期,提炼出软件项目管理中的四个重要维度:计划管理、质量管理、配置管理及风险管理,并结合管理实践,作出了分析和建议。

关键词:软件项目管理;计划管理;质量管理;配置管理;风险管理

一、软件项目管理

基于项目的管理模式诞生于第二次世界大战,最早采用这种管理模式的是美国的“曼哈顿计划”。此后,随着经济全球化推进,竞争加剧,基于项目的管理模式逐渐取代传统管理模式,被越来越多的企业所采用[1]。项目管理就是将知识、技能、工具与技术相结合应用于项目活动,以满足项目的要求的一种管理科学,是20世纪40年代以后迅速发展起来的一门学科,是现代管理学的一个很重要的分支。项目管理的核心是以实现项目目标为中心,通过启动、规划、执行、监控、收尾等五大过程管理,最终满足项目利益相关方的需求[2]。随着项目管理方法、理论的发展,项目管理的概念和适用范围也在不断的拓展,在信息技术行业兴起并快速发展期间,项目管理的手段和方法开始大量应用在信息技术项目中,由此带动了软件项目管理理论与方法的迅速发展。软件项目管理即项目管理方法在软件产品项目中的应用,但由于软件项目固有的抽象性、阶段划分模糊、一次性、易出错、难度量等特性,导致软件项目管理相较于一般的项目管理难度更大。下面将从四个维度对软件项目管理进行剖析,分析软件项目管理特点,并结合实践,给出针对性的建议。

二、软件项目管理过程

软件项目管理的四个维度是针对软件项目全寿命周期提出的,因此在介绍软件项目管理的四个维度之前,有必要对软件项目的开发流程进行简要阐述。目前业界关于软件产品生命周期的主流模型有三种:改进型V模型(如图1)、快速迭代模型(如图2)、递进开发模型(如图3)。软件产品研制过程中,生命周期模型的选择取决于软件的规模、种类、开发方式、开发环境等因素,不同生命周期模型的研制阶段可能会存在较小差异,但基本可以归为5大过程:需求分析、设计、编码实现、测试、验收交付,软件项目管理即是针对这5大过程的管理,管理活动可以细分为四个维度,即计划管理、质量管理、配置管理、风险管理[3]。

(一)计划管理

前面提到软件项目的一次性特点,说明软件项目必然存在一些以前从未做过的事情,存在较大的不确定性,因此,做好软件项目的项目策划至关重要,而项目的计划管理则是确保项目策划得到有效落实的重要方式,计划管理活动包括了计划的制定、跟踪、监督和考核。软件项目管理的核心工作之一就是制定完善详细的项目开发计划,计划制订是为了达到项目的预定目标,在约束条件和假定条件下,对项目的范围、资源、实现路径、成本和时间进度进行安排,并形成能够指导项目执行和控制的、经正式批准的文件的过程。也就是说,计划管理的目的是为了达到项目的预期目标,实现项目成功,计划管理的维度包括了项目的范围管理、组织的资源管理、时间进度管理等,并且最终形成的计划必须是正式批准的具有公众约束力的官方文件。计划制定是一个持续的过程,在项目方案阶段可以制定一个初步的计划,在项目实施过程中,随着对项目需求的逐渐深入理解,项目实现途径的调整,以及项目资源的变化等情况,项目计划会同步不断迭代更新。   制定计划时,需要项目的主要干系人、任务承担部门负责人等参与,计划制定过程中,遵从由上至下制定,从下往上修订的原则,结合项目的实际规模,制定相应详细程度的计划。计划制定完成后,要在项目启动会上对计划内容进行公布,让相关人员明确各自的职责,包括进度要求、活动产出等,并承诺资源。计划制定的方法很多,主要核心思想都是基于工作任务分解,这里简要介绍一种三级计划管理体系。三级计划管理体系,顾名思义就是将计划分为一级、二级、三级。一级计划主要用来管理项目的总体进度和项目协同,是整个项目的里程碑计划,主要分解到各阶段及关键节点,例如项目的决策评审点、技术评审点、关键路径的重要监控点、客户要求的节点等,一般以年为周期的项目,至少要保证每个季度有一个关键节点。二级计划在一级计划的基础上进行细化,包含整个项目的主要活动,比如产品实现策划、研制方案、关键设计、产品交付准备等,二级计划至少要保证一个月有一个节点。三级计划是在二级计划的基础上做再进一步的细化,是更为详细的工作分解,可以分解到个人每周甚至每天的工作内容。软件项目的计划管理范畴包括软件开发计划、软件配置管理计划、软件质量保证计划、软件测试计划等。

(二)质量管理

软件质量管理大体上可分为过程质量管理与设计质量管理。设计质量管理容易理解,涉及到软件的整个设计、开发活动,包括系统需求分析、系统设计、软件需求分析、软件设计、软件编码与单元测试、单元集成与测试、配置项确认测试、系统集成与测试、系统确认测试、验收和交付,设计质量管理就是对这些环节进行监控,以保证软件产品的质量。业界有句名言,产品的质量是设计出来的,体现了产品的设计过程对于产品质量的重要性,为了保证产品质量的稳定性,应该提炼出通用的设计环节,并对每个环节的关重要素做出标识,产品开发过程中涉及到关重要素时,应该组织专家团队共同评审决策,避免因个人主观因素造成产品质量的差异性。过程质量管理对软件产品质量较为重要,基于过程的管理,也是GJB9001C换版后强调的重点。根据实践经验,软件项目过程质量管理的效果很大程度上取决于以下因素:质量保证计划、软件质量保证师。质量保证计划,也称质量保证大纲,是产品研发过程质量管理的指导文件,规定了产品研发过程的质量方针和目标、质量管理角色和职责、过程质量控制、质量信息管理、技术状态管理等。软件质量保证师,简称SQA,是过程质量管理活动的执行者,主要依据软件过程文件的要求,对软件项目过程活动和工作产品进行符合性监督与检查,负责定期采集软件项目的质量数据,并进行统计分析,拟制相关质量保证记录表等。总的来说,产品质量是项目成功的重要表征,是企业的生存之本,是顾客要求得到满足程度的表现。产品质量管理是一个持续改进的过程,需要企业从顶层进行规划,建立一套行之有效的质量管理体系。质量管理的理念在西方发达国家已经发展很多年,国际上也成立了国际质量管理委员会,并发布了多个系列的质量标准。目前,我国质量管理各方面经验都较为丰富,质量管理体系的建立有成熟的标准,并且也有专门的质量管理体系审核机构帮助企业建立体系、执行体系。作为企业,应该在质量管理专业机构的指导下,将相应的质量标准本地化,并根据实际情况持续改进,建立适合自己的质量管理体系。

(三)配置管理

影响软件项目的因素很多,但影响最大的应该是项目团队乃至项目负责人对软件变更的不重视,甚至认为变更是软件项目的固有特性。很多软件项目的失败,都要归因于薄弱的变更管理,导致项目的时间进度和成本超出了预期范围。项目开发过程中,变更是允许存在的,但是必须得到有效的控制和管理,这就是配置管理的主要目的。软件配置管理是软件项目的基本过程管理,负责管控软件的基线产品,跟踪、监控变更,确保在软件项目的全寿命周期中,基线产品始终保持最新状态,配置管理活动在项目的需求分析阶段就应该开始。配置管理活动的两个关键点:配置管理员和配置管理计划。配置管理员负责建立并维护产品的配置管理库,开展软件配置管理工作策划,拟制《软件配置管理计划》,开展配置项审核,配合软件负责人管理基线,执行基线或变更的发布等。配置管理计划作为配置管理活动的主要指导文件,规定组织和职责、配置标识、配置控制和审核等。配置管理计划的主要目的是,提供配置管理员在进行配置管理工作时应该遵循的程序,从而确保以下工作得到有效进行。(1)软件配置项的确定;(2)产品变更的显性化:变更的标识、跟踪;(3)合法变更涉及的文档,要在软件开发库中进行同步更新,涉及的软件代码要同步集成、测试;(4)软件变更提交软件开发库的状态统计;(5)软件变更的合法性;(6)维护配置管理审核系统,确保提交软件开发库的软件产品及其文档的一致性。

(四)风险管理

基于风险的思维是GJB9001C换版后突出的重点,强调风险管理的重要性。所有软件项目都会有风险,有的影响小,在整个项目生命周期都会存在;有的影响较大,可能会导致整个项目的失败,这种必须被标识出来,并采取应对措施。风险管理持续贯穿软件项目的整个生命周期,在软件项目的生命周期内,实施风险识别、风险跟踪,对识别出的风险制定缓解/应急计划,并于必要时实施相应计划,缓解风险发生。当风险不可避免时,通过适当的策略将其可能造成的影响降至最小。风险管理主要有两大活动:确定风险管理策略、标识和处理风险。风险可分为:技术风险、进度风险、成本风险等。风险处理一般包含以下几种情况:(1)规避风险:如果能够在项目早期就识别出风险,则可以采取措施进行规避,规避不了的,则考虑减弱影响;(2)接受风险:有些风险虽然存在,但是即使发生了,其影响也在项目可承担范围内,在考虑项目时间进度和成本的前提下,这类风险可以选择接受;(3)减弱风险:对于已知的潜在风险,并且不可规避的,可以提前策划,采取积极措施,减弱风险发生时对项目的影响,暂时无法减弱风险的,则应该持续监控;(4)消除风险:如果风险可能会带来灾难性的后果,则必须采取措施进行消除,如果不能全部消除,那么应该想办法减弱其影响,使其变为可接受范围,或者可规避,否则应该考虑调整项目的实现途径或者取消项目;(5)转移风险:风险一般都是带有特定背景属性的,一个项目组的风险,对于其他人也许就未必了,因此要运用宏观思维,借助外部力量,转移风险。一般情况下,建议项目在编制开发计划的同时,同步编制项目的风险管理计划,作为开发计划的补充,也作为项目进行风险管理的指导性文件。风险管理计划可以包含以下内容:(1)风险识别,判断风险对项目影响的可能性并记录其特征,包括识别风险源、列出风险源清单;(2)风险发生的可能性及后果严重性分析,对已识别出的风险因素进行分析,通过一定的方法,按风险发生可能性及严重性划分相应等级,形成风险评估矩阵,并赋予一定的加权值来定性衡量风险大小,包括定义发生的可能性等级、后果严重性等级;(3)风险评价,包括风险评价指数、风险接受准则;(4)风险排序,包括风险分析结果、风险排序结果;(5)风险应对措施,针对各项风险尤其是中高风险源逐项重点论述风险的应对措施列表。

(五)成本管理

对于一个项目而言,项目的成本主要包括直接成本、管理成本盒运营成本等。直接成本就是与项目有直接关系的费用,比如说人工费、材料费等。管理成本是指项目开发期间为了管理、控制项目所发生的费用,主要包括差旅费、办公费、会议费、咨询费等。运营成本是指项目所在企业的正常运营所需要的费用,一般按照项目总经费的固定百分比进行抽取,主要包括企业的日常行政管理费用、销售费用、固定资产使用费、动燃费等。对于软件项目而言,项目的最主要的成本是人工成本,软件开发人员的人工费用占据项目成本的大部分。在谈成本管理之前,首先应该分析影响项目成本的因素。影响项目成本的因素很多,对于软件项目,主要的影响因素包括:(1)项目质量质量对成本的影响通过质量成本来体现。一般来说,质量成本由质量故障成本和质量保证成本组成。质量故障成本指的是为排除导致产品质量问题产生的原因,保证产品重新恢复供能所产生的费用;质量保证成本是指为了提高和保证产品质量而采取的体系机制、技术措施等消耗的费用。产品的质量保证成本和质量故障成本是紧密关联的,质量保证成本越高,说明企业为了保证和提高产品的质量,而在相应的技术措施、质量管理体系等方面所投入的资源越多,相应的产品的质量就会越高,由于产品质量不合格所引起的损失就越小,产品的质量故障成本就越低;反之,质量保证成本越低,质量故障成本可能就越高。(2)项目工期项目工期对项目成本的影响,主要体现在项目的直接费用和间接费用两个方面,一般而言,工期越长,项目的间接费用越高,而直接费用越低;反之,如果工期越短,则直接费用越高,间接费用越低。对于软件项目而言,项目工期的长短对项目成本的影响很大,缩短开发工期,可以降低间接费用,但却需要更多高水平的技术人员,直接费用就会增加。(3)项目管理水平项目管理水平对项目成本的影响是多方面的,甚至是根本性的,可以体现在工期控制、预算执行控制、风险控制等维度。管理水平的高低影响预算的准确度、执行力度和监管的有效程度。高的管理水平可以严格控制项目计划处于可控范围,对项目计划变更造成的影响可以较为有效的控制。另外,高水平的项目管理对项目风险的识别及应对措施会有很大程度的帮助,有助于减少风险损失。(4)项目人力资源前文提高,对于软件项目而言,项目的最主要成本是人工成本,而人力资源素质是影响人工成本的重要因素。技术能力强/职业素养高的员工,其人力资源成本比较高,但这样的员工可以产生较高的工作效率,从而缩短工期,也可以提供较高质量的产品,降低产品的质量成本,从而整体上会降低项目成本;反之,对于一般人员而言,则可能会延长工期,产品质量也不能得到有效保障,从而间接造成项目成本的增加。所谓成本管理,就是对影响项目成本的因素进行有效的管理,妥善处理好质量、管理和人员的关系,合理分配、使用项目活动所需的资源,最大限度的保证项目实际成本在可控的范围之内。可以通过工作结构分解、费用预算制订、风险策划等方式,达到成本管理的目的。

三、结语

软件项目固有的特性导致了其管理工作的复杂性,只有对项目全寿命周期进行剖析,深入理解项目开发涉及的各个环节,提炼出关键管理活动,根据内外部环境,灵活运用,才能适应当前需求多样性的软件产品研发。

参考文献

[1]张晓辉.软件项目管理中的关键问题分析及对策[J].信息系统工程,2016(003).

[2]周慧.论软件项目管理[J].现代电子技术,2003(018).

[3]王玮,杨健.软件项目管理活动探析[J].海上靶场学术,2008(001).

作者:刘鹏 周霞 张毅 涂彦君