摘要:本文简单分析了项目管理在我国的发展状况以及遇到的困难,提出项目管理的重要性,最后重点对项目控制的两个方面谈了一些想法和体会。
Abstract: This paper briefly analyzes the development status of project management and the difficulties in our country, puts forward the importance of project management, and finally mainly talks about a number of ideas and experience of two aspects of project control.
关键词:项目管理;项目控制
Key words: project management;project control
0 引言
在我国,系统集成项目的失败几乎成了普遍现象。尤其是由于对软件业认识的误区,许多企业领导盲目认为软件业是低成本、高回报的产业,丝毫不考虑风险,鼓吹软件工程师无所不能,用户和市场人员的无知和胆大是银弹综合症的病因;由于观念的落后,更多的用户则认为软件在中国是不值钱的,对他们来讲,一个应用软件要花掉上百万元简直是不可思议的事,非常宏大的企业信息化建设项目,却投资很少的钱,早早给盲目胆大的软件企业挖下了陷阱;由于经验的不足,有许多项目在需求调研阶段就没有明确的范围或偏离了方向,进度、资金、工作量估计严重不足,而业主往往在项目交付后才学会提需求,使项目没完没了;由于管理水平的低下和软件本身的智力密集性,研发过程很难控制,个人英雄主义普遍存在,致使软件项目的成败把握在个别人手里……等等,总结起来,总是教训多,经验少。有资料把系统集成项目失败的原因归纳为四大类:项目组织原因、缺乏需求管理、缺乏计划与控制和估算错误。这四大类原因无一不在项目管理的范畴之内。有效的管理虽然不是项目成功的全部,但缺乏管理的项目肯定是成功不了的。管理学的创始人是彼得·德鲁克说过:“如果没有管理,那也就只会有一群乌合之众,而不会有一个机构。“那么,怎样组织一个协调、高效的项目团队,做到项目成功,客户满意,企业和合作伙伴互利双赢呢?答案当然是项目管理。
1 项目管理的重要性
众多IT企业经过多次失败后,也逐渐认识到项目管理的重要性,于是为提高企业自身的项目管理水平,国内的IT企业纷纷引入CMM(软件成熟度模型),本人所在的公司也不例外,2003年初公司将“山东省农村信用社联行汇划项目“(以下简称“联行项目“)作为CMM试点项目,该项目的目标是:为山东省农村信用社建立全省范围内的联行汇划系统,实现省内资金的划拨。作为项目的主要需求、设计和开发人员,本人深刻的感觉到了项目管理在项目实施中的重要作用,它就像是一个催化剂,能让你的能量得到更大的释放,让你更有效率。项目管理在该项目中的应用不仅使参加项目的相关人员自身价值和能力都得到了提升,同时也使公司以后在实施类似项目的时候,用更少的资金,更少的资源在合适的期间之内对项目进行更好控制。其实这点也正是项目管理的精髓所在。
既然项目管理的精髓在于控制,那么如何进行有效的项目控制呢?控制是一个过程,衡量朝项目项目目标方向的进展,监控偏离计划的偏差,采取纠正的措施是进展和计划相匹配,项目符合既定的目标。项目的控制阶段超越项目生命周期的其他阶段,它涉及到9个项目管理知识领域中的7个领域:①项目的综合要求整体变更控制,输出包括项目计划的更新、纠正措施和吸取的教训。②项目的范围管理包括范围变更控制,关键的输出是范围变更。③项目的时间管理包括进度控制,关键的输出是进度计划更新。④项目的成本管理设计到成本控制,输出包括修改的成本估算、预算更新、完成估算。⑤项目的质量管理包括质量控制,输出是质量提高、接受决策、返工、完成的检查表和过程调整。⑥项目的沟通管理包括绩效报告,输出是绩效报告和变更请求。⑦项目的风险管理设计风险应对措施控制,输出是风险管理计划的更新。
2 项目控制的两个方面的想法和体会
2.1 项目范围变更的控制 项目管理最重要也是最难做的一件工作就是确定项目的范围,本人在以往做过的项目中,经常会遇见这样的问题,客户并不了解他们真正的需求是什么,于是在项目实施的过程中不断的提出新的需求使整个项目跌入需求变化的怪圈,导致整个项目的延期。在“联行项目“中,我们在项目的开始阶段做了充分的需求调研,让客户将所有的想法尽可能的阐述清楚,并把所有的需求罗列出来,我们对客户的需求进行分析、归纳和整理,充分的挖掘客户潜在的需求,理解客户业务,使用客户的语言,站在客户的角度思考问题,同时取得客户的信任;在充分的需求分析基础上,我们做了良好的需求管理,在软件需求规格说明书经过正式的评审之后纳入基线,建立需求功能矩阵,对需求的变更遵循文档化的变更流程使软件的开发计划、工作产品和活动与需求保持一致,进行软件的需求追溯使项目在变更影响分析、跟踪、再设计、测试等方面都有了很好的依据,同时保证了产品的完整性和准确性。范围管理水平的低下是项目失败的主要因素之一。对于IT项目来说,要实现高水平的项目范围管理,重点要做好用户参与、明确的需求说明以及范围变更管理的程序设置等。
2.2 项目的进度控制 简单说,进度控制就是比较实际状态和计划之间的差异,并作出必要的调整使项目向有利的方向发展。“按时、保质地完成项目”大概是每一位项目经理最希望做到的。但工期托延的情况却时常发生。因而合理地安排项目时间是项目管理中一项关键内容,它的目的是保证按时完成项目、合理分配资源、发挥最佳工作效率。它的主要工作包括定义项目活动、任务、活动排序、每项活动的合理工期估算、制定项目完整的进度计划、资源共享分配、监控项目进度等内容。其实计划和实际状态之间总会存在一些差异,也就是“计划跟不上变化”,有的人因此得出结论“计划没用”。那么,面对不断变化的实际情况,计划到底有没有用?其实,没有“计划”便无从谈“变化”,也就是说计划只是一个基准,它是对未来的“预测”,或者说计划好象一个准星,它指定的方向可以命中目标,但在子弹飞行过程中会受各种因素影响,不能保证一定命中目标。但可以肯定的是,没有准星命中的可能性会大大降低,因为你无法记录偏差和修正弹道。工作中计划的作用是协调工作、分析变化,如果不根据计划执行并进行必要的控制,计划没有什么意义。也就是说控制过程中计划才能发挥作用。进度控制可以分成四个步骤:计划、执行、检查和行动。首先是制定计划,所谓磨刀不误砍柴功,制定计划以前应该先完成项目管理工作中的范围管理部分。如果只图节省时间,把这些前期工作省略,后面的工作必然会走弯路,反而会耽误时间。项目一开始首先要有明确项目目标、可交付产品的范围定义文档和项目的工作分解结构(WBS)。由于一些是明显的、项目所必须的工作,而另一些则具有一定的隐蔽性,所以要以经验为基础,列出完整的完成项目所必需的工作,同时要有专家审定过程,以此为基础才能制定出可行的项目进度计划,进行合理的时间管理额和进度控制。在联行的项目中我们首先将项目工作分解为更小、更易管理的工作包也叫活动或任务,这些小的活动应该是能够保障完成交付产品的可实施的详细任务。在项目实施中,要将所有活动列成一个明确的活动清单,并且让项目团队的每一个成员能够清楚有多少工作需要处理。活动清单采取文档形式,以便于项目其他过程的使用和管理。当然,随着项目活动分解的深入和细化,工作分解结构(WBS)需要修改。在产品描述、活动清单的基础上,要找出项目活动之间的依赖关系和特殊领域的依赖关系、工作顺序。在这里,我们既考虑了团队内部希望的特殊顺序和优先逻辑关系,也考虑了内部与外部、外部与外部的各种依赖关系以及为完成项目所要做的一些相关工作,例如在平台的开发必须在集成测试之前完成等,设立项目里程碑是排序工作中很重要的一部分。里程碑是项目中关键的事件及关键的目标时间,是项目成功的重要因素。里程碑事件是确保完成项目需求的活动序列中不可或缺的一部分。比如在联行项目中我们将软件需求书的最终评审、设计的完成,编码阶段的完成等关键任务作为项目的里程碑。项目工期估算是根据项目范围、资源状况计划列出项目活动所需要的工期。估算工期时要充分考虑活动清单、合理的资源需求、人员的能力因素以及环境因素对项目工期的影响。联行项目中我们采用了delphi的估算方法,在对每项活动的工期估算中应充分考虑风险因素对工期的影响。项目工期估算完成后,我们采用关键路径法(CPM)确定了整个项目的进度计划。那么制定好了项目计划后,我们主要采用画挣值图的方式来反映项目的实际状态与计划的偏差,使项目经理和项目成员及时的了解项目的情况,当出现偏差时能够及时采取纠正措施。委派在进度的控制中有非常重要的地位,很多时候计划失控并非因为某个人不努力,而仅仅是因为没有弄清要求。正确的委派活动要控制好三个关键点:时间点、交付物、责任人。时间点是指任务明确的开始/结束时间,最后同时交代清楚工作上下游关系;交付物是指任务的结果,一般是工作产品。交付物应明确指明具体要求;责任人是指“出了问题你该找的那个人”。如果需要几个人协作完成任务,一定要明确指明谁负责,不能为了搞平衡而让他们共担责任,这可能造成谁都不担责任。任务委派最好有文字记录,在联行的项目中我们采用下发任务单的方式,项目经理在分派任务时,在任务单上对任务作出明确地描述,并指出需要完成的时间,同时和责任人进行当面沟通和确认,并得到责任人的承诺。任务委派完成后当然就是执行了。执行过程中项目经理及时沟通情况和交流进展,调度和协调资源,处理变更和应付意外。检查可以在执行过程中的检查点进行,也可以在特地的时点进行。检查的目的是比较实际情况与计划差异,以确定当前的状态。我们在项目中主要采用的检查方式有例会、周报、口头询问等。另外,交付物的质量和提交情况、变更记录也是重要的检查手段。检查后如果发现“变化”就要行动,如果项目出现延期的情况,要及时地进行调整,比如增加投入:增加人力资源,加班,或指派更有经验的人,一般这都会带来成本的上升;进行调整后可能产生新的工作计划,这个计划应该及时通知相关各方,至此项目又会进入新的一轮项目控制过程。其实,项目的进度控制正是不断重复着两个动作。
总之,项目实施过程中可变因素很多,但项目管理会促使大家向一个相对较好的目标去努力。项目管理中的需求管理,可以了解项目的细节问题,从而把未知因素降到最低,是需求能够得到更好的控制;项目管理中的项目计划,在关键点设立检查点,使得项目经理能够随时监控项目的进度,及时发现问题,能对出现的异常现象做出快速反应;项目管理中的设计和过程的文档化,可以保证项目流程的清晰和计划性,也能使经验得到充分的积累和总结。这些无疑都保证了项目实施的可控性。控制工作经常是很事务性的,人们不愿意做有规律的坚持。如果用一句话表达控制的重要性,不妨一问:控制的反面叫失控——谁愿意自己的项目失控呢?曾有人在谈到什么是管理的时候说,管理就是制定计划,然后按计划执行。这话足够精练。试想,如果所有的事情都能够按照计划执行,管理将成为一件简单的作业。但是实际情况并不那么简单,由于环境的变化、认识的偏差、能力的不足等,造成了实际状况与计划的偏离。而要保证项目围绕计划开展,就得用到项目控制。