在制订项目进度计划时,必须以项目范围为基础,针对项目范围的内容要求,有针对性地安排项目活动。项目计划的编制可以分成七个步骤(图8-1)。
1.项目描述
项目描述的基础是项目立项规划书、初步设计方案以及可行性分析报告,其目的在于对项目的总体目标进行概要性的说明,建立项目实现的基线目标或者是确定项目的范围,是下一步工作的基础。
项目描述一般是以表格的形式进行说明,内容包括项目名称、项目目标、交付物、交付物的质量标准(验收标准)、工作描述、工作规范、所需资源估计、重大里程碑等,项目描述最后需要通过项目主管确认。
2.项目分解
图8-1 计划制订流程
在项目描述的基础上可以进行项目分解,一个项目总是由若干个工作任务构成的,分解的目的就是将项目目标分解为一个个相对独立、可以进行独立考量的工作任务。项目分解后的工作任务粒度不宜过大也不宜过细,特别是在软件项目当中,过细的分解如果到函数这一级实际上已经没有意义,此时系统设计还未开始,也不可能划分出函数。
工作分解的常用工具是工作分解结构(WBS),WBS主要是将一个项目分解为易于管理的几个部分,以便确保找出项目所需的所有工作要素。WBS通常是一棵面向结果的树,最底层是细化后的可交付成果,该树确定了项目的整个范围。WBS分解可以有两种类型:
(1)基于可交付成果的划分,上层一般是以可交付的成果为导向,下层一般为可交付成果的工作内容。
(2)基于工作过程的划分,上层一般是按照工作的流程分解,下层按工作的内容划分。
图8-2说明了WBS的两种不同划分方式。这两种方式不存在优劣的区分,只是从不同的角度对项目进行分解,其最终目标是一致的,但在实际使用时两种分解类型不能混用。
WBS分解结束后需要检查分解结果是否正确,检查的标准是:
·最底层的要素是否是实现目标的充分必要条件;
·最底层要素是否有重复;
·每个要素是否清晰完整;
·最底层要素是否可以定义清晰的责任人,是否可以进行成本估算和进度安排。
确认分解无误后对WBS分解任务进行编号,编号最常见的是采用分层编号的形式,可以用数字编号,也可以用字母编号或者混用,但上下层之间的编号必须清楚,如可以用A,A.1,A.2,B,B.1或001000,001001,001002,002000,002001这种形式,不能够是这样的:A,001001,001002,B,002001,这种方式无法看出上下层任务之间的关系。
最后WBS的结果可以用树表示,也可以用表格来进行表示,表8-1说明了WBS的表格表示方法。
图8-2 WBS分解
表8-1 WBS工作任务分解表
3.工作描述
工作描述需要对通过工作任务分解所得到的各项子任务进行详细说明,包括具体内容和要求,工作描述的成果包括项目工作列表和工作(任务)描述表。
项目工作列表的基本内容包括:工作代码(WBS编号),工作任务名称、输出(完成任务后应输出的信息以及对输出信息的规范和内容定义)、输入(完成本项工作所要求的前提条件)、负责单位、协作单位、子工作(WBS当中与本工作直接相连的下属工作),见表8-2。
表8-2 项目工作列表
工作(任务)描述表的基本内容包括:工作编号、工作任务名称、交付物、验收标准、技术条件、任务描述、假设条件(任务完成的前提条件)、信息源(获取本项目完成所需信息的来源)、约束(完成本项目所需的约束条件,比如时间、人员、价格等),其他(其他可能影响项目的因素及其防范措施),见表8-3。
表8-3 工作描述表
4.工作责任分配表制定
在工作分解结构图和项目组织结构图的基础上,将项目分解的各个子工作任务落实到具体的责任人。在一般情况下,一项工作并不是一个人就能够独立完成的,还包括其他辅助人员和相关部门,在工作责任表中应该明确的标识出来。对一项工作任务的具体责任可以简单地分为以下几类:实际负责、一般监督、参与商议、可以参与商议、必须通知、最后批准。
可以将工作任务、责任人和具体责任形成一个二维矩阵,见表8-4。
表8-4 工作责任分配表(www.xing528.com)
5.工作先后关系确定
任何工作都是有先后顺序的,这里面取决于三种因素:强制逻辑关系,工作本身具有严格的顺序,比如采用瀑布模型进行开发,那么需求分析和系统概要设计之间就存在强制逻辑关系;组织关系,这一类工作没有强制性的前后逻辑关系,比如一些并发性的工作,因为人员或其他因素的限制需要逐个完成,此时谁先谁后就取决于项目主管的经验;外部因素制约,有些时候工作的前后关系会受到外部因素的制约,同时这些工作之间又不存在强制逻辑关系,比如需要调研3个人,那么这3个人的调研顺序受到他们本身工作安排的限制。
工作先后关系的确定是从强制逻辑关系开始的,这类工作是项目中最多的,也是主要的工作,之后再考虑组织关系的工作,在处理组织关系工作顺序的同时需要考虑外部因素的制约。工作先后关系可以用单代号网络计划、双代号网络计划、GERT/PERT网络或样板网络等工具来进行描述,下面介绍前面两种。
(1)单代号网络(图8-3):是一种使用节点表示工作,有向线表示工作关系的网络图,简称AON,其中:每个节点代表一项工作,不能重复,再用数字序号表示工作时要按从小到大顺序排列。工作关系有四种:结束(上一工作任务)到开始(下一工作任务)、开始(一个工作任务)到开始(另一个工作任务)、结束(一个工作任务)到结束(另一个工作任务)、开始(一个工作任务)到结束(另一个工作任务),工作关系中不允许出现循环的情况。
图8-3 单代号网络
(2)双代号网络(图8-4):是一种用有向线表示工作,节点表示工作相互关系的网络图,简称AOA。双代号网络一般仅使用结束到开始的关系,因此为了表示所有工作之间的逻辑关系需要引入虚工作(有向线为虚线)加以表示。图8-4是图8-3的双代号网络表示。
图8-4 双代号网络
工作先后顺序除了用图形表示外,也可以用表格进行描述,表8-5给出了上述工作任务的网络计划工作表。
表8-5 网络计划工作表
上述工作关系所描述的都是紧邻的情况,比如A结束后马上开始B,有些时候存在更复杂的一些情况,比如A结束后需要经过n时间的等待才能够开始B(FTS),或者在A开始后经过n时间的等待才能够开始B(STS),或者在A开始后经过n时间才能够结束B(STF),或者在A结束后经过n时间才能够结束B(FTF)。这些情况的网络图绘制,读者可以参考相关的文献。
6.工作时间估计
工作时间一般是指某项工作从开始到结束的延续时间。工作时间估计是项目计划制订当中的一项重要基础工作,直接关系到各事项、各工作网络时间计算和整个项目完成所需要的总时间。一般在工作时间估计的开始阶段不需要考虑整个项目的工期,而是根据已有的资源、人力、物力和财力的前提下,按照正常工作开展的状态罗列所有工作所需的时间,之后再根据工期对时间进行调整。
在工作时间估计时,要注意的是资源需求(包括资源、人力、物力、财力)与资源能力(能够有的资源、人力、物力、财力)两者的关系并不能够直接的、线性的映射到工作时间上面。比如项目需要100个人100天完成,那么当只有50个人的时候,是否时间就只需要200天呢?如果是简单的重复生产可能是这样的,但对于软件项目就不一定了。
除了受到资源的约束以外,造成时间估计不准确的另一个原因是人的熟练程度。一个全部由熟手所构成的团队和一个全部由生手构成的团队,两者的时间肯定不一样。同样由生手构成的团队,团队的学习曲线对项目的时间影响也是非常大的。
对于时间估计可以采用以下几种方法:
·专家判断:专家根据历史的经验和现有的信息做出决定;
·类比估计:按照之前完成过的类似项目进行推测;
·单一时间估计法:估计一个最可能工作实现的时间;
·三个时间估计法:估计工作执行的三个时间:乐观时间a、悲观时间b和正常时间m,那么期望的时间t=(a+4m+b)/6,这种方式在敏捷开发中经常用到,当故事讲述结束后,大家一起来估算时间,从所估算的时间中取最大值、最小值和中间值,代入公式就是所期望完成的时间。
工作时间估计结束后,可以把时间填入表8-5网络工作计划表。
7.进度安排
进度安排的目标是确定每项工作的起止时间以及相应的资源配备。与工作时间估计不一样,在进度安排时需要考虑项目工期的约束,如果预计的项目时间超过约定的项目工期,就需要进行工作时间的压缩或者调整。
对进度安排常用的技术分析手段主要是关键路径法(CPM)(图8-5)。关键路径法可以确定项目中各项工作最早、最迟开始时间和结束时间,通过最早、最迟时间的差额可以分析每项工作对时间的紧迫程度和工作的重要程度。最早和最迟时间的差额称为机动时间,机动时间为0或最小的工作被称为关键工作(关键活动)。关键路径法的目的就是要确定项目中的关键工作,所有关键工作连接起来就构成关键路径。
图8-5 关键路径法
在完成项目的工期安排后,可以加上日期最后完成整个进度的安排,最后项目进度安排可以用带日期的网络图、甘特图、里程碑图、项目计划表等形式进行描述,图8-6说明了项目进度安排中常见的两种形式:甘特图和项目计划表。
图8-6 项目进度安排
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。