随着企业信息化的发展,从企业软件开始应用到软件为企业增加效益的周期越来越短,软件更新升级也越来越快;因此,软件项目是否能在理想时间内完成对企业经济利益影响也越来越大.令人优心的是,软件项目工期拖延的情况仍时常发生,大大减少了软件对企业利润增长的促进作用.项目计划阶段的优化工作秩序、合理分配资源、科学的估计项目时间并制定合乎实际的进度控制表,这些都是保证项目按期完成的关键因素.所以,对包含以上因素的软件项目计划管理进行研究,具有重要现实意义.
项目计划管理是在项目计划阶段对项目实施的管理,内容包括范围管理、时间管理和综合管理.一个科学的项目计划,不仅可以尽量缩短工程工期,减少资源浪费;而且,所制定出的项目时间表还可以对项目的进程进行跟踪控制管理,以掌握并调控项目的进度,从而保证项目的按期完成.下面将以笔者曾参与的某企业基于Web的PDM(产品数据管理系统)开发为例,具体讲述项目计划管理在一般中小型软件研发中的应用过程,
1 项目范围管理
项目计划管理的第一步是要明确项目的范围,项目的范围通常指项目产品的规模和产生该产品要做工作的规模.产品规模主要指产品功能和性质,工作规模包括开发时间、投资费用、设备资源、人力资源以及利用这些资源完成产品的生产运作过程。
图1所示的是项目范围管理中有名的三角理论,该理论反映的是项目的产品范围和工作范围应该保持平衡.当产品范围(交付物)保持不变的情况下,三角形的三条边资源(成本)、时间(合同工期)、质量(产品功能)相互依赖,相互牵制.比如,当提高质量时,要么增加资源(改变资源基线),要么延长产品的交付时间(改变合同工期).3者的关系就如同一个三角形,假如产品范一围是它的面积,质量、资源和时间是它的3条边,当保持面积不变时改变其中的一条边其它两条边不变是不可能的。根据三角理论提示,需要注意,在项目开发中,不仅要清楚需要做的功能,而且要避免开发无用的功能.因为当有限的时间和资源造成浪费时,有用功能的质量势必会受到影响.
如上所述 ,项目范围包含两个方面,即产品范围和工作范围,确定产品范围就是根据需求分析,制定出最后的软件产品所需满足的功能要求.确定工作范围,就是根据所划定的产品功能来分配资源并制定详细的工作计划.由所确定的产品功能到制定出详细工作计划的过程中,有一个关键步骤,就是工作结构分解,简称WBS(Work Breakdown structure)。
2 工作结构分解
工作结构分解(WBS)是按照项目内在结构或实施过程的顺序,将复杂大型项目一步步分解为局部、小型的工作任务,最后达到可由单人负责完成的具体工作任务清单的过程.它可以将项目分解到相对独立的、内容单一的、易于时间估计和成本核算的活动,并能把这些活动在项目中的地位与构成直观地表示出来.
WBS的层次模型如图2所示.从0级到2级,都属于产品(交付物)的划分;2级到3级是将局部产品
划分为任务的过程.划分为任务后,就可以估计任务的工作量并相应的分配资源.然后可以进一步将任务划分为工作.
工作单元划分完毕后,为了便于信息传递、综合管理与控制,需要为这些单元编上号码,为项目建立合适的编码系统很重要,这样在单元查找、变更、时间安排和费用安排时,会带来很多便利.编码的方式有多种,本项目采用的是任务序号编码方式.根据经验,工作量细分后在几天至一个星期内完成比较有利,这样不仅使时间估计误差较小,对时间的计划和跟踪、管理也较方便,以下是此次项目的关键部分,产品数据管理系统功能开发的工作结构分解示意图(图3),它在整个项目中工作排序为12号.
在工作细 分的基础上,由具体执行开发的工作人员根据经验和自身条件,对自己的工作进行时间估计.如果任务复杂的工作小组,可在估计完自身完成时间的基础上,用网络图法优化工作排序,压缩关键路径时间,由此得完成任务时间;如该系统编制的任务(12号任务),经此方法估算得正常完成时间约95d.估算完每个任务的时间后,下一步就可以给这些任务排序,并估算出整个项目的时间了.
3 项目时间估计和管理
项目工作任务网络图,简称网络图,是用来帮助编排和优化项目的工作任务和他们的顺序的图表制定项目计划的重要工具和手段.网络图主要有两种绘制方法,分别是秩序图(PDM)和箭头图(ADM).本例采用的是箭头图法.
3.1 网络图法排列工作任务
在工作时间估计时,为确保能得到比较可靠的完成时间,估计的方法主要有以下几类。(1)专家判断:专家判断主要依赖于历史的经验和信息,当然这种方法也有一定风险,(2)类比估计:类比估计意味着以先前类似的实际项目的工作时间来推测估计当前项目各工作的实际时间.当项目的一些详细信息获得有限的情况下,这是一种最为常用的方法,类比估计可以说是专家判断的一种形式.(3)单一时间估计法:估计一个最可能工作实现时间.(4) 3个时间估计法:估计工作执行的3个时间,乐观时间tp、悲观时间tn、正常时间tm,对应于PERT网络:期望时间t=(tp+4tn+tm)/6·
根据以上4种时间估计方法,研究该项目的特点.因开发本项目的团队技术经验并不丰富,方法(1)不可取;结合方法(2)、(3)、(4)对项目进行时间估计是比较科学的方式,最后再估算每一个项目活动的期望进度和方差.方差用以下公式计算:
结合以上分析,对该项目的结构分解及时间估计作出项目工作计划清单,如图4所示.然后根据工作清单和工作关系绘制网络图(见图5),图中圆圈代表工作单元编号,箭头方向代表时间顺序,箭头上数值代表估计工期.
3.2 求关键路径和所需时间在以上网络图中,找出必须的最长的工程路径,该路径即为关键路径.
由图5所示的网络图,可以看出关键路径为:01-02-04-06-08-10-11-12-13-14
所需时间 : r="25"+20+20+11+2+3+20+98+21+10=230d.期望时间比规定时间稍短,主要是给总工期预留一段缓冲时间,以应对不可预测事件的发生.
3.3工期及其概率及网络优化设路径的总时间为T(=Σt,作业路径),标准差为σ:,则在工期D内完工的概率尸可按照以下方式进行推算:
目工期8个月,D=240d,那么
从上面计算可得,在240d期限内完成项目的概率是89%,达不到一般95%以上的标准,因此要对其进行优化,主要是调整资源,压缩关键路径.采用逆算法,要达到95%的概率,则可推算出D=243.3d.通过该计算方法可以大致推算出按此项目计划,项目在某段时间内的完成概率,从而更好地把握项目完成时间.网络法计算的工期Tc与要求的工期Ts会有一定差距,若Tc>Ts,必须用网络图对工作秩序进行优化并调整相应资源,使其计算工期满足要求工期,且尽量减少因此而增加的费用.
网络图法确定了任务序列和完成时间之后,就可以制作整个项目和各工作小组的任务时间表,并可以用甘特图的形式跟踪管理.项目执行时,需重点抓住关键路径上的小组工作进度,保证关键路径上的任务能在最佳工期内完成,这样就确保了项目按期完成.
4 结束语
在基于web的PDM系统的开发过程中,虽然项目时间紧、任务重,但通过对工作的有效分解层层落实,并按任务进度表严格跟踪控制项目进度,使项目能有条不紊地顺利进行和按期完成.因此,通过该项目的例子,可以看出项目计划管理在软件研发中的重要作用.
软件开发过程具有高度灵活性,因而好多项目人员认为难以把握项目的变化,忽视了项目计划的重要性,这样缺乏有效的计划和管理,往往最后不自觉地延误了工期.制定项目计划过程中,项目经理需密切配合相关人员和部门,对时间的估算要尽量客观.这样制定出的项目计划,往往对控制整个项目的进程起着关键性作用,对协助项目管理人员分配资源、调配人员,按期完成项目,起着事半功倍的效果.