(本文是学习的笔记,与大家分享,一起进步)
4.
创建网络图
.
网络图,顾名思义就是一个有网络形状的图表,网络图又叫
PND
,
PND
是所要完成的工作的流程图,
PND
,项目网络图,和网络图都是同一个内容,只是名字不一样。网络图对于一个长期的项目是比较合适的,对于短期的项目,使用甘特图是很理想的,但是甘特图有一下的一些缺点:
l
甘特图不能显示每个工作单元的详细信息,
l
甘特图只显示任务顺序,
l
甘特图不能清楚反映多阶段项目中的任务的顺序
l
甘特图不能反映可以完成项目的最短路径
l
甘特图不能反映资源的使用情况。
PND
使得工作流从概念到现实更加直观。网络图给工作单元提供了详细的信息,使得项目经理可以分析任务,资源,以及给每一项任务分配时间,可以使用
PND
确定工作的流程并预计项目完成的最早日期。对于以下的情形,使用网络图是非常理想的:
l
详细的项目规划:网络图对于持续几个月甚至是几年的项目来说是很重要的,因为网络图可以将与项目范围有关的每一个任务相关,通过网络图,项目经理,管理层和项目团队可以从较高层次上看到整个项目计划,然后放大项目计划的具体部分。
l
实时跟踪:当任务按时或者超时完成时,所用的时间单元能够准确的显示项目中相关任务之间的影响,假如使用软件来跟踪项目实施,那么这种影响可以通过软件自动反映给你,如果有四个任务依赖于同一个任务,而这个任务又推迟了两周,那么,这项没有准时完成的任务现在又把与之相关的任务向后推迟了两周。网络图能够显示出这种影响,并使得项目经理通过调整资源活着别的依赖的任务对这种变化采取相应的措施。
l
应急计划:网络图允许项目经理在项目计划中任何单元的“
what if
“这样的场景中采取措施。项目经理可以调整时间单元来了解工作单元对整个项目的影响。例如一个工作单元推迟了两个星期,对相关的任务产生的影响显而易见,但是如果提前完成了两周,又是什么样子哪,如果奖金制度根据项目的完成日起来制定,对于一系列的工作单元,每个工作单元都从他们预计完成的时间中节约下来一天,这对所有的后续任务产生直接的影响。
l
资源控制:网络图显示工作流和已经完成的任务对项目的剩余部分的影响。通过利用甘特图给一个工作单元来分派资源,项目经理可以增加资源或者删除跟配给一个任务的资源,使得这项任务的完成日期提前或者延迟。资源可能是工作人员,也可能是物质对象,比如宽带,高速度计算机以及租借的设备。
使用优先图法
:
可以通过在白板上制定工作单元来开始一个
PND
,就像为
WBS
所做的一样,这是一个好的方法,但是项目经理可以使用优先图法来创建一个流动的项目结构,而不是一个活动的平直的时间线。每个任务使用一个箭头表示,箭头的一段是活动的开始,箭头的另一端是活动的结束。使用这样的方法表示一个大规模的项目是比较繁琐的。使用另一种替代的方法来取代这种方法:
PND
,
PDM
要求项目经理评估每一个工作单元并且决定那些任务是他的后继,那些任务是他的前驱,一旦获得了这个消息,就可以把
PDM
迷宫用小片组合在一起,必须仔细考虑每一项任务的放置,因为所有的任务是互相连接的,即使他们被安排在同时进行。每一个使用
PDM
的网络图中的工作单元用一个矩形框来表示,称为活动节点。前驱节点与后继结点之间用箭头连接起来,并且总是在后继者的上游。使用
PDM
创建网络图时,项目经理必须决定完成任务的顺序。基本上项目经理思考的问题是:那些任务必须在下一个任务开始之前必须完成,项目经理要决定在网络图上使用的最小工作单元,不能让工作单元太短而无法使用。根据项目,可以让工作单元持续几天而不是几个小时。
一个矩形代表网络图中的一个单独的任务,当你需要在网络图中增加任务时,根据前驱或者后继的关系吧任务用箭头连接起来,正如我们想象的那样,阅读网络图的顺序是从左到右,从上到下。图中的每个任务都必须有前驱和后继,除了第一个和最后一个。整张图都是一个联通的图,这样项目经理就可以根据这个图来跟踪项目。
任务之间的关系描述了项目中任务的顺序关系,项目经理需要一份项目间关系的准确说明以便于对网络图中的每一项任务做出分析和调整。任务之间的依赖关系有四种:
1.
完成到开始(
finish-start
)这是一种常见的关系,要求后继必须在前驱完成之后开始,
2.
开始到开始(
start-start
)这些任务原来就关系密切,应该同时开始但是没有必要同时结束,
3.
完成到完成的关系(
finish-finish
)这种关系要求前驱任务和后继任务必须同时完成,比如开发一个应用程序和完成用户的培训。
4.
完成到开始(
finish-start
)这种关系比较少见,需要后继任务完成之后前驱任务才开始。
5.
实施项目的约束,
约束是基于项目之间的关系的边界或者限制。项目约束比如项目预算设定,固定的最后期限,有限的计算机硬件资源、分配特定技能的资源等。约束是限制决策的各种因素,这些约束应该被文档化,评估他们的风险,同时针对这些约束,项目经理规划如何满足项目目标,在安排进度的时候,项目经理需要确定各个活动之间的约束关系,活动之间的
FS
关系也成为硬逻辑,硬逻辑是活动间的固有关系。软逻辑是项目经理根据经验,项目条件、时间和其他原因而决定的任务之间的关系,这种关系也叫做定性逻辑,比如根据经验,在某些模块完成之前对其他的模块进行单元测试。约束一般有以下的几种:
1.
日期约束:通常在项目的管理中,项目已经预先给出了最终的期限,这就要求项目经理的工作从这个完成时限倒计时的完成工作。问题在于确定最终期限的人可能不了解在给定日期内完成项目需要做的工作。但是这常常是项目管理部门的工作方式,制定一个完成期限,而所有的工作必须在那个期限之前完成。只要有可能,项目经理就要尽量避免对任务使用具体的日期,除非绝对要求这个日期,你应该避免日期约束的理由是:一个确定的任务必须在一个具体日期完成,而不管它前面或者后面的任务的完成情况。分派任务的最好方法是用时间单元,然后根据前驱任务完成的最好和最坏两种情况来预计这项任务何时发生,日期约束有以下三种:
a)
不早于,这种约束说明一项热舞在一个具体的日期之后的任何时候都有可能发生。
b)
不晚于,这种约束是最终期限,任务必须在这个日期之前结束。
c)
定于次日,这是最强的时间约束,这种情况下没有任何的其他时间可以调整,因为任务必须在这个日子完成,不能快也不能慢。
2.
管理约束:管理约束是由于管理层包括项目经理的决定作为依赖关系而施加的。比如一个项目的活动可能是首先开发出数据库,之后开发网站应用程序,而目前项目经理把
FS
管理修改为
FF
关系,即要求开发数据库和开发网站应用程序同时执行。
3.
技术约束:技术约束起源于
FS
关系,在
IT
项目中最常见,任务从开始到结束在逻辑上是连续的,这些约束在任务开始时是最简单和最可能的约束,在构建网络图时可能碰见的技术约束有两种主要类型:
a)
任意约束:这种约束允许项目经理在基于有根据的猜测的情况下来改变活动之间的关系,比如
A->B
为可以同时开始的两个任务,但是
B
必须在
A
全面结束之后开始是比较合适的,于是将两个任务的关系由原来的
SS
修改为
FS
。
b)
资源约束:项目经理可能会根据特定资源的限制选择把两项任务排成
FS
而不是
SS
,例如,如果你正在管理的一个项目中每一项任务都要使用程序员
A
,而你只有一个程序员,那么就需要吧
SS
关系的约束修改为
FS
的关系,以便于
A
有足够的时间。
4.
组织约束:在有些项目中,项目的成功需要有外来的项目的成功,因此在活动中就不能完全使用网络图来表示,对于这样的活动需要作为
FS
关系
6.
构建网络图:
由于网络图会比较长,并且是项目的详细反映,所以不要一开始就把它存放到电脑中,构建和执行网络图的最好的方法是利用即时贴把它放到白板上,项目经理应该在即时贴上定义开始的工作单元,然后在另外的一端即时贴上定义项目的完成,这样开始工作,把起始工作放在左边,把可交付的成果放在右边,这样项目经理就可以和项目团队用活动的列表来确认工作单元之间的关系了。可以通过活动之间的先后关系将活动添加到
PND
图中,这可能是一个比较长的过程,但确是完成
PND
网络图的必经之路,在构建网络图的过程中,会经常移动活动,改变活动之间的关系,这就是为什么要使用即时贴的原因,一旦草拟出网络图,就可以为每一项任务制定时间单元,可以使用
WBS
详细的为每一项任务反复的分配时间量。一旦记录了时间单元,就可以给任务分配资源,并且确认将要执行的任务之间的关系。必须考虑可以利用的资源,以便于决定网络图中的任务能否真正的同时进行。也就是要避免资源的冲突,一旦构建出了初始图,要对任务列表和
WBS
进行检查,已决定是否有任何的遗漏。如果发现了遗漏,就需要对任务列表和
WBS
进行修改以反映遗漏的任务和交付的成果。不仅要检查任务间的相互关系,而且还要检查该任务的上游和下游的任务关系,回顾这些任务,看看是否可以修改这些任务,以便于节约时间和资源,如果可以,重新安排必要的任务来更新图,可以承担的风险与可以预见的结果之间的平衡需要认清每一项任务之间的关系类型。项目经理必须考虑商业循环,假期以及每一项任务分配的时间间隔。一旦网络图创建完毕,在执行计划前,留出一天或者两天的时间,让团队考虑一下额外分配的任务或工作流中优先于执行计划的其他需要考虑的问题。一旦重新确定了网络图,就需要考虑网络图的风险:
1.
有足够的资源完成该项目吗?
2.
时间估计的精确吗?
3.
有太多的并行任务吗?
4.
资源的覆盖面太窄吗?
5.
这是一份论证过的计划吗?
6.
这份计划现实吗?
通过考虑以上的一些问题,这个网络图基本上就可以更加完善了,剩下的就是要分析网络图了。
7.
分析网络图:
IT
项目管理中最让人满意的做法是逐步观察项目网络图,从每项任务到最后的提交结果逐步的检查项目,项目网络图不是一成不变的,随着项目的进展,项目经理可能随时调整网络图以便于在完成日期之前完成项目。创建好网络图之后,就可以确定其关键路径,这个关键路径是决定项目完成日期的所有涉及活动的执行顺序,关键路径是项目从开始到结束经过的最长路径,之所以被称为关键路径,是因为关键路径上的所有活动的延迟都会导致完成日期的延迟。
关键路径上的活动不能延迟,那么非关键路径上的活动是否可以延迟,答案是肯定的。但是每个非关键路径上的活动的延迟是有一定得限度的,这个限度成为项目浮动。关于项目的浮动,有三种不同的度量标准。
l
自有浮动,这是一个活动再不延迟后置活动最早开始时间的情况下,本活动可以浮动的时间量。
l
总浮动:活动在不延误项目完成时间的情况下,本活动可以延迟的时间。
l
项目活动。这是在不影响客户要求的完成时间内,项目可以延迟的总时间。
计算每个活动的浮动的最简单方法就是找出本活动的最早开始时间和最晚开始时间。首先去定项目中活动的关键路径,可以采用寻找最长路径的算法找出项目的最长路径,这个路径就是项目的关键路径,关键路径上所有活动的浮动总是为
0
。在找出关键路径之后,根据正推法找出活动的最早开始时间(
ES
),再根据倒推法,由最晚完成时间倒推最晚开始时间,由此可以根据最早开始时间减去最晚开始时间(
LS
)就是本活动的项目浮动时间。在同一条路径上项目活动浮动时间是一样的,这个时间代表这一条路径上活动总共的浮动数,并非每个活动可以浮动的时间。
调整项目进度:一旦确定了关键路径,并把时间转化到日程表上,计算了假期和周末之后,就可以根据项目的开始日期来预测完成日期。在实际的项目管理中,网络图预计的日期与管理部门所要求的目标日期不一样,并且经常是超过管理部门要求的日期。在这个时候,项目经理仍然要管理项目,为了赶在最终期限之前完成项目,项目经理要不断的调整项目中的关键路径,这就是所谓的进度压缩。通过调整任务开始时间或者通过增加额外的资源,项目可以再较短的时间内完成。为了改进项目进度,可以采用下面的
4
个过程:
l
快速跟踪:这个方法就是让关键路径上顺序执行的活动并行执行,比如在第一个阶段的项目开始测试时同时开始第二阶段的项目,这种做法常常会增加项目的风险。
l
赶工:赶工是项目经理通过增加更多的资源来缩短活动的历时,比如需要修建
10
米
高的墙,需要
10
人
/
天,一个人的话需要
10
天干完,如果增加为两个人,就会在
5
天做完。赶工并不能总是凑效,比如安装一个操作系统需要
60
分钟,分配两个人安装任然需要
60
分钟,因为这些活动的历时是固定的,由于人力成本的增加,赶工常常增加项目的成本。
l
超前时间:超前时间是个负时间,本来顺序执行的活动,后一个活动的执行需要前一个活动执行完毕之后才能执行,可以安排在第一个活动开始之后第二个活动基于前一个活动已经部分完成的成果之上开展工作。
l
滞后时间:滞后时间是等待时间,增加了两个任务之间的延迟,即在前一个活动完成之后若干小时之后才能开始下一个活动,若干时间的停滞就成为滞后时间。滞后时间通常会延长项目的工期。
在进行项目压缩中,可以参考以下的步骤实施进度压缩:
l
分析关键路径,以便尽可能提前任务的开始时间。
l
考虑任务间的关系,看能否把
FS
的关系修改为
SS
l
确定需要滞后时间的任务,评估其前置任务,看能否前移。
l
通过改变任务间的关系类型来考虑任务以及可以接受的风险。
l
考虑给任务增加额外的资源以缩短完成时间。
8.
管理预留:
在每一项任务的产生过程中,项目经理经常会夸大任务完成所估算的时间,项目计划应该总是能反映任务完成所需要的准确时间,可以使用
PERT
中的最乐观值和最悲观值以及最可能值来估算项目。切忌不要因为考虑了消极因素而增加每一项任务所需要的时间。有一个法则声明:扩展工作是为了填补时间以便能够完成。这就是某些机构工作比较松散的根源,如果一个工作只需要
1
个小时就能完成,而给他们分配任务的时间是
2
个小时,那么他们会准时的在第二个小时结束的时候完成,以显示出他们计划的严密性。工作之外的另一个小时则是用在聊天,吃零食等小事情上。作为项目经理,应该使用管理预留,管理预留是一项添加在项目末端的人为任务,给储备所分配的时间一般是项目中完成所有任务需要时间的
10-15%
。如果一个活动超出了项目分配的时间,则可以使用管理预留,而不是在每一个任务间隔上。管理预留可以使得项目经理用百分比来查看项目的进展情况,如果一个项目进展了
40%
,但是却是用了
60%
的管理,如果余下的任务继续保留这个趋势发展下去,这个项目就会陷入困境。
9.
使用Microsoft Project
一旦创建好了网络图,就需要一个工具把设计转换为电子形式,以便于协助项目经理管理,
Microsoft Project
是个不错的选择。当一项任务输入到
Microsoft Project
中,需要给这项任务指定约束,并确定它的完成时间,项目的性质、工作单元以及任务的紧迫性,这些决定了指定任务的约束类型,约束有柔性的,半柔性的和刚性的。
柔性约束:这种约束只有一个历时时间和前驱任务,以及后继任务,柔性约束没有约定何时开始,何时结束。
半柔性约束:这种约束与柔性约束相比多了一个强制性的时间限制,即必须在某个时间点之前或之后点开始或者结束。
刚性约束:这种约束指定事情必须在某个时间点发生,比如必须在某个时间点开始,活着必须在某个时间点结束。