最近公司接了一个项目单,因为交期问题公司与工厂反复沟通,由于公司内对工厂生产并不熟悉,所以在交期中十分依赖工厂,工厂也十分依赖管理经验。回想一下,我们做项目最重要就是项目计划,某些原理上与工厂的生产计划是相通的。所以我们以CPM(关键路径法)来测算了一下项目交期问题。
在项目管理中,需要考虑的几个问题是:
1、如何用图形表示项目?
2、如果没有延迟发生,完成项目需要的总时间是多少?
3、为了达到项目完工时间要求,各项活动最晚开始时间,最晚结束时间分别是多少?
4、如果没有延迟发生,各项活动最早开始时间,最早结束时间分别是多少?
5、为了满足项目交期要求,不允许出现延迟的关键”瓶颈“活动是哪些?
6、在不影响交期的情况下,其他活动允许延迟的时间是多长?
为了解答上述几个问题,我们回头来看工厂流水线生产的计划。以流水线生产沙发的过程一般包含 设计打样、原材料准备、框架制作、填充加工、面料裁剪、组装和质检包装等工序。各道工序的作业时间受设备、工人等因素影响,大致如下:
1、设计打样:一般需要3-7天;
2、原材料准备:如采购、预处理等,约2-5天
3、框架制作:如切割、组装、打磨、喷涂等,一般耗时1-3天
4、填充加工:如填充物的加工等,一般0.5-1天
5、面料裁剪:如面料裁剪、拼接等,一般0.5-1天
6、组装:包括海绵填充、面料包裹、五金安装等,通常花费1-2天
7、质检包装:一般在0.5-1天
以上的家具工厂流水线生产的一般工序,我们将这些工序以图形形式来表示,如下图:

这样我们就以图形表示出这个项目,并直观地展示了项目的活动流。接下来我们再找出这个项目的关键路径。
要找出项目的关键路径,我们从第2个问题(如果没有延迟发生,完成项目需要的总时间是多少?)出发,首先对图中标出每道工序大致需要的工时,如下图所示:


根据上图,任何给定路径中的活动都只能一个接一个按照顺序进行而不能重叠,所以项目工期就不可能比路径的长度更短。项目工期等于项目网络中最长路径的长度,在这条路径中的活动可以顺序执行而不需要任何停顿,到达终点所需要的时间正好等于该路径的长度。从其他路径到达终点的时间不会长于这条路径,这条最长的路径被称为关键路径(critical path)。
根据上图显示的工序和工时计算关键路径的步骤:
1、列出所有可能的路径:
路径 1:A -> B -> C1 -> D1 -> E1 -> F1 -> G1 -> H1 -> I -> J -> K
路径 2:A -> B -> C2 -> D2 -> E2 -> F2 -> G2 -> I -> J -> K
路径 3:A -> B -> C3 -> D3 -> E3 -> F3 -> I -> J -> K
路径 4:A -> B -> C4 -> D4 -> I -> J -> K
2、计算每条路径的总工时:

3、确定关键路径:
比较各路径的最长工时,路径 1 的最长工时为 16.5天
(预计)项目工期=16.5天
现在来回答其他三个问题:
》 如果没有延迟发生,各项活动最早开始时间,最早结束时间分别是多少?
》 为了达到项目完工时间要求,各项活动最晚开始时间,最晚结束时间分别是多少?
》在不影响交期的情况下,其他活动允许延迟的时间是多长?
这里“不发生延误”的意思是:
(1) 每项活动的实际完成时间和预计工期正好吻合;
(2) 一旦一项活动的紧前活动完成,这个活动就要马上开始进行。
在PERT/CPM中,我们知道一项活动开始于其最早开始时间,而 完成时间=最早开始时间+活动时间。从活动网络图中,我们可以看出
最早开始时间规则: 一个活动的最早开始时间就是所有紧前活动的最早结束时间中最大的一个时间;
最迟结束时间规则: 一个活动的最迟结束时间等于其所有紧后活动最迟开始时间中最小的一个。
所以,一个活动的最早结束时间 =最早开始时间+活动工期 (即:EF=ES+工期)
一个活动的最迟开始时间=最迟结束时间-活动工具(即:LS=LF-工期)
获得所有工序的最早开始时间可以使用 前向追溯(forword pass)来计算,而获取所有工序的最迟开始时间可以使用 逆向追溯 来计算。
活动的时差(slack of anacitivity) 就是 活动的最迟结束时间和最早结束时间之差:时差=LF-EF=LS-ES
各路径的时差计算如下:




