肖永威。
本文简介:本文通过建立软件开发进度模型,建立周工作计划管理制度,按周统计软件开发工作完成量,并与软件开发进度模型比对,把完成的工作量线性化成项目进度百分比,并配合相关的管理制度和工作质量考核标准,进行项目进度的跟踪管理。
项目管理是当前软件产业中的热门话题。项目管理是为了完成预定的目标,对任务和资源进行计划、组织和管理的过程,通常需要满足时间、资源和成本等方面的限制要求。在项目管理三角理论中,有绩效(p)、时间进度(t)、费用成本(c)、范围(s)四要素。
假设s(范围)不变,c(费用)不变,预期的绩效(p)也不变,则时间进度(t)是项目管理的重要要素。针对时间进度要素,谈谈来自于应用软件开发实践的软件项目进度跟踪管理。
本文项目进度跟踪管理引用了cmm(软件能力成熟度模型)理论思想,适应spi(软件过程改进)。
本文通过建立软件开发进度模型,建立周工作计划管理制度,按周统计软件开发工作完成量,并与软件开发进度模型比对,把完成的工作量线性化成项目进度百分比,并配合相关的管理制度和工作质量考核标准,进行项目进度的跟踪管理。
本文内容包括典型项目开发进度情况举例、建立软件开发进度模型、开发工作完成量线性化、影响软件开发进度的几个要素和与实际工作相结合的进度跟踪管理等五个部分。
有一个典型的管理信息系统项目,项目内容是把当前分散的、c/s模式的管理信息系统,进行数据集中、业务系统升级。当前,项目需求已经完成,开发人员初步掌握中间件技术,公司为项目组配置了业务专家。用户要求用四个月时间达到试点运行状态,而项目组认为依靠公司现有力量,四个月内无法满足用户要求,于是修改了项目实施计划,采取分步实施的措施。
首先完成基础业务开发,其它部分在四个月后试点运行时继续开发,余下的决策分析部分在维护期继续开发。项目组在开发过程中,配以甘特图制定了严密的开发计划,进行项目进度跟踪管理,项目实际开发进度如下表所示。
表1从此表很容易看出,该项目开发进度从第三个月就开始失控,在第三个月,项目经理报的项目完成情况达到了90%,但实际上,项目经理所报的仅是**完成的行数而非项目完成情况,项目实际进度与其所报进度相差甚远。而且,对于项目进度评价忽视或者故意避开了工作质量因素,而工作质量恰恰是影响项目进度的关键因素之一。
这是个很有代表性的案例。我在进行项目管理经验总结的基础上,参考相关资料,建立起来的一套软件项目开发阶段的进度模型。
通常,软件开发公司用来衡量项目开发进度的标准和方法,是完成**或文档的工作量和完成功能点数量,适当考虑项目难易度修正,加以调整。这种方法不足的地方是过于简单,对影响项目进度的工作质量、项目复杂度、难易程度、项目开发风险、沟通和变更控制等诸多因素估计不足。往往是**已经写完,所有功能已经实现,但还不能达到项目的预期目标。
所以,用完成**或文档的工作量和完成功能点数量衡量项目进度是不科学的。
如上所述影响项目进度的因素很多,本文仅从项目复杂度变化、难易度变化、工作质量等主要方面分析其对项目进度的影响。
1、项目复杂度变化对项目的影响。
在项目初期,程序**较少,目标也很明确,故复杂度基本按线性曲线,缓慢增加,但当项目进展到一定程度上时,复杂度会快速增大。如下图1所示项目进展时的复杂度曲线。例如:
项目开始时只有用户需求,随着项目开展,需求分析说明书、设计说明书等文档增加,文档版本控制就变得很复杂。
图12、项目开发难易度变化对项目的影响。
在软件项目刚开始时,虽有不少困难,但多是表面的、浅层次的问题,随着工作逐步开展,这些问题会逐步解决,难度不太大,当工作全面深入展开后,开发中的深层次问题就会逐步被发现,越积累越多,项目开发难度就会快速增大。如下图2所示项目进展时的难易度曲线。例如:
开发中使用中间件技术,在项目初期,开发人员会研究如何使用中间件,但其高级使用技术和限制条件不会被掌握,这样中间件初级使用技术很快被掌握和使用,开发工作快速展开,但当工作逐步深入后,高级技术就被发现,被迫投入时间和人力进行研究,难度反而增大。
图23、项目开发工作质量的影响。
工作质量是影响项目进度的首要因素,工作质量主要包括:文档质量、**质量。“失之毫厘,差之千里”,项目初期的微小差错,就会给后期排除差错带来很大的困难,花费很大的精力。
图3如图3所示,开始时差错很少,当工作量、复杂度增加后,错误可能会快速增加。虽然出现差错是在所难免的,但为了保证项目的进度和质量,必须建立和健全相应的管理制度,加强督导。软件项目管理是“知识转移型”管理,有别于“资源消耗型”的管理,在制定管理制度时,要以人为本,充分调动员工主观能动性。
在项目开发过程中,经过上述各种因素的影响,最后,项目工作量完成曲线实际就如图4所示。
图4即项目完成工作量(**行数与文档的字数)开始非常快,然后逐渐趋于平缓,给人以停滞的感觉。这是软件开发项目必然规律,所以在项目管理中,不能简单的追求项目进度,要充分考虑以上诸多因素,才能正确指导整个项目按期完成,满足用户要求。
如上图4所示,开发进度模型是在数理统计基础上的,建立完成工作量和时间花费成指数曲线关系的模型,用完成工作量表示项目进度(本文中使用的项目进度曲线,都是用完成工作量表示项目进度的)。
在实际工作中,需要对完成的工作量、时间花费等不确定变量建立样本,然后对样本进行数理统计分析。
以数理统计理论中的多元非线性回归方法,建立数学模型,例如:根据实践经验可以采用灰色模型——gm(1,1)模型,这是因为完成的工作量是随着时间逐渐增加的,是增量型的,其样本满足光滑离散原始数列,符合灰色模型的使用范围。
总之,通过多种数理统计方式,建立软件项目开发工作完成量随时间变化的模型,也就是软件开发进度模型(本文重点不是研究开发进度模型,数学模型描述可参照相关数理统计方面的资料)。此数学模型是随着项目进度跟踪管理而逐步修正完善的。
同理,也可以对项目复杂度变化、难易度变化建立线性或非线性模型,在此不作**。
参照软件开发cmm模型的要求,一个项目的开发一定要有章可循,而且要做到有章必循,同时项目进度跟踪与监控是kpa的一项。所以,建立在经验上的时间与进度曲线模型(在图4中的进度曲线),可以看作时间是衡量工作进度的一种尺度,并且时间和工作量是非线性关系,虽然模型不精确,但是可以在实践中逐步对该模型进行完善。
工作量具体体现在开发周期上(标准级别开发人员需要的工作日),工作量一般通过常用的功能点分析法核定,设总的开发周期为tz,单个阶段的开发周期为tn。而实际上工作量完成情况是很难考核的,特别是正在进行中的项目,主要是靠经验模型主观判断得出大约数值。
如图5所示,每个阶段都有开发周期tn,占总工作量的百分比wn,阶段的进度曲线指标是sn0,实际进度曲线是sn。其中,进度曲线指标就是开发进度模型。
图5 节点的进度指标曲线。
把非线性进度线性化,形成时间可比进度,例如:假设10周的工作量,符合指标曲线sn0的每周就是10%,然后用实际曲线sn比对指标sn0曲线,得出线性化后的进度pn%。设按模型完成开发工作量所需要的时间为tn0,实际发生时间是tx,f(x)是开发进度模型,其中,x是时间变量,f(x)结果是理论完成的工作量,则:
tx=f-1(wx)
其中,wx是当前完成工作量。
则当前某个阶段工作进度为:
px = tx/tn
则当前项目某个阶段完成总的工作量的百分比为:
pn%×wn%=pzn%
从软件开发角度划分项目各个阶段,软件项目可划分为建设方案、需求调研、需求分析、设计、编码、测试、试点、推广、维护等阶段。
由于建设方案、试点、推广、维护阶段与用户关系密切,可控性差,先不做考虑。对于其它阶段,一般说来,在现代软件项目管理中各种资源的理论分配比例(按实际情况可以调整)是:项目需求分析阶段15%,系统总体/详细设计阶段40%,编码阶段25%,系统测试阶段20%。
对于一个大、中型项目,又可以在设计和编码环节拆分成几个小的子项目。为此,我们可以把项目各个阶段的任务画成树状结构。如图6所示。
图6对应各个阶段定义如表2所示。
表2其中,对开发阶段进行拆分,首先是分块拆分成若干个子系统,子系统再分成设计、编码、单元测试等阶段,所以各个子系统的工作量c1%+c2%+…cn%=1。
开发阶段每个子系统又由设计、编码、测试各个阶段组成,其各个阶段工作量百分比累加,cn1%+cn2%+cn3%=1。
总体各个阶段:a%+b%+c%+d%=1
如上所示拆分工作方式,则开发阶段工作进度,一般是取各个子系统开发最慢的进度,公式如下:
pc=min(pcn)
其中,pc 是开发阶段的进度,n∈,n是最大分块拆分数。
总体项目进度为:
p=pa + pb +pc +pd
软件开发进度跟踪管理,需要配套的工作,主要是做好计划(软件开发进度模型)、统计当前进度(工作完成量线性化)、监控工作质量管理,目的是保证计划和进度的有效性的。形成闭环管理的主要内容如下:
项目计划任务书。
项目里程碑(定期检查点)
软件项目工程管理项目进度计划
合同登记编号 项目进度计划。项目名称 新新图书管理系统。委托人 甲方 新新图书馆。研究开发人 乙方 实习生研发团队。签订地点 西安市。签订日期 2011 3 16 有效限期 2011 3 16至 2011 10 16 西安市信息技术管理办公室。新新图书管理系统 进度计划说明 本项目的进度计划采用渐进...
软件项目进度计划
根据对本项目的需求规格分析,采用图表方式描述的任务分解结果 wbs 如图所示,它是按照功能组成标准进行的任务分解,可随着系统的完善而不断增加和完善。图1 手机信息管理系统的wbs 根据wbs的分解情况继续分解出相应的活动,使用visio工具,将分解后的所有活动和wbs的 录入项目计划文件中,然后确定...
软件项目进度计划
根据对本项目的需求规格分析,采用图表方式描述的任务分解结果 wbs 如图所示,它是按照功能组成标准进行的任务分解,可随着系统的完善而不断增加和完善。图1 手机信息管理系统的wbs 根据wbs的分解情况继续分解出相应的活动,使用visio工具,将分解后的所有活动和wbs的 录入项目计划文件中,然后确定...