怎样进行IT项目进度管理
2014-04-29周彬祥
周彬祥
摘要:项目进度管理是指在项目实施过程中,对各阶段的进展程度和项目最终完成的期限所进行的管理。项目进度管理包括两大部分的内容,即项目进度计划的制定和项目进度计划的控制。
关键词:进度管理进度计划进度控制
IT——信息技术,泛指IT产业;PM——项目管理。项目管理是第二次世界大战后期发展起来的重大新管理技术之一,最早起源于美国,后由华罗庚教授50年代引进中国,其重要性日渐突出。
对于一个项目,工期、费用和质量是项目的三大目标,而工期——或者说进度又是最核心的,那么“进度控制是项目控制的首要内容,是项目的灵魂。”——中国项目管理研究委员会秘书长、西北工业大学管理学院教授白思俊。
项目进度管理是指在项目实施过程中,对各阶段的进展程度和项目最终完成的期限所进行的管理。项目进度管理包括两大部分的内容,即项目进度计划的制定和项目进度计划的控制。
一、为什么要进行项目进度控制?
项目进度控制是项目经理的一项重要职责。俗语说的“时间就是金钱”在这里体现得再明显不过了。按照项目的定义,“自驾车回老家过年”也是一个不折不扣的项目,只是它更贴合大家的生活,更容易引起共鸣,我们就拿它来做例子说明。
从乘客的角度,如果坐车很久,但是没有达到预期的目 的地的时候,就会产生疑问,一般都会去询问司机“到哪里了”,如果司机的回答没有那么令人满意,这个疑问就会积累。积累到一定程度,就会开始怀疑是否迷 路,如果这个疑问一直无解,最终就会要求停车问路。如果坐的是出租车,就会导致乘客下车,换车继续前进。
人对一个事物的完成都会有自己的“心理预期值”,这 个值会随着人对该事物的了解的加深而进行调整,并变得越来越准确。IT软件项目进行过程中同样如此,因为软件项目的“不可见”特性,客户心理更脆弱和不稳定。如果每次项目经理给出的进度都是无法验证的,客户的疑问就会积累,最终到无法忍受而爆发。
二、项目进度计划
1、项目进度计划的编制
一个项目往往是由若干个相对独立的任务链条组成的,例如一款开发新PC产品的项目就需要有应用、机箱、主板等不同的子项目系统,一个ERP开发的项目就需要有财务、进销存、人力资源等不同的子系统项目,因此,各链条之间的协作配合就直接关系到整个项目的进度,这里可以用到著名的"木桶理论",即进度最慢的项目就会是整个项目进度的代表。
进度管理,可以从两个方面来理解,一方面是要制定一个可行而且高效率的计划,而另一方面则是要将此计划坚决的贯彻执行。
a、项目活动排序,或者说确定工作包的逻辑关系。活动依赖关系确认的正确与否,将会直接影响到项目的进度安排、资源调配和费用的开支。项目活动的安排主要是用网络图法、关键路径法和里程碑制度。
b、项目历时估算。历时估算包括一项活动所消耗的实际工作时间加上工作间歇时间,注意到这一点非常重要。历时估算方法主要有:类比法,通过相同类别的项目比较,确定不同的项目工作所需要的时间;专家法,依靠专家过去的知识、经验进行估算;参数模型法,是通过依据历史数据,用计算机回归分析来确定一种数学模型的方法。
c、制定进度计划。制定进度计划就是决定项目活动的开始和完成的日期。根据对项目内容进行的分解,找出了项目工作的先后顺序,估计出了工作完成时间之后,就要安排好工作的时间进度。随着较多数据的获得,对日常活动程序反复进行改进,进度计划也将不断更新。
对于项目管理者,要其在项目初期就预见整个项目的一个精确的时间周期,恐怕是一件不太现实的事情;但如果是一位拥有非常丰富的项目管理经验的项目经理,他根据以往项目的信息估计、结合项目自身的特点(包括项目的范围和可利用资源状况等)制定出一个基准计划也不是一件太难的事情。估计项目开发周期的一个最经典的方法是:根据所有相关的信息,分别估计出乐观工期(To)、悲观工期(Tp)和最可能的工期(Tm),然后利用公式期望工时Te=( To +4Tm+Tp)/6得出基准计划的时间。表面看来,作计划和考虑问题的时间占用得多了,但实际上,从总耗用时间量来计算,却节省了许多宝贵的———即压缩流程的时间,最有效的利用了每个时间单位。
安排好了的进度计划需要进行优化,网络计划技术是一种科学、有效的管理方法,是项目进度控制,特别是负责项目进度控制的完整的计划管理的理论基础,利它,可以优化整个项目的进度计划。
绘制进度时间表常用的网络计划技术方法是甘特图法。它是以横线来表示每项活动的起止时间。甘特图的优点是简单、明了、直观,易于编制,是小型项目中常用的工具。优化进度计划的一个常用网络计划技术方法是关键路径法,项目是由各个任务构成的,每个任务都有一个最早、最迟的开始时间和结束时间,如果一个任务的最早和最迟时间相同,则表示其为关键任务,一系列不同任务链条上的关键任务链接成为项目的关键路径,关键路径是整个项目的主要矛盾,是确保项目能否按时完成的关键。
直接影响IT项目进度的还有许多软技巧,其中的三个重要因素是:进度要与IT项目范围、成本、质量、采购的协调;掌握正确的需求调研方法;缩短团队的组建与磨合时间。
2、人员工作量分配
任何的项目都少不了一定数量的成员,成员的多少和分配也一定的决定了项目的成败,尤其是项目的成本。项目人员分配的有以下两个经验:
a、不能在项目后期增加人員,因为会增加人员间通讯的成本开销
b、人员间的通讯(沟通)会提高软件生产率和质量
c、适当的延长开发周期,可以减少人力例如一个软件项目的人员的工作量分配比例经验: (40-20-40规则)
·10%~25%软件需求分析
·20%~25%软件设计
·15%~20%编码
·30%~40%测试语调试
3、任务优化
任何一个项目都是由若干个相对独立的任务链组成的,只有在任何一条链都已经优化的基础上,才可能进行系统的优化,因此,保证每条任务链的效率是整个项目进度优化的前提和基础。
通常,可以采用设置“里程碑事件”的方法来保证单独任务链的最优。
所谓“里程碑事件”,往往是一个时间要求为零的任务,就是说它并非是一个要实实在在完成的任务,而是一个标志性的事件,例如软件开发项目中的“alpha测试”,“测试”是一个子任务,“撰写测试报告”也是一个子任务,但“完成alpha测试报告”可能就不能成为一个实实在在需要完成的子任务了,但在制定计划以及跟踪计划的时候,往往加上“完成al-pha测试报告”这一个子任务,但工期往往设置为“0工作日”,目的就在于检查这个时间点,这是“alpha测试”整个任务的结束的标志。
“里程碑事件”目的就在于将一个过程性的任务用一个结论性的标志标的,从而使得任务拥有明确的起止点,这一系列的起止点就成为引导整个项目进展的“里程碑”。在项目管理进度跟踪的过程中,只要能保证里程碑事件的按时完成,整个项目的进度也就有了保障。
三、项目进度控制
1、项目进度控制的前提
项目进度控制的前提是有效地项目计划和充分掌握第一手实际信息,在此前提下,通过实际值与计划值进行比较,检查、分析、评价项目进度。通过沟通、肯定、批评、奖励、惩罚、经济等不同手段,对项目进度进行监督、督促、影响、制约。及时发现偏差,及时予以纠正;提前预测偏差,提前予以预防。
在进行项目进度控制时,必须落实项目团队之内或之外进度控制人员的组成,明确具体的控制任务和管理职责。要制定进度控制的方法,要选择适用的进度预测分析和进度统计技术或工具。要明确项目进度信息的报告、沟通、反馈以及信息管理制度。
项目进度控制应该由部门经理和项目监控人员共同进行,之所以需要部门经理参与,是因为部门经理负责项目一般要负责一定人事行政的责任,如成员的考核、升迁、发展等。他们只有通过软件开发项目才能更好地了解项目成员,项目也只用通过对他们有切身利益的管理者参与管理才会更加有效。
2、项目进度控制主要手段
项目计划书:作为项目进度控制的基准和依据,项目负责人负责制作项目计划书。项目进度监控人员根据项目计划书对项目的阶段成果完成情况进行监控,如果由于某些原因阶段成果提前或延后完成,项目负责人应提前申请并做好开发计划的变更。对于项目进度延后的,应当分析产生进度延后的原因、确定纠正偏差的对策、采取纠正偏差的措施,在确定的期限内消除项目进度与项目计划之间的偏差。项目计划书应当根据项目的进展情况进行调整,以保证基准和依据的新鲜性、有效性。
项目阶段情况汇报与计划:项目负责人按照预定的每个阶段点(根据项目的实际情况可以是每周、每双周、每月、每双月、每季、每旬等等)定期在与项目成员和其他相关人员充分沟通后,向相关管理人员和管理部门提交一份书面项目阶段工作汇报与计划,内容包括:
a、对上一阶段计划执行情况的描述
b、下一阶段的工作计划安排
c、已经解决的问题和遗留的问题
d、资源申请、需要协调的事情及其人员
e、其他需要处理的问题
这些汇报将存档,作为对项目进行考核的重要材料。
在计划制定时就要确定项目总进度目标与分进度目标;在项目进展的全过程中,进行计划进度与实际进度的比较,及时发现偏离,及时采取措施纠正或者预防;协调项目参与人员之间的进度关系。
在项目计划执行中,做好这样几个方面的工作:
检查并掌握项目实际进度信息。对反映实际进度的各种数据进行记载并作为检查和调整项目计划的依据,积累资料,总结分析,不断提高计划编制、项目管理、进度控制水平。
做好项目计划执行中的检查与分析。通过检查,分析计划提前或拖后的主要原因。项目计划的定期检查是监督计划执行的最有效的方法。
及时制定实施调整与补救措施。调整的目的是根据实际进度情况,对项目计划作必要的修正,使之符合变化的实际情况,以保证项目目标其顺利实现。由于初期编制项目计划时考虑不周,或因其他原因需要增加某些工作时就需要重新调整项目计划中的网络逻辑,计算调整后的各时间参数、关键线路和工期。
3、进度控制内容
从内容上看,软件开发项目进度控制主要表现在组织管理、技术管理和信息管理等这几个方面。组织管理包括这样几个内容:
(1)项目经理监督并控制项目进展情况;
(2)进行项目分解,如按项目结构分,按項目进展阶段分,按合同结构分,并建立编码体系;
(3)制订进度协调制度,确定协调会议时间,参加人员等;
(4)对影响进度的干扰因素和潜在风险进行分析。
技术管理与人员管理有非常密切的关系。软件开发项目的技术难度需要引起重视,有些技术问题可能需要特殊的人员,可能需要花时间攻克一些技术问题,技术措施就是预测技术问题并制订相应的应对措施。控制的好坏直接影响项目实施进度。
在软件开发项目中,合同措施通常不由项目团队负责,企业有专门的合同管理部门负责项目的转包、合同期与进度计划的协调等。项目经理应该及时掌握这些工作转包的情况,按计划通过计划进度与实际进度的动态比较,定期向客户提供比较可靠的报告等。
软件开发项目进度控制的信息管理主要体现在编制、调整项目进度控制计划时对项目信息的掌握上。这些信息主要是:预测信息,即对分项和分阶段工作的技术难度、风险、工作量、逻辑关系等进行预测;决策信息,即对实施中出现的计划之外的新情况进行应对并做出决策。参与软件开发项目决策的有项目经理、企业项目主管及客户的相关负责人;统计信息,软件开发项目中统计工作主要由参与项目实施的人员自己做,再由项目经理或指定人员检查核实。通过收集、整理和分析,写出项目进展分析报告。根据实际情况,可以按日、周、月等时间要求对进度进行统计和审核,这是进度控制所必须的。
4、不同阶段的项目进度控制
从项目进度控制的阶段上看,软件开发项目进度控制主要有:项目准备阶段进度控制,需求分析和设计阶段进度控制,实施阶段进度控制等这几个部分。
准备阶段进度控制任务是:向业主提供有关项目信息,协助业主确定工期总目標;编制阶段计划和项目总进度计划;控制该计划的执行;
需求分析和设计阶段控制的任务是:编制与用户的沟通计划、需求分析工作进度计划、设计工作进度计划,控制相关计划的执行等。
实施阶段进度控制的任务是:编制实施总进度计划并控制其执行;编制实施计划并控制其执行等。由甲乙双方协调进度计划的编制、调整并采取措施确保进度目标的实施。
为了及时地发现和处理计划执行中发生的各种问题,就必须加强项目的项目的协同工作。协同工作是组织项目计划实现的重要环节。它要为项目计划顺利执行创造各种必要的条件,以适应项目实施情况的变化。
5、关于进度落后时的“赶工”措施
进度落后的情况下,有几种措施来弥补,如加人、加班、加激励等等,这些都是增加资源而又未必会见效的方法。根据Brooks原则,在某些项目进度延迟的情况下增加人手,有可能会使项目的进度更加延后。因为对于新加入本项目的员工来说,对项目相关背景、需求、设计的培训、对项目环境的熟悉和项目团队成员之间的沟通路径的增加,可能会使项目的工作效率急剧下跌。而加班造成的疲劳会再次使工作效率降低。增加激励会造成工作成本却不断的向上攀升。这些措施并不是完全不可取,而是项目经理要考虑适度原则。最好是要全面分析项目进度延迟的原因,如果确实是不合理的项目交付时限要求,就应当通过沟通变更为合理的项目时限要求,以免因为这样一个不合理的时限要求造成对软件质量或团队成员心理上的负面影响,最终导致项目最终的失败。否则应从技术、团队成员心态、环境等方面查找原因,找到提高效率、加快进度的方法。
参考文献:
[1] (美)项目管理协会,王勇,张斌 译 项目管理知识体系指南(第4版)(PMBOK指南),电子工业出版社 ,北京:2009.8.
[2] IT项目管理,Kathy Schwalbe(项目管理译丛 王金玉等译).
[3] 项目管理—计划、进度和控制的系统方法(第7版),Harold Kerzner(电子工业出版社,杨爱华等译).