张俊光
【摘 要】结合一些实际项目的数据,重点研究了自顶向下估计方法中软件项目的规模、工作量及进度等关系到项目成败的关键因素的计划与监控.提出了用PERT法和类比法相结合采进行规模估计,根据规模估计的结果来估计工作量,并根据工作量分布来获得进度的一套切实可行的项目策划和执行方法.在研究过程中,既考虑了单个因素的计划与执行,又考虑了各要素间的内在联系,从过程管理的角度进行整体研究,从而形成了一个完整的计划与监控体系,对于同行具有借鉴意义. 【期刊名称】《科技管理研究》 【年(卷),期】2011(031)005 【总页数】4页(P180-182,179)
【关键词】自顶向下;规模;工作量;进度;计划;执行 【作 者】张俊光
【作者单位】北京科技大学经济管理学院,北京,100083 【正文语种】中 文 【中图分类】TP311.5
根据国际上通行的划分方法,项目管理生命周期可以划分为启动、计划、执行及收尾四个大的阶段,其中项目的计划与执行则是关系到项目成败与否的最重要的两个关键过程。通过项目策划所产生的项目计划是有效协调项目工作,推动项目工作顺利进行的最重要的工具。只有通过有效的项目策划,才能对制约项目的因素,特别
是几处关键因素,如成本、进度及技术性能等做出有效的安排,并为随后的监督与控制,提供切实可行的基础和标准;而进行有效地项目执行,即项目的监督与控制则是确保项目计划得到有效实施的重要手段。
众所周知,自顶向下估计方法是软件项目策划中一种非常适用和重要的策划方法,特别是在项目初期,更是如此。本文针对软件项目所固有的特点,重点研究和介绍了计划与执行这两个关键过程在软件项目自顶向下策划方法中的应用,根据自顶向下方法的特点进行计划,并据此进行项目的执行和监控。根据现在国内外软件行业项目管理的现状和水平,我们应本着循序渐进的原则,逐步改进和完善我们的项目计划和监控方法。
所谓的自顶向下估计方法,就是先根据需求进行规模估计,根据规模估计结果来估计项目的总工作量,再根据工作量情况考虑到各种依赖关系及关键路径等,并对工作量进行分解后得到项目的进度,见图1。自顶向下方法是相对于自底向上方法而言的,在自底向上估计方法中,是通过直接估计每一部分的工作量,来获得项目的总工作量。下面分别对规模、工作量及进度的估计、监控方法及其逻辑关系进行介绍。
2.1.1 进行规模估计
一般情况下,规模估计的方法有Delphi法、类比法、功能点估计法及PERT估计法等。下面以类比法和PERT法为例,对其使用情况进行说明。
类比法适合评估一些与历史项目在应用领域、环境和复杂度方面相似的项目,通过新项目与历史项目的比较得到规模估计。而PERT法则对各个项目的规模按三种不同情况估计:一是最可能估计(最接近值),二是最低估计(最小值),三是最高估计(最大值)。用这三种情况估计经计算得到一个产品期望规模和标准偏差的Pert统计估计。通过Pert估计可得到代码行的期望值E和标准偏差SD.
一般情况,在有历史数据的情况下使用类比法较多,在没有历史数据的情况下使用
PERT法较多。在实际工作中,我们认为在有历史数据的情况下可尝试将类比法与PERT法两种估计方法结合使用,其效果则更佳。具体使用如下: 步骤1.
参与估计的人员分别独立地依据个人的经验(有历史数据的参考历史数据),按照产品功能结构图估计每一个功能模块的代码行数,分别列出最大值、最接近值及最小值,并计算出各项的期望值。期望值的计算公式为:(最大值+4*最接近值+最小值)/6。 步骤2.
项目经理汇总每个成员估计的期望值,对数据进行对比分析。如果个人估计的各项总值的差额的百分比小于30%,则取个人各项的平均值;如果差额的百分比超过30%,则要重新进行估计,转向步骤1。 步骤3.
对于选择出的数值,策划组的成员要对此进行分析和评审,确定出最终的产品规模估计值。
2.1.2 进行规模监控
因为项目工作量和进度是在规模估计的基础上进行的,因此规模的大小直接决定到工作量的大小并影响到项目的进度,因此应对规模进行监控。规模监控的主要步骤可系统地设定如下:
· 在项目策划阶段,采集规模估计值。
· 从计划开始执行到详细设计评审前,每个大的阶段结束,都应对规模进行重新估计,比较当前估计值与最新计划中的估计值,并记录偏差。
· 根据项目计划中定义的偏差域值,识别是否有重大偏差,偏差的设定根据组织自身的情况可有很多种方法,如可设定为:若规模的偏差值/规模总量*100%=10%,则为高等级偏差,必须对计划进行变更;若偏差率在5%—10%之间,则由项目负
责人组织制定相应的纠正措施,改善项目的整体状态等。
· 在编码阶段开始后,开发人员每周提交已完成任务的代码,项目负责人或其指派人员测量已提交代码的规模,并用工具进行汇总、统计(如EXCEL),根据工具自动生成的规模总计进行分析,并预计是否会出现重大偏差。根据本周完成的任务数(项目编码阶段的阶段计划要求细化到任务),与项目阶段计划相比较,参考本周完成的代码行数,看阶段计划能否完成,阶段计划有无偏差出现。
· 根据记录及统计情况,分析偏差产生的原因,以及可能对项目产生的影响,并根据分析情况给出建议措施。例如:
◆ 当偏差未达到域值(即重大偏差)时,分析偏差产生的原因及影响,并根据分析情况确定是否需采取纠正措施(如对工作量进行重新估计等)。 ◆ 当偏差达到域值时,应进行重新估计。 2.2.1 进行工作量估计
项目工作量与规模的对应关系为:技术开发工作量=新代码规模*复杂度/平均生产率。其中,根据上述描述,新代码规模根据本文“2.1”中描述的规模估计方法进行估计得出,平均生产率根据对组织项目历史数据的统计分析确定;复杂度可定义范围为0.7-1.5,可以有5个值:非常低、低、正常、高、非常高;具体影响因素的设定需根据各组织的实际情况确定。
参与估计的成员根据公司产品规模的估计数据及公司的产品工作量与产品规模关系的对应关系,对产品开发的总体工作量进行估计,并依据历史数据统计分析得出的比例关系分解出各项开发过程的工作和项目管理、软件质量保证及软件配置管理的工作量的估计值。 2.2.2 进行工作量监控
对于软件企业来说,工作量是构成项目成本的一个重要的因素,也是进行进度分解和估计的基础,因此对工作量的监控是监督与控制的一个重点。工作量监控的主要
步骤可系统地设定如下:
· 在项目策划阶段,采集工作量估计值。
· 每周采集当前阶段每个任务本周的工作量,并累加计算出每个任务“实际”工作量,再累加计算出该阶段“实际”工作量。对于工作量的每周监控主要应达到三个目的:一是可以判断总的阶段工作量有无可能出现重大偏差;二是通过每周工作量的计算,可以辅助观察阶段进度会否出现偏差;三是通过工作量的监控,对督促员工按时完成任务,提高工作效率,将起到很好的促进作用。
· 每阶段计算“偏差(当前计划)”,并根据项目开发计划中定义的标准判断“是否重大偏差”,在项目结束时计算“总计”和“偏差(初始计划)”,偏差的设定举例如:工作量的偏差值/阶段工作总量*100%=50%为高等级偏差,必须对计划进行变更;如果偏差率在40%—50%之间,由项目负责人采取相应的纠正措施来改善项目的偏离。在实际执行过程中,也可根据项目实际情况来设定项目的偏差标准,如可用工作量的偏差值/项目工作总量*100%来设定重大偏差等。
· 对项目工作量进行分析,并根据分析的结果分析偏差产生的原因,以及可能对项目产生的影响,给出建议措施。例如:
⟡ 当偏差未达到域值(即重大偏差)时,分析偏差产生的原因及影响,并确定是否需采取纠正措施。如:分析是因估计不准而出现偏差,还是项目人员积极性不高,效率低导致,还是出现了什么问题等。 ⟡ 当偏差达到域值时,应进行重新估计。 2.3.1 进行进度估计
项目策划小组根据项目总工作量及工作量在各阶段的分布情况,并依据项目生命周期、活动WBS、所识别的关键路径及依赖关系,对项目的各开发阶段时间进度表进行估计,具体步骤如下: 步骤1.
根据合同或市场期望的时间确定项目的总体时间要求,即项目的完成日期。 步骤2.
按照所选择的软件生命周期模型及产品工作量的估计值,确定项目的各项任务和时间。 步骤3.
根据产品的功能WBS,分析各阶段任务的关键依赖关系,识别关键路径。确定哪些模块可以并行独立开发,哪些模块必须串行开发,定义出各功能模块的开发顺序,列出模块的开发顺序表,尤其要标明模块之间的依赖关系。 步骤4.
根据合同或市场期望的时间要求,产品工作量的估计值、各功能模块之间的依赖关系做出项目时间进度的估计,并在每阶段开始时,制定详细的阶段计划。在进行该步骤时,必须抛去一些不可用的工作时间,如节假日、员工请假、公司各项活动及其他所有在项目进行过程中必须抛去的非工作时间或非项目工作时间。 2.3.2 进行进度监控
成本、进度及功能是制约项目成功与否最重要的三大因素,因此对进度的监控也是项目计划及监控工作的一个重中之重,项目进度监控的主要步骤可系统地设定如下: · 采集初始计划和当前计划中的“计划开始/结束日期”,在每阶段/任务开始时,采集该阶段/任务“实际开始日期”。 · 每周采集项目任务的实际进度情况。
· 对项目进度进行分析,识别偏差。例如:我们可设定,拖延的工期/总工期*100%=15%为高等级的偏差,组织要求必须对计划进行更改;如果比率在5%—15%之间,由项目负责人组织制定相应的纠正措施,改善项目的整体状态。另外,对于进度的偏差计算,还可以有其他的设定方式,如以拖延的工期/阶段工期*100%来计算等。
· 对进度的监控可用PROJECT,采用甘特图的形式来进行。
· 分析偏差产生的原因,以及可能对项目产生的影响,给出建议措施。例如: ⟡ 在每周的测量中,对照细化的开发计划,如偏差较小,分析偏差产生的影响,可由项目负责人对阶段计划做细微调整,以消除偏差;
⟡ 当偏差有可能导致重大偏差时,应采取相应的纠正措施,避免重大偏差的发生。 ⟡ 当偏差达到域值(即重大偏差)时,应分析原因,进行重新估计。
通过上述对规模、工作量及进度的计划与执行,既可以根据自顶向下策划方法的特点对软件项目进行有效地策划,并对整个策划过程的结果根据其逻辑关系进行有效的控制,又可以通过对工作量的计划和控制实现对成本的计划与控制,而通过对规模的计划与控制实现对质量和范围的计划与控制。
总之,项目的计划与执行是一项关系到项目成败的关键活动,因此必须使用合理、正确的计划与执行方法来进行。理论和实践都证明自顶向下的估计方法是一种行之有效、可操作性极强的项目计划与执行方法,这种方法对于自底向上估计等其他策划方法也具有很大的借鉴意义。随着经验和数据的积累,计划与执行体系必将会越来越完善,我们相信项目的成功率也会越来越高。对项目计划的合理实施和监控,必将促进项目策划工作的进一步完善,而项目策划的完善又必将会为监控工作提供合理的监控基础,进而促进监控工作的顺利进行。通过项目经验及历史数据的不断积累和丰富,自顶向下计划与执行方法的作用将不断显现,其所能产生的经济效益和社会效益也将越来越大。
【相关文献】
[1]MARCEL KORTE.Confidence in Software Cost Estimation Results Based on MMRE and PRED[C].Proceedings of the 4th International Workshop on Predictor Models in Software Engineering, 2008: 63-70.
[2] ROGER S PRESSMAN. Software Engineering, A Practitioner’s Approach[M].Fifth Edition. McGraw-Hill Companies, Inc.
[3] MASOOD A BADRI, AMR MORTAGY.Effective Analysis and Planning of Ramp;D Stages: A Simulation Approach[J].International Journal of Project Management,1997,15(6):351-358.
[4] R S CHANDA, P K BHATTACHARJEE.A Reliability Approach to Transmission Expansion Planning Using Fuzzy Fault-tree Model[J].Electric Power Systems Research,1998,45:101-108.
[5] M ABDOMEROVIC, G BLAKEMORE.Project Process Interactions[J].International Journal of Project Management,2002,20:315-323.
[6] HARVEY MAYLOR.Assessing the Relationship between Practice Changes and Process Improvement in New Product Development[J].Omega,2001,29:85-96.
[7] K VINAY KUMAR. Software Development Cost Estimation Using Wavelet Neural Networks [J].Journal of Systems and Software, 2008, 73(1):93.
[8] 美国项目管理学会(PMI).项目管理知识体系指南(2000中文版)[M].北京:北京现代卓越管理技术交流中心.
[9] RUCHI SHUKLA. Estimating Software Maintenance Effort: A Neural Network Approach [C]. Proceedings of the 1st Conference on India Software Engineering Conference Table of Contents, 2008: 107-112.
[10] NIKOLAOS MITTAS. Improving Analogy-based Software Cost Estimation by A Resampling Method[J].Information and Software Technology, 2008, 50(3): 221-230.
因篇幅问题不能全部显示,请点此查看更多更全内容