- 浏览: 52144 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
zgzlwm:
楼主 你好 你的实现了么 在flex air中实现富文 ...
CMS相关技术实现 -
youcou12:
分类: Web开发flex炫丽效果网址:http://www. ...
CMS相关技术实现 -
youcou12:
各位大神看看吧
CMS相关技术实现 -
rancococ:
谢谢分享啦。
Jquery的Ajax应用 -
konnin:
我也下下来用用,最近在做个东西呢
Jquery的Ajax应用
1基本信息 摘要:本文主要谈谈如何控制项目进度的方法、措施和步骤,网络参考:
http://www.office-cn.net/offspace/html/99/n-2799.html;
2 软件项目进度的控制一般情况下,影响进度的因素包括:过程、技术、人;人的因素是最重要的因素,技术的因素归根到底也是人的因素。
2.1 项目进度控制常见问题:1 80-20原则与过于乐观的进度控制
80-20原则在软件开发项目进度控制方面体现在:80%的工作可以在20%的时间内完成,而剩余的20%的工作需要80%的时间。
这个80%的工作不一定是在项目的前期,而可能是分布在项目的各个阶段,但是剩余的20%的工作大部分是在项目后期。
2 范围、质量因素对进度的影响
软件作为一种“看不见”又“很容易修改”的东西,用户很容易会想改就改,造成需求的蔓延,项目经理又不知道如何拒绝,再加上项目成员“我能”的心理因素,一般都会答应变更,这样集少成多,逐渐影响了项目进度。
如果某项工作在进度上表面上达到目标了,但经检验其质量没有达到要求,则必然要通过返工等手段,增加人力资源的投入,增加时间的投入,实际上是拖延了进度。
不管是从横向或纵向来看,部分任务的质量会影响总体项目的进度,前面的一些任务质量中会影响到后面的一些任务质量。
3 资源、预算变更对进度的影响
资源,最主要的还是人力资源,有时某方面的人员不够到位,或者在多个项目的情况下某方面的人员中途被抽到其他项目、或身兼多个项目、或在别的项目不能自拔无法投入本项目。
还有一个很重要的资源,就是信息资源,如某些国家标准、行业标准,用户可能提供不了,而是需要去收集或购买,如果不能按时得到,就会影响需求分析、设计或编码的工作,对进度造成影响。
预算其实就是一种资源,它的变更会影响某些资源的变更,从而对进度造成影响。
4 低估了软件开发项目实现的条件
低估软件开发项目实现的条件表现在低估技术难度、低估协调复杂度、低估环境因素这样几个方面。
首先是低估技术难度。软件开发项目团队成员,有时甚至是企业的高级项目主管也经常低估项目技术上的困难。低估技术难度实际上也就是高估人的能力,认为或希望项目会按照已经制定的乐观项目计划顺利地实施,而实际则不然。软件开发项目的高技术特点本身说明其实施中会有很多技术的难度,除了需要高水平的技术人员来实施外,还要考虑为解决某些性能问题而进行科研攻关和项目实验;
其次,低估了协调复杂度,也低估了多个项目团队参加项目时工作协调上的困难。软件开发项目团队成员比较强调个人的智慧、强调个性,这给项目工作协调带来更多的复杂度。当一个大项目由很多子项目组成时,不仅会增加相互之间充分沟通交流的困难,更会增加项目协调和进度控制上的困难。
另外,企业高级项目主管和项目经理也经常低估环境因素,这些环境因素包括用户环境、行业环境、组织环境、社会环境、经济环境。低估这些条件,既有主观的原因,也会有客观的原因。对项目环境的了解程度不够,造成没有做好充分的准备。
5 项目状态信息收集的情况
由于项目经理的经验原因,对项目状态信息收集的的掌握不足,及时性准确性完整性比较差。另外其它一些原因也会造成这种现象。某些项目团队成员报喜不报忧,不希望别人知道自己工作的不好的情况,例如软件程序的编制,可能会先编制一些表面的东西,现有界面,看起来好像完成任务了,实际上只是一个“原型系统”或演示系统。给领导造成比较乐观的感觉。
如果项目经理或者管理团队没有及时地检查发现这种情况,将对项目的进度造成严重的影响。当然,如果出现这种情况管理人员就应该从管理的角度,从制度的角度检讨一下,进行改进,让大家实事求是地进行沟通。
温伯格说:“无论你多么聪明,离开了信息,对项目进行成功的控制就是无源之水、无本之木。”
6 执行计划的严格程度
没有把计划作为项目过程行动的基础,而是把计划放在一边,比较随意去做。例如对于项目团队内部沟通或外部沟通,在计划中要说明清楚人员、周期、方式、方法,不能遗漏,但在实际项目过程中,可能出现沟通没有按时或没有完整地达到所有项目干系人的情况。
若项目计划本身有错误,执行错误的计划肯定会产生错误。如,计划制订者在计划系统框架设计考虑上的错误、进度安排上的失误等。
实际的项目实施中,除了这种错误之外,还可能因为项目执行上的错误,造成项目的麻烦。例如,项目的客户及其他项目干系人没有及时为项目中出现的情况采取必要的措施或者所采取的措施的不适合具体的情况、没有效果或者有副作用等。
另外,如果在项目中的某项工作(如某个子系统或模块、组件)被转包给第三方开发后,不能进行有效的管理,也会造成进度上的延误。
7 计划变更调整的及时性
渐近明细是项目的特点,特别是对于软件开发项目,并不是一个一成不变的过程。开始时的项目计划可以先制定得比较粗一些,随着项目的进展,特别是需求明确以后,项目的计划就可以进一步的明确,这时候应该对项目计划进行调整修订,通过变更手续取得项目干系人的共识。
计划应该随着项目的进展而逐渐细化、调整、修正。没有及时调整的计划或者是随意的不负责任的计划的项目是难以控制的。
对于较为大型的软件开发项目的工作分解结构可采用二次甚至多次 WBS 方法。即根据总体阶段划分的总体 WBS ,需求调研阶段结束、概要设计完成后专门针对详细设计或编码阶段的二次 WBS 。由于需求的功能点和设计的模块或组件之间并不是一一对应的关系,所以只有在概要设计完成以后才能准确地得到详细设计或编码阶段的二次 WBS ,根据代码模块或组件的合理划分而得出的二次 WBS 才能在详细设计、编码阶段乃至测试阶段起到有效把握和控制进度的作用。
有些项目的需求或设计做得不够详细,无法对工作任务的分解、均衡分配和进度管理起参考作用,因此要随着需求的细化和设计的明确,对项目的分工和进度进行及时的调整,使项目的计划符合项目的变化,使项目的进度符合项目的计划。
8 未考虑不可预见事件发生造成的影响
假设、约束、风险等考虑“不周”造成项目进度计划中未考虑一些不可预见的事件发生。例如软件开发项目还会因为项目资源特别是人力资源缺乏、人员生病、人员离职、项目团队成员临时有其他更紧急的任务造成人员流动等不可预见的事件对项目的进度控制造成影响(即项目按时完成是基于如下假设:人力资源不会缺乏、人员不会生病、人员不会流动)。企业环境、社会环境、天灾人祸等事件对项目的进度控制造成影响。对项目的假设条件、约束条件、风险及其对策等对于进度的影响在项目计划要进行充分的考虑,在项目进展过程中也要不断地重新考虑有没有新的情况,新的假设条件、约束条件、潜在风险会影响项目的进度。
假设是通过努力可以直接解决的问题,而这些问题是一定要解决才能保证项目按计划完成;约束一般是难以解决的问题,但可以通过其他途径回避或弥补、取舍,如牺牲进度、质量等等;假设与约束是针对比较明确会出现的情况,如果问题的出现具有不确定性,则应该在风险分析中列出,分析其出现的可能性、造成的影响、采取的措施。实际上像没有考虑人的疾病、人员流动这些情况本身也不是什么问题,因为任何人都不可能把所有以外的情况都考虑完整,实际上也没有必要。但有些诸如下班或节假日的加班时间都被安排用于项目工作的情况就会造成更多的项目不确定性。在可能的情况下当然要对所有可能情况都做到有备无患,但是有的时候也要冒一定的风险,同时对于风险的防范也需要考虑如果防范的成本大于风险本身造成的损失和影响,则这种防范是没有必要的。
9 程序员方面的因素对进度的影响
程序员方面有两种常见的心态影响了进度的控制:一是技术完美主义、二是自尊心。
技术完美主义的常见现象是,有些程序员由于进度压力、经验等方面的原因,会匆忙先做编码等具体的事情,等做到一定程度后会想到一些更好的构思,或者看到一些更好的技术的介绍,或者是觉得外部构架可以更加美化,或者是觉得内部构架可以更加优化,这样他们会私下或公开对软件进行调整,去尝试一下新的技术。
而是否使用这些新的技术对完成项目本身的目标并没有影响,相反可能带来不确定的隐患。这种做法不是以用户的需求为本、或以项目团队的总体目标为本,可能对软件开发进度造成较大的影响。
自尊心的常见想象是,有些程序员在遇到一些自己无法解决的问题时,倾向于靠自己摸索,而不愿去问周围那些经验更为丰富的人。有些人也许会通过聊天室等方式匿名地向别人求教。如果运气好会很快地解决,否则要花很多实践摸索。而如果向周围的人求教,可能摸索几天的问题别人早就解决了。
10 未考虑软件开发过程的循环、迭代特性
软件开发的各个过程分类过于精细,制定进度计划时各项工作过于紧凑、没有弹性,造成的后果是,定期提交项目进度阶段报告的制度只有在表面上起到效果,按照计划的时间表提交阶段成果也只是在表面上起到效果。因为“上有政策、下有对策”,强行的规定会使人产生一些错误的认识:如在项目计划中“规定”某个时间只能做某某类别的事情,那么严格执行的后果就是编码阶段就不能修改文档;另外错误的“里程碑”概念可能会使大家轻易地相信上一个阶段的工作成果都是“通过评审”最终定稿了,而实际上可能只是因为时间到了该提交的人提交、该评审的人评审了。如果上下阶段是不同的人就根本不会去检查其中是否还有错误;如果上下阶段是同一个人,就可能非正式地修改上一阶段的错误,但占用的时间和精力却是下一阶段的,并且这样的修改时没有记录的。这样关于阶段进度控制的措施实际上只是在表面上有效。最为普遍的情况是,用户在合同中限定了提交软件系统的时间,实际上这个时间对完成项目任务来说是远远不够的,但计划只能按照合同来进行,所以要不用户让步,要不只能按照时间的约定提交实际上还未完成的软件系统,完成系统的安装,但这时候的“完成阶段任务”只是一个表面现象,系统虽然安装了,但可能是没有经过严格彻底测试的,也可能是只完成了部分的功能,省略了某些功能,有些是整块功能省略,有的是省略了某些功能的某个过程,如数据录入里面隐含的数据录入前缺省值设置、数据录入检验等功能,而是实现了比较粗糙的功能。这样,系统交付并不意味着项目的完成,而在项目交付之后还要花更多的时间。
11 其他因素
以上这些因素是影响项目进度的几个主要方面,除此之外还有很多其他的影响因素。其实最主要的因素还是人的因素,这里的人包括所有与项目相关的人。项目经理的素质、管理者的水平、用户的因素、项目成员的因素等等,都会对项目进度造成影响,这是因为由于软件开发的特性。因为篇幅有限无法一一列举,只能在此分析一些常见的因素。
不可否认,软件开发项目进度可控性还是带有一定运气成分的。特别是需要用户配合的那些软件开发项目,其可控性与用户的成熟度、软件应用领域的成熟程度和行业标准规范的完备程度有很大关系。关于可控性方面会涉及到一些与客户打交道经验,虽然我们说,顾客是上帝、以顾客为中心,但并不是说我们要把主导权交给他们,而关键是我们如何去主导、引导、把握。因此,项目控制的好坏与相关人员人际关系方面的经验也有关系。
尽管存在很多不可控的因素,我们的任务是首先分清哪些是可以控制的,哪些是我们不能控制的。项目经理一是要尽量扩大可控的领域,减少不可控的领域,二是不要在“不可控”上花太多时间,而是多花一些时间把可控的工作控制好,做好防范措施,减轻不可控因素对项目进度的影响。
项目进入实施阶段后,项目经理的几乎所有的活动都是围绕进度展开的。进度控制的目标与成本控制的目标和质量控制的目标是对立统一的关系。项目的进度、质量和成本构成一个相互制约的三角关系,需要项目经理去平衡。
2.2 项目进度控制的目的项目进度控制和监督的目的是:增强项目进度的透明度,以便当项目进展与项目计划出现严重偏差时可以采取适当的纠正或预防措施。已经发布的项目计划是项目控制和监督中活动、沟通、采取纠正和预防措施的基础。
1、根据计划进行监控
项目控制的第一个目的是根据计划对项目的各项活动进行监控,即根据已经制定并取得共识的软件开发项目计划来监控项目的实际表现和进度。为此应该根据项目计划来监控项目计划参数的实际值,这些参数包括进度表、项目成本、工作量、工作产品和任务的属性、使用的资源、项目成员的知识和技能;根据项目计划来监控项目团队所作的承诺是否已经或可能兑现、原来的确定的风险是否可以避免或减少损失,是否有新的风险出现;根据项目计划来收集、管理、使用项目数据;根据计划监督项目干系人的参与情况,监控各项任务承担人的参与活动;定期进行必要的进度评审,确定项目是否存在重大偏差、跟踪变更请求和问题报告直到变更或问题得到解决;在项目的里程碑对项目的成果进行评审。
2、管理纠正和预防措施
项目控制的另外一个目的是管理纠正和预防措施,即当项目进度或者结果已经或即将与计划有严重偏差时,对需要采取的纠正或预防措施进行管理。为此应当收集并且分析项目进行中可能存在的问题,并以此确定解决这些问题的纠正或预防措施;对已经确定的问题采取纠正和预防措施;监控要实施的纠正和预防措施,分析措施采取以后的结果,判断这些措施的有效性,确定和记录纠正与计划结果存在偏差的问题而采取的必要且合适的措施。
项目执行过程中仅仅靠最初建立的一份“完善”的基准计划是不够的,最好的计划也未必会一直有效。根据项目任务渐进明晰的特点,特别是软件开发项目的特点,在项目进行过程中,肯定需要在适当和必要的时候对项目进行变更控制,这种控制过程包括定期搜集有关项目进展情况的信息,把实际进展情况与计划进展情况进行对比;如果实际进展情况比计划进展情况有差距,或可能会有差距,就应当采取纠正或预防措施。变更控制应当在项目期间定期进行,这里所说的变更控制不一定要进行真正的变更,而是说要定期对变更进行控制。
如果在项目生命周期内的某一时间点,把实际进度与计划中约定的进度相比对,显示出项目已经延误或即将延误、超出预算目标或不符合质量要求,就必须采取纠正或预防措施使项目回到正轨上来,重新符合计划的安排要求。在已做出执行纠正或预防措施的决定之前,应评估一下纠正与预防措施的有效性和无副作用性,以确保纠正措施使项目回到项目的工作范围、时间和预算约束内,并对项目的其他目标不会造成太大的影响。
3、在各种项目目标中进行平衡
如果经过评估确定项目确实已无法控制,就应当下定决心以牺牲软件功能范围、工作成果范围(如某些中间文档)、成本预算、进度计划或软件质量中的某一项目标为代价,来保住项目最重要的那些目标,在各种项目目标中进行平衡,最终确定一个最合适的解决方案。有效的项目控制的关键是定期及时测量实际进程,并与计划进程相比较,如有必要就立即采取纠正或预防措施。指望不采取纠正和干预措施,问题就自行消失的想法是不现实的。问题越早发现就越好改正,造成的影响和损失越小。问题越提前发现就越好采取预防措施,可以用最小的代价避免造成损失。基于项目实际进展情况,就有可能准确预测项目进度计划和成本预算的实施情况,以便顺利完成项目。如果这些项目参数超出项目目标的限制范围,就必须马上采取纠正措施;如果发现这些项目参数有超出项目目标的限制范围的趋势,就必须马上采取预防措施。
软件开发项目实施中进度控制是项目管理的关键,若某个分项或阶段实施的进度没有把握好,则会影响整个项目的进度,因此应当尽可能地排除或减少干扰因素对进度的影响,确保项目实施的进度。
2.3 软件开发项目常用进度控制措施1、项目进度控制的前提
项目进度控制的前提是有效地项目计划和充分掌握第一手实际信息,在此前提下,通过实际值与计划值进行比较,检查、分析、评价项目进度。通过沟通、肯定、批评、奖励、惩罚、经济等不同手段,对项目进度进行监督、督促、影响、制约。及时发现偏差,及时予以纠正;提前预测偏差,提前予以预防。
在进行项目进度控制时,必须落实项目团队之内或之外进度控制人员的组成,明确具体的控制任务和管理职责。要制定进度控制的方法,要选择适用的进度预测分析和进度统计技术或工具。要明确项目进度信息的报告、沟通、反馈、以及信息管理制度。
项目进度控制应该由部门经理和项目监控人员共同进行,之所以需要部门经理参与,是因为部门经理负责项目一般要负责一定人事行政的责任,如成员的考核、升迁、发展等。他们只有通过软件开发项目才能更好地了解项目成员,项目也只用通过对他们有切身利益的管理者参与管理才会更加有效。
2、项目进度控制主要手段
项目计划书:作为项目进度控制的基准和依据,项目负责人负责制作项目计划书。项目进度监控人员根据项目计划书对项目的阶段成果完成情况进行监控,如果由于某些原因阶段成果提前或延后完成,项目负责人应提前申请并做好开发计划的变更。对于项目进度延后的,应当分析产生进度延后的原因、确定纠正偏差的对策、采取纠正偏差的措施,在确定的期限内消除项目进度与项目计划之间的偏差。项目计划书应当根据项目的进展情况进行调整,以保证基准和依据的新鲜性、有效性。
项目阶段情况汇报与计划:项目负责人按照预定的每个阶段点(根据项目的实际情况可以是每周、每双周、每月、每双月、每季、每旬等等)定期在与项目成员和其他相关人员充分沟通后,向相关管理人员和管理部门提交一份书面项目阶段工作汇报与计划,内容包括:
a、对上一阶段计划执行情况的描述
b、下一阶段的工作计划安排
c、已经解决的问题和遗留的问题
d、资源申请、需要协调的事情及其人员
e、其他需要处理的问题
这些汇报将存档,作为对项目进行考核的重要材料。
在计划制定时就要确定项目总进度目标与分进度目标;在项目进展的全过程中,进行计划进度与实际进度的比较,及时发现偏离,及时采取措施纠正或者预防;协调项目参与人员之间的进度关系。
在项目计划执行中,做好这样几个方面的工作:
检查并掌握项目实际进度信息。对反映实际进度的各种数据进行记载并作为检查和调整项目计划的依据,积累资料,总结分析,不断提高计划编制、项目管理、进度控制水平。
做好项目计划执行中的检查与分析。通过检查,分析计划提前或拖后的主要原因。项目计划的定期检查是监督计划执行的最有效的方法。
及时制定实施调整与补救措施。调整的目的是根据实际进度情况,对项目计划作必要的修正,使之符合变化的实际情况,以保证项目目标其顺利实现。由于初期编制项目计划时考虑不周,或因其他原因需要增加某些工作时就需要重新调整项目计划中的网络逻辑,计算调整后的各时间参数、关键线路和工期。
3、进度控制内容
从内容上看,软件开发项目进度控制主要表现在组织管理、技术管理和信息管理等这几个方面。组织管理包括这样几个内容:
(1)项目经理监督并控制项目进展情况;
(2)进行项目分解,如按项目结构分,按项目进展阶段分,按合同结构分,并建立编码体系;
(3)制订进度协调制度,确定协调会议时间,参加人员等;
(4)对影响进度的干扰因素和潜在风险进行分析。
技术管理与人员管理有非常密切的关系。软件开发项目的技术难度需要引起重视,有些技术问题可能需要特殊的人员,可能需要花时间攻克一些技术问题,技术措施就是预测技术问题并制订相应的应对措施。控制的好坏直接影响项目实施进度。
在软件开发项目中,合同措施通常不由项目团队负责,企业有专门的合同管理部门负责项目的转包、合同期与进度计划的协调等。项目经理应该及时掌握这些工作转包的情况,按计划通过计划进度与实际进度的动态比较,定期向客户提供比较可靠的报告等。
软件开发项目进度控制的信息管理主要体现在编制、调整项目进度控制计划时对项目信息的掌握上。这些信息主要是:预测信息,即对分项和分阶段工作的技术难度、风险、工作量、逻辑关系等进行预测;决策信息,即对实施中出现的计划之外的新情况进行应对并做出决策。参与软件开发项目决策的有项目经理、企业项目主管及客户的相关负责人;统计信息,软件开发项目中统计工作主要由参与项目实施的人员自己做,再由项目经理或指定人员检查核实。通过收集、整理和分析,写出项目进展分析报告。根据实际情况,可以按日、周、月等时间要求对进度进行统计和审核,这是进度控制所必须的。
4、不同阶段的项目进度控制
从项目进度控制的阶段上看,软件开发项目进度控制主要有:项目准备阶段进度控制,需求分析和设计阶段进度控制,实施阶段进度控制等这几个部分。
准备阶段进度控制任务是:向业主提供有关项目信息,协助业主确定工期总目标;编制阶段计划和项目总进度计划;控制该计划的执行;
需求分析和设计阶段控制的任务是:编制与用户的沟通计划、需求分析工作进度计划、设计工作进度计划,控制相关计划的执行等。
实施阶段进度控制的任务是:编制实施总进度计划并控制其执行;编制实施计划并控制其执行等。由甲乙双方协调进度计划的编制、调整并采取措施确保进度目标的实施。
为了及时地发现和处理计划执行中发生的各种问题,就必须加强项目的项目的协同工作。协同工作是组织项目计划实现的重要环节。它要为项目计划顺利执行创造各种必要的条件,以适应项目实施情况的变化。
5、关于进度落后时的“赶工”措施
进度落后的情况下,有几种措施来弥补,如加人、加班、加激励等等,这些都是增加资源而又未必会见效的方法。根据Brooks原则,在某些项目进度延迟的情况下增加人手,有可能会使项目的进度更加延后。因为对于新加入本项目的员工来说,对项目相关背景、需求、设计的培训、对项目环境的熟悉和项目团队成员之间的沟通路径的增加,可能会使项目的工作效率急剧下跌。而加班造成的疲劳会再次使工作效率降低。增加激励会造成工作成本却不断的向上攀升。这些措施并不是完全不可取,而是项目经理要考虑适度原则。最好是要全面分析项目进度延迟的原因,如果确实是不合理的项目交付时限要求,就应当通过沟通变更为合理的项目时限要求,以免因为这样一个不合理的时限要求造成对软件质量或团队成员心理上的负面影响,最终导致项目最终的失败。否则应从技术、团队成员心态、环境等方面查找原因,找到提高效率、加快进度的方法。
2.4 项目控制的步骤从以上项目控制的作用和类型分析来看,项目控制的基础和依据是项目目标和项目计划,所以项目控制的步骤就是:根据项目目标制定项目控制计划(包括进度控制计划、质量控制计划、成本控制计划)、设定阶段成果验收准则、汇报和收集项目实施进展信息、判断偏差、分析偏差产生的原因和趋势、采取适当的纠正预防措施,对纠正预防措施的有效性进行评估。
1. 根据项目目标制定控制计划
项目控制的对象不仅要针对总体任务,更要针对尽可能详细的分解后的任务,这样的控制才会取得应有的效果。因此项目控制的目标包括总体目标、分任务目标、阶段目标。项目控制的基础是否扎实依赖于项目任务的分解是否清晰合理、是否尽可能的详细、阶段目标设置是否合理等等。有的任务的分解往往可以有多种方案,应当找到既利于工作任务分配,有利于划分阶段目标的分解方案。
2. 设定阶段成果验收准则
阶段成果验收准则应当包括在进度控制计划、质量控制计划、成本控制计划中。阶段成果验收准则就是判断阶段成果是否符合要求的标准,其最原始依据是合同。由合同带出的依据包括需要遵守的相关技术标准规范、需求规格说明书、设计说明书、测试计划等等。
3. 汇报和收集项目进展信息
项目实施进展信息包括制度规定的定期汇报信息和项目管理人员不定期地收集的相关信息。定期汇报信息包括定期的会议和定期的项目阶段状态报告。定期的汇报信息应但包括:项目当前状态、报告区间内完成的工作、计划区间内准备完成的工作、已经解决的问题、需要解决的问题(包括遗留未解决的问题、新出现的问题、需要客户、企业领导层、兄弟部门等协调解决的问题)。项目管理部门根据项目组的汇报进行汇总统计。
4. 判断偏差
根据项目组汇报的项目当前状态(不能仅仅写一个延期或准时或提前、应当说明哪项任务延期、哪项任务准时、哪项任务提前)判断项目是否出现偏差,这些偏差是在合理的范围、可接受的范围、还是应当尽快纠正的范围。通过把项目阶段状态汇报信息、汇总统计信息与项目计划、相关标准规范进行对比,及早发现项目实施结果和计划预期结果之间的差距。为了更好地判断项目计划实施过程中的偏差,应该项目计划中按阶段设置必要的“里程碑”。不过,“里程碑”应当设置的合理有效,而一旦里程碑设置好后,就要认真地进行对里程碑的结果进行检验,同时也不能仅仅依靠检查某些里程碑的结果,而不去跟踪监控产生这个结果的过程。
5. 分析偏差产生的原因和趋势
所谓偏差主要是在进度和成本上的的,质量上的偏差对软件来说比较难以判断。项目实施过程中产生的偏差就是实际进展和项目计划之间的差距,可以分为正偏差、负偏差和零偏差。零偏差意味着没有偏差;正偏差说明项目进度比进度计划有所超前,或当前花费成本少于计划中当前预算约定的成本;负偏差说明项目进度比进度计划有所延迟,或当前花费成本多于计划中当前预算约定的成本。
正偏差不完全是好事,负偏差也不完全是坏事。这些偏差的原因是什么,应当进一步向项目组了解情况,具体分析产生偏差的原因。
可能的原因有:原来制定的项目计划不合理,过于保守的计划造成了正偏差,过于乐观的计划造成了负偏差;技术革新、管理革新提高了效率造成了正偏差,资源不足、低效率、故障、人员离职造成了负偏差;成本的增加(负偏差),如增加奖金、提高工资、提高加班补贴造成了进度正偏差或零偏差;抽走技术人员(正偏差)造成进度的负偏差;需求分析不够清楚、设计方案有问题造成进度和成本的负偏差;外部因素有:客户配合不力、外包供应商未能按期、按质的要求交付、战争或自然灾害等不可抗力等等。
除了要分析出偏差的原因,还要根据原因分析除可能的趋势。原来的正偏差或零偏差是否会发展成负偏差,原来的负偏差是否有希望扭转成正偏差,还是会在不采取措施的情况下越来越严重,对后面的项目活动有多大程度的影响。
6. 采取适当的纠正预防措施
偏差的判断和分析让我们了解了偏差的根源,可以有的放矢地制定适当的纠正或预防措施。如果是计划不合理,就进行计划变更;如果是设计不合理,就进行设计变更;如果是人力资源不足,就适当增加人力资源;如果需要加班,就采取适当的措施安排加班。只有分析出造成偏差的根源和责任人,才能制定出对症下药的和可以落实到具体人员的纠正预防措施。
7. 跟踪评估措施的有效性
项目出现偏差后,制定的纠正预防措施和项目计划一样应该是具有可跟踪性的,就是说必须落实到具体的人负责,同时纠正的结果和效果是可以检验的。纠正预防措施制定出来后,应当保证落到实处,因此必须进行跟踪检查,对纠正预防措施的有效性进行评估。
参考文献
1、 人月神话,Frederick P. Brooks,Jr.清华大学出版社
2、人件(第2版),清华大学出版社
3、人件集——人性化的软件开发,谢超、刘颖、谢卓凡、 李虎译,人民邮电出版社
4、PMBOK-2000PMI;
5、质量·软件·管理(第一卷:系统思维),Gerald M.Weinberg,清华大学出版社
6、成功的项目管理,Trevol L Young(泰晤士报商业版,严鸿娟译);
7、成功的项目管理,Jack Gido & James P. Clements(21世纪管理经典教材系列,张金城等译);
8、如何做好项目管理,Stanley E. Portny(IDG新经济工商实务傻瓜丛书,宁俊等译);
9、管理软件开发项目(第二版),Neal Whitten(软件开发项目管理系列丛书,孙艳春等译);
10、IT项目管理,Kathy Schwalbe(项目管理译丛 王金玉等译);
11、项目管理—计划、进度和控制的系统方法(第7版),Harold Kerzner(电子工业出版社,杨爱华等译);
12、项目管理的战略规划:项目管理成熟度模型的应用,Harold Kerzner(电子工业出版社,张增华 吕义怀等译);
13、实用软件工程(第二版),郑人杰、殷人昆、陶永雷(清华大学出版社)
14、软件工程:实践者的研究方法》(第5版)Roger S.Pressman著;
15、高级项目管理基础,(信息产业部计算机信息系统集成高级项目经理培训讲义);
http://www.office-cn.net/offspace/html/99/n-2799.html;
2 软件项目进度的控制一般情况下,影响进度的因素包括:过程、技术、人;人的因素是最重要的因素,技术的因素归根到底也是人的因素。
2.1 项目进度控制常见问题:1 80-20原则与过于乐观的进度控制
80-20原则在软件开发项目进度控制方面体现在:80%的工作可以在20%的时间内完成,而剩余的20%的工作需要80%的时间。
这个80%的工作不一定是在项目的前期,而可能是分布在项目的各个阶段,但是剩余的20%的工作大部分是在项目后期。
2 范围、质量因素对进度的影响
软件作为一种“看不见”又“很容易修改”的东西,用户很容易会想改就改,造成需求的蔓延,项目经理又不知道如何拒绝,再加上项目成员“我能”的心理因素,一般都会答应变更,这样集少成多,逐渐影响了项目进度。
如果某项工作在进度上表面上达到目标了,但经检验其质量没有达到要求,则必然要通过返工等手段,增加人力资源的投入,增加时间的投入,实际上是拖延了进度。
不管是从横向或纵向来看,部分任务的质量会影响总体项目的进度,前面的一些任务质量中会影响到后面的一些任务质量。
3 资源、预算变更对进度的影响
资源,最主要的还是人力资源,有时某方面的人员不够到位,或者在多个项目的情况下某方面的人员中途被抽到其他项目、或身兼多个项目、或在别的项目不能自拔无法投入本项目。
还有一个很重要的资源,就是信息资源,如某些国家标准、行业标准,用户可能提供不了,而是需要去收集或购买,如果不能按时得到,就会影响需求分析、设计或编码的工作,对进度造成影响。
预算其实就是一种资源,它的变更会影响某些资源的变更,从而对进度造成影响。
4 低估了软件开发项目实现的条件
低估软件开发项目实现的条件表现在低估技术难度、低估协调复杂度、低估环境因素这样几个方面。
首先是低估技术难度。软件开发项目团队成员,有时甚至是企业的高级项目主管也经常低估项目技术上的困难。低估技术难度实际上也就是高估人的能力,认为或希望项目会按照已经制定的乐观项目计划顺利地实施,而实际则不然。软件开发项目的高技术特点本身说明其实施中会有很多技术的难度,除了需要高水平的技术人员来实施外,还要考虑为解决某些性能问题而进行科研攻关和项目实验;
其次,低估了协调复杂度,也低估了多个项目团队参加项目时工作协调上的困难。软件开发项目团队成员比较强调个人的智慧、强调个性,这给项目工作协调带来更多的复杂度。当一个大项目由很多子项目组成时,不仅会增加相互之间充分沟通交流的困难,更会增加项目协调和进度控制上的困难。
另外,企业高级项目主管和项目经理也经常低估环境因素,这些环境因素包括用户环境、行业环境、组织环境、社会环境、经济环境。低估这些条件,既有主观的原因,也会有客观的原因。对项目环境的了解程度不够,造成没有做好充分的准备。
5 项目状态信息收集的情况
由于项目经理的经验原因,对项目状态信息收集的的掌握不足,及时性准确性完整性比较差。另外其它一些原因也会造成这种现象。某些项目团队成员报喜不报忧,不希望别人知道自己工作的不好的情况,例如软件程序的编制,可能会先编制一些表面的东西,现有界面,看起来好像完成任务了,实际上只是一个“原型系统”或演示系统。给领导造成比较乐观的感觉。
如果项目经理或者管理团队没有及时地检查发现这种情况,将对项目的进度造成严重的影响。当然,如果出现这种情况管理人员就应该从管理的角度,从制度的角度检讨一下,进行改进,让大家实事求是地进行沟通。
温伯格说:“无论你多么聪明,离开了信息,对项目进行成功的控制就是无源之水、无本之木。”
6 执行计划的严格程度
没有把计划作为项目过程行动的基础,而是把计划放在一边,比较随意去做。例如对于项目团队内部沟通或外部沟通,在计划中要说明清楚人员、周期、方式、方法,不能遗漏,但在实际项目过程中,可能出现沟通没有按时或没有完整地达到所有项目干系人的情况。
若项目计划本身有错误,执行错误的计划肯定会产生错误。如,计划制订者在计划系统框架设计考虑上的错误、进度安排上的失误等。
实际的项目实施中,除了这种错误之外,还可能因为项目执行上的错误,造成项目的麻烦。例如,项目的客户及其他项目干系人没有及时为项目中出现的情况采取必要的措施或者所采取的措施的不适合具体的情况、没有效果或者有副作用等。
另外,如果在项目中的某项工作(如某个子系统或模块、组件)被转包给第三方开发后,不能进行有效的管理,也会造成进度上的延误。
7 计划变更调整的及时性
渐近明细是项目的特点,特别是对于软件开发项目,并不是一个一成不变的过程。开始时的项目计划可以先制定得比较粗一些,随着项目的进展,特别是需求明确以后,项目的计划就可以进一步的明确,这时候应该对项目计划进行调整修订,通过变更手续取得项目干系人的共识。
计划应该随着项目的进展而逐渐细化、调整、修正。没有及时调整的计划或者是随意的不负责任的计划的项目是难以控制的。
对于较为大型的软件开发项目的工作分解结构可采用二次甚至多次 WBS 方法。即根据总体阶段划分的总体 WBS ,需求调研阶段结束、概要设计完成后专门针对详细设计或编码阶段的二次 WBS 。由于需求的功能点和设计的模块或组件之间并不是一一对应的关系,所以只有在概要设计完成以后才能准确地得到详细设计或编码阶段的二次 WBS ,根据代码模块或组件的合理划分而得出的二次 WBS 才能在详细设计、编码阶段乃至测试阶段起到有效把握和控制进度的作用。
有些项目的需求或设计做得不够详细,无法对工作任务的分解、均衡分配和进度管理起参考作用,因此要随着需求的细化和设计的明确,对项目的分工和进度进行及时的调整,使项目的计划符合项目的变化,使项目的进度符合项目的计划。
8 未考虑不可预见事件发生造成的影响
假设、约束、风险等考虑“不周”造成项目进度计划中未考虑一些不可预见的事件发生。例如软件开发项目还会因为项目资源特别是人力资源缺乏、人员生病、人员离职、项目团队成员临时有其他更紧急的任务造成人员流动等不可预见的事件对项目的进度控制造成影响(即项目按时完成是基于如下假设:人力资源不会缺乏、人员不会生病、人员不会流动)。企业环境、社会环境、天灾人祸等事件对项目的进度控制造成影响。对项目的假设条件、约束条件、风险及其对策等对于进度的影响在项目计划要进行充分的考虑,在项目进展过程中也要不断地重新考虑有没有新的情况,新的假设条件、约束条件、潜在风险会影响项目的进度。
假设是通过努力可以直接解决的问题,而这些问题是一定要解决才能保证项目按计划完成;约束一般是难以解决的问题,但可以通过其他途径回避或弥补、取舍,如牺牲进度、质量等等;假设与约束是针对比较明确会出现的情况,如果问题的出现具有不确定性,则应该在风险分析中列出,分析其出现的可能性、造成的影响、采取的措施。实际上像没有考虑人的疾病、人员流动这些情况本身也不是什么问题,因为任何人都不可能把所有以外的情况都考虑完整,实际上也没有必要。但有些诸如下班或节假日的加班时间都被安排用于项目工作的情况就会造成更多的项目不确定性。在可能的情况下当然要对所有可能情况都做到有备无患,但是有的时候也要冒一定的风险,同时对于风险的防范也需要考虑如果防范的成本大于风险本身造成的损失和影响,则这种防范是没有必要的。
9 程序员方面的因素对进度的影响
程序员方面有两种常见的心态影响了进度的控制:一是技术完美主义、二是自尊心。
技术完美主义的常见现象是,有些程序员由于进度压力、经验等方面的原因,会匆忙先做编码等具体的事情,等做到一定程度后会想到一些更好的构思,或者看到一些更好的技术的介绍,或者是觉得外部构架可以更加美化,或者是觉得内部构架可以更加优化,这样他们会私下或公开对软件进行调整,去尝试一下新的技术。
而是否使用这些新的技术对完成项目本身的目标并没有影响,相反可能带来不确定的隐患。这种做法不是以用户的需求为本、或以项目团队的总体目标为本,可能对软件开发进度造成较大的影响。
自尊心的常见想象是,有些程序员在遇到一些自己无法解决的问题时,倾向于靠自己摸索,而不愿去问周围那些经验更为丰富的人。有些人也许会通过聊天室等方式匿名地向别人求教。如果运气好会很快地解决,否则要花很多实践摸索。而如果向周围的人求教,可能摸索几天的问题别人早就解决了。
10 未考虑软件开发过程的循环、迭代特性
软件开发的各个过程分类过于精细,制定进度计划时各项工作过于紧凑、没有弹性,造成的后果是,定期提交项目进度阶段报告的制度只有在表面上起到效果,按照计划的时间表提交阶段成果也只是在表面上起到效果。因为“上有政策、下有对策”,强行的规定会使人产生一些错误的认识:如在项目计划中“规定”某个时间只能做某某类别的事情,那么严格执行的后果就是编码阶段就不能修改文档;另外错误的“里程碑”概念可能会使大家轻易地相信上一个阶段的工作成果都是“通过评审”最终定稿了,而实际上可能只是因为时间到了该提交的人提交、该评审的人评审了。如果上下阶段是不同的人就根本不会去检查其中是否还有错误;如果上下阶段是同一个人,就可能非正式地修改上一阶段的错误,但占用的时间和精力却是下一阶段的,并且这样的修改时没有记录的。这样关于阶段进度控制的措施实际上只是在表面上有效。最为普遍的情况是,用户在合同中限定了提交软件系统的时间,实际上这个时间对完成项目任务来说是远远不够的,但计划只能按照合同来进行,所以要不用户让步,要不只能按照时间的约定提交实际上还未完成的软件系统,完成系统的安装,但这时候的“完成阶段任务”只是一个表面现象,系统虽然安装了,但可能是没有经过严格彻底测试的,也可能是只完成了部分的功能,省略了某些功能,有些是整块功能省略,有的是省略了某些功能的某个过程,如数据录入里面隐含的数据录入前缺省值设置、数据录入检验等功能,而是实现了比较粗糙的功能。这样,系统交付并不意味着项目的完成,而在项目交付之后还要花更多的时间。
11 其他因素
以上这些因素是影响项目进度的几个主要方面,除此之外还有很多其他的影响因素。其实最主要的因素还是人的因素,这里的人包括所有与项目相关的人。项目经理的素质、管理者的水平、用户的因素、项目成员的因素等等,都会对项目进度造成影响,这是因为由于软件开发的特性。因为篇幅有限无法一一列举,只能在此分析一些常见的因素。
不可否认,软件开发项目进度可控性还是带有一定运气成分的。特别是需要用户配合的那些软件开发项目,其可控性与用户的成熟度、软件应用领域的成熟程度和行业标准规范的完备程度有很大关系。关于可控性方面会涉及到一些与客户打交道经验,虽然我们说,顾客是上帝、以顾客为中心,但并不是说我们要把主导权交给他们,而关键是我们如何去主导、引导、把握。因此,项目控制的好坏与相关人员人际关系方面的经验也有关系。
尽管存在很多不可控的因素,我们的任务是首先分清哪些是可以控制的,哪些是我们不能控制的。项目经理一是要尽量扩大可控的领域,减少不可控的领域,二是不要在“不可控”上花太多时间,而是多花一些时间把可控的工作控制好,做好防范措施,减轻不可控因素对项目进度的影响。
项目进入实施阶段后,项目经理的几乎所有的活动都是围绕进度展开的。进度控制的目标与成本控制的目标和质量控制的目标是对立统一的关系。项目的进度、质量和成本构成一个相互制约的三角关系,需要项目经理去平衡。
2.2 项目进度控制的目的项目进度控制和监督的目的是:增强项目进度的透明度,以便当项目进展与项目计划出现严重偏差时可以采取适当的纠正或预防措施。已经发布的项目计划是项目控制和监督中活动、沟通、采取纠正和预防措施的基础。
1、根据计划进行监控
项目控制的第一个目的是根据计划对项目的各项活动进行监控,即根据已经制定并取得共识的软件开发项目计划来监控项目的实际表现和进度。为此应该根据项目计划来监控项目计划参数的实际值,这些参数包括进度表、项目成本、工作量、工作产品和任务的属性、使用的资源、项目成员的知识和技能;根据项目计划来监控项目团队所作的承诺是否已经或可能兑现、原来的确定的风险是否可以避免或减少损失,是否有新的风险出现;根据项目计划来收集、管理、使用项目数据;根据计划监督项目干系人的参与情况,监控各项任务承担人的参与活动;定期进行必要的进度评审,确定项目是否存在重大偏差、跟踪变更请求和问题报告直到变更或问题得到解决;在项目的里程碑对项目的成果进行评审。
2、管理纠正和预防措施
项目控制的另外一个目的是管理纠正和预防措施,即当项目进度或者结果已经或即将与计划有严重偏差时,对需要采取的纠正或预防措施进行管理。为此应当收集并且分析项目进行中可能存在的问题,并以此确定解决这些问题的纠正或预防措施;对已经确定的问题采取纠正和预防措施;监控要实施的纠正和预防措施,分析措施采取以后的结果,判断这些措施的有效性,确定和记录纠正与计划结果存在偏差的问题而采取的必要且合适的措施。
项目执行过程中仅仅靠最初建立的一份“完善”的基准计划是不够的,最好的计划也未必会一直有效。根据项目任务渐进明晰的特点,特别是软件开发项目的特点,在项目进行过程中,肯定需要在适当和必要的时候对项目进行变更控制,这种控制过程包括定期搜集有关项目进展情况的信息,把实际进展情况与计划进展情况进行对比;如果实际进展情况比计划进展情况有差距,或可能会有差距,就应当采取纠正或预防措施。变更控制应当在项目期间定期进行,这里所说的变更控制不一定要进行真正的变更,而是说要定期对变更进行控制。
如果在项目生命周期内的某一时间点,把实际进度与计划中约定的进度相比对,显示出项目已经延误或即将延误、超出预算目标或不符合质量要求,就必须采取纠正或预防措施使项目回到正轨上来,重新符合计划的安排要求。在已做出执行纠正或预防措施的决定之前,应评估一下纠正与预防措施的有效性和无副作用性,以确保纠正措施使项目回到项目的工作范围、时间和预算约束内,并对项目的其他目标不会造成太大的影响。
3、在各种项目目标中进行平衡
如果经过评估确定项目确实已无法控制,就应当下定决心以牺牲软件功能范围、工作成果范围(如某些中间文档)、成本预算、进度计划或软件质量中的某一项目标为代价,来保住项目最重要的那些目标,在各种项目目标中进行平衡,最终确定一个最合适的解决方案。有效的项目控制的关键是定期及时测量实际进程,并与计划进程相比较,如有必要就立即采取纠正或预防措施。指望不采取纠正和干预措施,问题就自行消失的想法是不现实的。问题越早发现就越好改正,造成的影响和损失越小。问题越提前发现就越好采取预防措施,可以用最小的代价避免造成损失。基于项目实际进展情况,就有可能准确预测项目进度计划和成本预算的实施情况,以便顺利完成项目。如果这些项目参数超出项目目标的限制范围,就必须马上采取纠正措施;如果发现这些项目参数有超出项目目标的限制范围的趋势,就必须马上采取预防措施。
软件开发项目实施中进度控制是项目管理的关键,若某个分项或阶段实施的进度没有把握好,则会影响整个项目的进度,因此应当尽可能地排除或减少干扰因素对进度的影响,确保项目实施的进度。
2.3 软件开发项目常用进度控制措施1、项目进度控制的前提
项目进度控制的前提是有效地项目计划和充分掌握第一手实际信息,在此前提下,通过实际值与计划值进行比较,检查、分析、评价项目进度。通过沟通、肯定、批评、奖励、惩罚、经济等不同手段,对项目进度进行监督、督促、影响、制约。及时发现偏差,及时予以纠正;提前预测偏差,提前予以预防。
在进行项目进度控制时,必须落实项目团队之内或之外进度控制人员的组成,明确具体的控制任务和管理职责。要制定进度控制的方法,要选择适用的进度预测分析和进度统计技术或工具。要明确项目进度信息的报告、沟通、反馈、以及信息管理制度。
项目进度控制应该由部门经理和项目监控人员共同进行,之所以需要部门经理参与,是因为部门经理负责项目一般要负责一定人事行政的责任,如成员的考核、升迁、发展等。他们只有通过软件开发项目才能更好地了解项目成员,项目也只用通过对他们有切身利益的管理者参与管理才会更加有效。
2、项目进度控制主要手段
项目计划书:作为项目进度控制的基准和依据,项目负责人负责制作项目计划书。项目进度监控人员根据项目计划书对项目的阶段成果完成情况进行监控,如果由于某些原因阶段成果提前或延后完成,项目负责人应提前申请并做好开发计划的变更。对于项目进度延后的,应当分析产生进度延后的原因、确定纠正偏差的对策、采取纠正偏差的措施,在确定的期限内消除项目进度与项目计划之间的偏差。项目计划书应当根据项目的进展情况进行调整,以保证基准和依据的新鲜性、有效性。
项目阶段情况汇报与计划:项目负责人按照预定的每个阶段点(根据项目的实际情况可以是每周、每双周、每月、每双月、每季、每旬等等)定期在与项目成员和其他相关人员充分沟通后,向相关管理人员和管理部门提交一份书面项目阶段工作汇报与计划,内容包括:
a、对上一阶段计划执行情况的描述
b、下一阶段的工作计划安排
c、已经解决的问题和遗留的问题
d、资源申请、需要协调的事情及其人员
e、其他需要处理的问题
这些汇报将存档,作为对项目进行考核的重要材料。
在计划制定时就要确定项目总进度目标与分进度目标;在项目进展的全过程中,进行计划进度与实际进度的比较,及时发现偏离,及时采取措施纠正或者预防;协调项目参与人员之间的进度关系。
在项目计划执行中,做好这样几个方面的工作:
检查并掌握项目实际进度信息。对反映实际进度的各种数据进行记载并作为检查和调整项目计划的依据,积累资料,总结分析,不断提高计划编制、项目管理、进度控制水平。
做好项目计划执行中的检查与分析。通过检查,分析计划提前或拖后的主要原因。项目计划的定期检查是监督计划执行的最有效的方法。
及时制定实施调整与补救措施。调整的目的是根据实际进度情况,对项目计划作必要的修正,使之符合变化的实际情况,以保证项目目标其顺利实现。由于初期编制项目计划时考虑不周,或因其他原因需要增加某些工作时就需要重新调整项目计划中的网络逻辑,计算调整后的各时间参数、关键线路和工期。
3、进度控制内容
从内容上看,软件开发项目进度控制主要表现在组织管理、技术管理和信息管理等这几个方面。组织管理包括这样几个内容:
(1)项目经理监督并控制项目进展情况;
(2)进行项目分解,如按项目结构分,按项目进展阶段分,按合同结构分,并建立编码体系;
(3)制订进度协调制度,确定协调会议时间,参加人员等;
(4)对影响进度的干扰因素和潜在风险进行分析。
技术管理与人员管理有非常密切的关系。软件开发项目的技术难度需要引起重视,有些技术问题可能需要特殊的人员,可能需要花时间攻克一些技术问题,技术措施就是预测技术问题并制订相应的应对措施。控制的好坏直接影响项目实施进度。
在软件开发项目中,合同措施通常不由项目团队负责,企业有专门的合同管理部门负责项目的转包、合同期与进度计划的协调等。项目经理应该及时掌握这些工作转包的情况,按计划通过计划进度与实际进度的动态比较,定期向客户提供比较可靠的报告等。
软件开发项目进度控制的信息管理主要体现在编制、调整项目进度控制计划时对项目信息的掌握上。这些信息主要是:预测信息,即对分项和分阶段工作的技术难度、风险、工作量、逻辑关系等进行预测;决策信息,即对实施中出现的计划之外的新情况进行应对并做出决策。参与软件开发项目决策的有项目经理、企业项目主管及客户的相关负责人;统计信息,软件开发项目中统计工作主要由参与项目实施的人员自己做,再由项目经理或指定人员检查核实。通过收集、整理和分析,写出项目进展分析报告。根据实际情况,可以按日、周、月等时间要求对进度进行统计和审核,这是进度控制所必须的。
4、不同阶段的项目进度控制
从项目进度控制的阶段上看,软件开发项目进度控制主要有:项目准备阶段进度控制,需求分析和设计阶段进度控制,实施阶段进度控制等这几个部分。
准备阶段进度控制任务是:向业主提供有关项目信息,协助业主确定工期总目标;编制阶段计划和项目总进度计划;控制该计划的执行;
需求分析和设计阶段控制的任务是:编制与用户的沟通计划、需求分析工作进度计划、设计工作进度计划,控制相关计划的执行等。
实施阶段进度控制的任务是:编制实施总进度计划并控制其执行;编制实施计划并控制其执行等。由甲乙双方协调进度计划的编制、调整并采取措施确保进度目标的实施。
为了及时地发现和处理计划执行中发生的各种问题,就必须加强项目的项目的协同工作。协同工作是组织项目计划实现的重要环节。它要为项目计划顺利执行创造各种必要的条件,以适应项目实施情况的变化。
5、关于进度落后时的“赶工”措施
进度落后的情况下,有几种措施来弥补,如加人、加班、加激励等等,这些都是增加资源而又未必会见效的方法。根据Brooks原则,在某些项目进度延迟的情况下增加人手,有可能会使项目的进度更加延后。因为对于新加入本项目的员工来说,对项目相关背景、需求、设计的培训、对项目环境的熟悉和项目团队成员之间的沟通路径的增加,可能会使项目的工作效率急剧下跌。而加班造成的疲劳会再次使工作效率降低。增加激励会造成工作成本却不断的向上攀升。这些措施并不是完全不可取,而是项目经理要考虑适度原则。最好是要全面分析项目进度延迟的原因,如果确实是不合理的项目交付时限要求,就应当通过沟通变更为合理的项目时限要求,以免因为这样一个不合理的时限要求造成对软件质量或团队成员心理上的负面影响,最终导致项目最终的失败。否则应从技术、团队成员心态、环境等方面查找原因,找到提高效率、加快进度的方法。
2.4 项目控制的步骤从以上项目控制的作用和类型分析来看,项目控制的基础和依据是项目目标和项目计划,所以项目控制的步骤就是:根据项目目标制定项目控制计划(包括进度控制计划、质量控制计划、成本控制计划)、设定阶段成果验收准则、汇报和收集项目实施进展信息、判断偏差、分析偏差产生的原因和趋势、采取适当的纠正预防措施,对纠正预防措施的有效性进行评估。
1. 根据项目目标制定控制计划
项目控制的对象不仅要针对总体任务,更要针对尽可能详细的分解后的任务,这样的控制才会取得应有的效果。因此项目控制的目标包括总体目标、分任务目标、阶段目标。项目控制的基础是否扎实依赖于项目任务的分解是否清晰合理、是否尽可能的详细、阶段目标设置是否合理等等。有的任务的分解往往可以有多种方案,应当找到既利于工作任务分配,有利于划分阶段目标的分解方案。
2. 设定阶段成果验收准则
阶段成果验收准则应当包括在进度控制计划、质量控制计划、成本控制计划中。阶段成果验收准则就是判断阶段成果是否符合要求的标准,其最原始依据是合同。由合同带出的依据包括需要遵守的相关技术标准规范、需求规格说明书、设计说明书、测试计划等等。
3. 汇报和收集项目进展信息
项目实施进展信息包括制度规定的定期汇报信息和项目管理人员不定期地收集的相关信息。定期汇报信息包括定期的会议和定期的项目阶段状态报告。定期的汇报信息应但包括:项目当前状态、报告区间内完成的工作、计划区间内准备完成的工作、已经解决的问题、需要解决的问题(包括遗留未解决的问题、新出现的问题、需要客户、企业领导层、兄弟部门等协调解决的问题)。项目管理部门根据项目组的汇报进行汇总统计。
4. 判断偏差
根据项目组汇报的项目当前状态(不能仅仅写一个延期或准时或提前、应当说明哪项任务延期、哪项任务准时、哪项任务提前)判断项目是否出现偏差,这些偏差是在合理的范围、可接受的范围、还是应当尽快纠正的范围。通过把项目阶段状态汇报信息、汇总统计信息与项目计划、相关标准规范进行对比,及早发现项目实施结果和计划预期结果之间的差距。为了更好地判断项目计划实施过程中的偏差,应该项目计划中按阶段设置必要的“里程碑”。不过,“里程碑”应当设置的合理有效,而一旦里程碑设置好后,就要认真地进行对里程碑的结果进行检验,同时也不能仅仅依靠检查某些里程碑的结果,而不去跟踪监控产生这个结果的过程。
5. 分析偏差产生的原因和趋势
所谓偏差主要是在进度和成本上的的,质量上的偏差对软件来说比较难以判断。项目实施过程中产生的偏差就是实际进展和项目计划之间的差距,可以分为正偏差、负偏差和零偏差。零偏差意味着没有偏差;正偏差说明项目进度比进度计划有所超前,或当前花费成本少于计划中当前预算约定的成本;负偏差说明项目进度比进度计划有所延迟,或当前花费成本多于计划中当前预算约定的成本。
正偏差不完全是好事,负偏差也不完全是坏事。这些偏差的原因是什么,应当进一步向项目组了解情况,具体分析产生偏差的原因。
可能的原因有:原来制定的项目计划不合理,过于保守的计划造成了正偏差,过于乐观的计划造成了负偏差;技术革新、管理革新提高了效率造成了正偏差,资源不足、低效率、故障、人员离职造成了负偏差;成本的增加(负偏差),如增加奖金、提高工资、提高加班补贴造成了进度正偏差或零偏差;抽走技术人员(正偏差)造成进度的负偏差;需求分析不够清楚、设计方案有问题造成进度和成本的负偏差;外部因素有:客户配合不力、外包供应商未能按期、按质的要求交付、战争或自然灾害等不可抗力等等。
除了要分析出偏差的原因,还要根据原因分析除可能的趋势。原来的正偏差或零偏差是否会发展成负偏差,原来的负偏差是否有希望扭转成正偏差,还是会在不采取措施的情况下越来越严重,对后面的项目活动有多大程度的影响。
6. 采取适当的纠正预防措施
偏差的判断和分析让我们了解了偏差的根源,可以有的放矢地制定适当的纠正或预防措施。如果是计划不合理,就进行计划变更;如果是设计不合理,就进行设计变更;如果是人力资源不足,就适当增加人力资源;如果需要加班,就采取适当的措施安排加班。只有分析出造成偏差的根源和责任人,才能制定出对症下药的和可以落实到具体人员的纠正预防措施。
7. 跟踪评估措施的有效性
项目出现偏差后,制定的纠正预防措施和项目计划一样应该是具有可跟踪性的,就是说必须落实到具体的人负责,同时纠正的结果和效果是可以检验的。纠正预防措施制定出来后,应当保证落到实处,因此必须进行跟踪检查,对纠正预防措施的有效性进行评估。
参考文献
1、 人月神话,Frederick P. Brooks,Jr.清华大学出版社
2、人件(第2版),清华大学出版社
3、人件集——人性化的软件开发,谢超、刘颖、谢卓凡、 李虎译,人民邮电出版社
4、PMBOK-2000PMI;
5、质量·软件·管理(第一卷:系统思维),Gerald M.Weinberg,清华大学出版社
6、成功的项目管理,Trevol L Young(泰晤士报商业版,严鸿娟译);
7、成功的项目管理,Jack Gido & James P. Clements(21世纪管理经典教材系列,张金城等译);
8、如何做好项目管理,Stanley E. Portny(IDG新经济工商实务傻瓜丛书,宁俊等译);
9、管理软件开发项目(第二版),Neal Whitten(软件开发项目管理系列丛书,孙艳春等译);
10、IT项目管理,Kathy Schwalbe(项目管理译丛 王金玉等译);
11、项目管理—计划、进度和控制的系统方法(第7版),Harold Kerzner(电子工业出版社,杨爱华等译);
12、项目管理的战略规划:项目管理成熟度模型的应用,Harold Kerzner(电子工业出版社,张增华 吕义怀等译);
13、实用软件工程(第二版),郑人杰、殷人昆、陶永雷(清华大学出版社)
14、软件工程:实践者的研究方法》(第5版)Roger S.Pressman著;
15、高级项目管理基础,(信息产业部计算机信息系统集成高级项目经理培训讲义);
发表评论
-
人才(转)
2011-08-27 08:30 659对企业来讲,最宝贵的财富就是人才。 “企业只有一项真正的资源 ... -
项目风险真的是无处不在阿
2010-10-20 23:19 741最近项目组发生的不幸的事情实在是太多了,而且自己也发生了非 ... -
Sonar
2010-09-25 23:29 957Sonar是由codehaus发起的一个开源的软件,它遵守的 ... -
阿里巴巴“六脉神剑”的价值体系
2010-09-11 18:13 843阿里巴巴“六脉神剑”的价值体系 -客户第一:客户是衣食父 ... -
如何召开项目例会(转)
2010-09-05 19:08 15611 基本信息 项目例会到底该怎么开呢? 2 ... -
有效的需求分析员
2010-09-05 02:51 0日志 icon分享给好友 icon转到我空间 复制网址 日志 ... -
怎样做需求分析(下)
2010-09-05 02:49 0在具体的研究需求分析 ... -
计算机软件需求说明编制指南(转)
2010-09-05 02:47 952计算机软件需求说明编 ... -
做好PM的几个要素(转)
2010-09-05 01:50 7941.应用领域知识与技巧 2.成为合格的需求分析人员 识 ... -
需求—需求分析的任务和步骤(转)
2010-09-05 01:11 1367需求分析的任务和步骤 ... -
关于合理分配时间
2010-09-04 22:50 01.最近项目组并行的任 ... -
今天上线了
2010-06-21 23:27 696好几年没有调薪了,在万众期待的情况下,终于决定今年进行调 ... -
OneNote & project
2010-03-22 20:13 9371.今天是这个星期的第一天,今天装了OneNote和proje ...
相关推荐
1. 进度跟踪:使用项目管理软件或手工工具来跟踪项目进度,确保项目按计划执行。 2. 进度变更管理:由于各种内外部因素的影响,项目实际进度可能会与计划进度发生偏差。进度变更管理是指对项目计划进行必要的调整,...
### 项目进度管理与控制知识点...本章节详细介绍了项目进度管理的各个方面,包括设计、采购和施工阶段的具体管理措施,旨在为项目管理人员提供实用的操作指南。通过实施这些策略,可以显著提高项目完成的质量和效率。
信息化项目管理是现代企业运营中的重要组成部分,它涵盖了项目的规划、执行、监控和收尾等多个环节,以确保项目能够按时、按预算、按质量完成。本文将深入探讨项目管理的关键要素,尤其是进度保障措施,旨在为信息化...
《项目管理:计划、进度和控制的系统方法》(第7版)是一本深度解析项目管理理论与实践的权威著作,由多位资深项目管理专家共同编撰而成。本书旨在为项目管理者提供一套全面且系统的项目管理框架,涵盖项目生命周期中...
这份名为"项目管理-设计进度控制程序.pdf"的资料详细阐述了如何管理和控制设计进度,以达到整体项目的成功。 首先,该程序的目的是为了确保化工建设项目能够按照预定的时间表完成,它适用于特定的XXXX制甲醇及转化...
图书管理系统项目进度计划.doc
在信息系统项目管理中,进度管理是一项至关重要的任务,它涉及到项目的计划、控制、调整和优化,以确保项目能在预定的时间内顺利完成。这篇论文——“信息系统项目管理师论文-论信息系统项目的进度管理”,很可能会...
项目进度管理是项目管理的重要组成部分,它关注的是项目在时间维度上的规划、实施和控制,以确保项目能在预定期限内顺利完成。项目进度管理涵盖了基本原理、方法和技术,旨在协调项目的时间、费用和质量目标。 首先...
其中,开发计划进度表是项目进度控制中的一种重要工具,用于记录和跟踪项目的进度情况。 开发计划进度表的主要内容包括项目名称、备注、批准人和日期、审核人和日期、制表人、实际完成日、计划完成日、督导者、负责...
在项目进度管理中,项目经理需要对项目活动进行定义和估算,确定项目的关键任务,并对项目进度进行控制和调整。在实际项目中,项目经理需要根据项目的实际情况,对项目进度进行调整和优化,以确保项目在规定的工期内...
### 项目管理—计划、进度和控制的系统方法 #### 一、项目管理概述 项目管理是指在限定的时间内,通过一系列科学的方法和技术对项目的各项活动进行有效的规划、组织、领导与控制,确保项目目标得以实现的过程。...
项目进度跟踪是软件项目管理的重要组成部分,涉及到项目进度的跟踪和控制。在实验五中,将学习如何对项目进度进行跟踪,包括项目进度的跟踪、项目进度的控制等。 软件配置管理 软件配置管理是软件项目管理的重要...
本文由肖永威分享了他在软件项目进度跟踪管理方面的经验,强调了在项目管理中时间进度的重要性,并结合CMM(软件能力成熟度模型)理论和SPI(软件过程改进)来建立有效的进度管理策略。 首先,作者指出,项目管理...
如基于现有模板和公司资料来编制进度计划,采用WBS、紧前关系绘图法、三点估算法等多种方法工具进行详细的活动划分与安排,并运用项目管理软件与挣值管理等手段实现进度的有效跟踪和及时调整。 适用人群:项目管理...
在软件开发中,项目进度跟踪管理是确保项目按时交付的关键环节。本文作者肖永威分享了他在软件项目进度跟踪管理方面的实践经验,提出了建立软件开发进度模型和周工作计划管理制度的方法。 首先,项目管理的核心在于...
首先,项目跟踪及控制的目的是通过实时监控项目进度,评估项目的执行情况,包括工作量、成本、时间表、缺陷、承诺和风险等方面,为项目管理者提供项目的透明度。这有助于确定项目是否正按计划顺利进行。如果发现项目...
软件进度计划和保证措施是软件开发项目管理的关键环节,它涉及到项目的有效规划、跟踪、监控和控制,确保项目能够在预定期限内高质量地完成。在软件/插件开发中,进度管理不仅帮助项目经理掌握项目状态,还促进团队...
软件项目跟踪控制是项目管理中非常重要的一部分,它可以确保项目按照预先设定的计划轨道行驶,不会偏离预定的发展进程。软件项目跟踪控制的过程包括建立标准、观察项目性能、测量和分析结果、采取必要措施和控制反馈...
为此,项目管理者必须制定一个足够详细的进度表,以便监督项目进度并控制整个项目。常用的制定进度计划的工具主要有Gantt图和工程网络两种。 软件项目的控制对于软件开发项目而言,控制是十分重要的管理活动。软件...
本章主要介绍了工程项目管理中的进度管理,该章节旨在帮助学习者掌握进度管理的目标和任务、进度计划的编制和调整、进度控制的措施等知识点。 6.1 建设工程项目进度控制目标与任务 在进行工程项目管理时,进度控制...