在以上计算中,一些活动的时差为零,这就意味着在这些活动中的任何延误都会影响到整个项目的完成时间,所以这些活动都应在关键路径上,即拥有零时差的活动都在项目网络的关键路径上。
上述为日常家具生产的工序,由于公司的项目单在交期上并不能与工厂正常生产安排保持一致,需要工厂根据交期对生产计划进行重新安排。许多工厂软件会支持生产计划的分配。如果没有这些工厂软件,使用PERT/CPM来估计还是具有一定的参考意义。在上述网络图中,由于非关键路径上的工序都存在时差,所以在具体工时上都具有一定的弹性,为了缩短项目的总工时,可以考虑放慢非关键工序的进度,减少这些工序上的人力、资源,转向关键工序的工作,以使关键工序的工时缩短来达到目标。从上述计算中,我们按时序将人力、资源进行绘制,如下:




由于每道工序的人力需求很不均匀,假设工厂资源 有限,对工序调整的基本原则可以:
(1)尽量保证关键工序的日资源需求量
(2)利用非关键工序的时差错开各工序的使用资源时间
(3)在技术章程允许的条件下,可适当延长时差大的工序的工时,或切断某些非关键工序,以减少日总需求量。
具体操作是按资源的日需求量所划分的时间段逐步从始点向终点进行调整。
如果需要缩短工期,考虑到每项工序都需要一定的人力和资源的投入才能完成,工序的总成本是由直接费用与间接费用相加而得,直接费用就是完成各项工序任务所需的人力、资源、设备等费用,间接费用则包括管理费、办公费等。在一定条件下,工期越长,间接费用越大;工期缩短时直接费用增加而间接费用减少。由于工厂正常交期并不满足公司的项目单的交期要求,假设要把项目完成时间从16.5压缩到16天,对工序进行应急处理的最省成本的方法是什么?
增加额外的资源来缩短活动时间,通常会导致项目成本的增加,所以要找出只需要最少资源就可以紧缩活动时间的活动,然后对这些活动的活动时间进行必要的紧缩,使我们能够在期望的时间内完成项目。每道工序能被紧缩的时间及需要耗费的资源等相关信息,这需要收集:
正常工时下的工序成本
紧缩工时下的工序成本
假设收集到的数据如下:

时间-成本平衡的CPM方法(CPM methodoftime-cost trade-ofs)就是确定应该把每个活动进行到什么程度的应急处理,以使项目的预计工期缩短到希望的水平。
我们应用线性规划来求解该项目的计划。在PERT/CPM中,一项活动开始于其最早开始时间,而完成时间=最早开始时间+活动时间;
如果活动具有松弛时间,那么活动就不需要从最早开始时间开始,这种情况下,有 完成时间 > 最早开始时间+活动时间
由于不知道一项活动是否会在最早开始时间点开始,所以一般采用 完成时间 最早开始时间+活动时间 来说明活动完成时间、最早开始时间和活动时间的一般关系。
我们采用线性规划来求解最低成本的工时安排。
在线性规划中,要解决以下几个问题:
1、问题定义:
怎么分配资源满足交期要求?
2、分析问题:
考虑交期主要受关键路径的影响,要缩短交期,就需要对关键路径上的工序作业重新调配资源分配。
3、收集数据:
最终应收集的数据为:正常工期、紧缩工期,正常工时成本、紧缩工时成本
4、构建模型:在建立模型时应考虑:
1)决策是什么:
关键路径上的工序的实际工时。
2)决策的约束是什么:
正常工期 实际工时
紧缩工期
实际 总工时 = 16
3、决策的总体绩效指标是什么?
在满足总工时=16 的条件下,费用成本总低。
我们可使用EXCEL电子表格来建立模型,其中,在模型中:
1)需要对一系列工序的工时制定决策,可变单元格则用来显示这些实际工时;
2)每一道工序的实际工时用约束条件来描述;约束条件左边通常是一个输出单元格;右边为数据单元格;
3)工序的实际工时决策以输入到目标单元格的一个总体绩效测度指标为基础,其目标是最小化目标单元;
在建立EXCEL电子表格模型时应考虑的三个问题:
1)要制定的决策是什么?
2)这些决策有哪些约束条件?
3)这些决策的总体绩效测度指标(meansof performance)是什么?
建立一个线性规划模型时,数据单元格、可变单元格、输出单元格和目标单元格形成的模型如下:
数据单元格:包含收集到的数据 (灰色) 数据 → 数据单元格
可变单元格:包含要制定的决策 (黄色) 决策 → 可变单元格
输出单元格:显示的结果是根据可变单元格计算得到的 约束 → 输出单元格
目标单元格: 显示的是决策的总体绩效测度指标(橙色) 绩效测度指标 → 目标单元格

运行模型,得到总优解:如图中黄色部分的实际工时。
由于关键路径的紧缩没有导致关键路径发生改变,故只需要按上述结果调整关键路径上工序的工期。如果在调整后关键路径发生改变,还需要重新进行计算资源分配。
网络计划的制订包含许多不确定的因素,在计划实施阶段还必须不断检查,分析,及时采取措施修订计划,才能确保计划的实现。
工期调整后还应考虑:如何对成本进行实时监控,以使项目成本控制在预算之内?