注:文本中的“我”,均是网上作者(前三部分来自网络文章,第四部分除外)。
第一部分:软件项目经理的要求
首先是一个管理者。其次熟悉某些工具,某几种语言。行业背景。项目管理技能。
软件项目经理面临的恶劣环境,我们绝大部分软件企业执行在相对混乱的状态(CMM一级),组织不大可能对项目以及项目经理的责任做出明白、合适的界定,所以,影响项目成功的一切因素都是项目经理的责任,包含客户、环境、考核、激励等等。
一、责任心。
取得项目的成功无疑是项目经理的责任。项目经理仅仅有把客户的惬意和企业长期利益作为自己的责任。项目成功才有可靠的基础,对于公司的战略性项目尤其如此。
二、常识和直觉。
大多数有违常识和直觉的做法终于会被证明为错误的,项目经理要积累足够多别人已犯的错误充实自己的常识。假设发现项目中有违反常识的现象,应该把它作为一个问题来解决,看一看是自己的常识须要改变还是这个现象须要改变。项目经理要尽量使项目依照常规运作,不要故弄玄虚,或过多使用程序猿不熟悉的新名词来表现自己的水平。这样不仅无助于程序猿形成良好的心态,并且无谓添加了项目的混乱。
项目经理面对的是不断变化的环境和未知的将来。早上去上班,或许某个关键程序猿要辞职,客户的需求发生了重大的变化。或是老板又有了什么让你头疼的新主意。
面对这种环境,项目经理必须保持敏锐的嗅觉,准备弹性较大的项目计划和设计方案,在大部分变化到来之前有所准备,以免项目受到重大的打击。
三、学习的心态。软件技术的发展日新月异,项目经理必须了解最新的发展方向。如:JEE或 .NET。UML等等。看看是否能应用于项目之中。并且项目经理还得学习管理方面的知识,CMM,PMBOK或是RUP。学习这些理论体系对于国内的大部分小企业来说,最重要的不是全然的导入。首先应该从这些先进思想中看到差距,在关键问题上做好改善工作,逐步推动项目管理和技术的进步。每一个程序猿都有其独到之处。项目经理应承认程序猿有强于自己之处,并尽力促进成员间知识、技能的交流。
四、尽一切力量去维护项目团队。
国内的软件企业一般没有非常好的文化和管理去构造一个富有凝聚力的团队。维持项目团队的稳定和战斗力很多其它成为项目经理的责任。
项目经理必须关心程序猿:1、尽力让程序猿专注于自己的工作,杂事造成的影响远比这些事本身花的时间多。相对说来,程序猿在处理杂事的时候效率会比一般人更低。也更easy犯错误,从而导致情绪变坏,影响工作。项目经理有时候应勇于承担勤杂工作。 2、要有宽容的心态,特别是对程序猿。
如今的程序猿都比較年轻,自己认为有点骄傲的资本,又处在一个浮燥的环境中,所以,有时候会做出一些过分的行为。项目经理千万不能太过在意。3、甘做幕后英雄,不斤斤计较。项目经理常常要在技术上支持程序猿,但不能到处宣扬,而要把成绩很多其它归功于程序猿。在项目紧张的时候。项目经理有时间的话要參与到繁琐的測试和调试工作中,或做一些代码工作。 4、维护公平原则。项目经理在分配工作、对项目成员进行考核评估时必须做到公平合理,让大家心悦诚服。
五、沟通与交流。
项目经理应该了解參与系统设计开发的成员,他们的特长和兴趣在哪里,以便更好地进行交流,这样的非正式的项目外的交流对于团队的建设是至关重要的。此外,成功的项目经理也要善于与公司领导层的沟通,这是获得必要的资源支持的保证。
有些优秀的软件项目经理能够与项目成员、相关部门或客户进行非常好的交流,但没能与上级进行良好的沟通,他们在领导一个或几个项目取得成功之后,却发如今新的项目中缺少了主要的来自领导的支持。终于,有些项目经理选择了离开公司,而还有一些则不得不放弃项目经理的角色。沟通与交流能力基本上是技术出身的大部分项目经理的致命伤。十年前,软件界最须要的是天才的开发者,近期几年管理的重要性日益凸现,软件公司開始寻找优秀的天才项目经理。事实证明,天才总是可遇不可求的,而管理系统不能建立在小概率的基础上。
解决软件企业的问题终于将依赖于组织管理水平的提高。比方说薪酬与激励政策、开发流程的优化、完好的培训制度,在一个管理良好的组织环境中,项目经理的责任以及履行责任的难度会大大减少。企业将不必再寻找天才的项目经理。相反,企业会成为优秀项目经理成长的基地。
也有人这样说的:
首先。了解项目管理的相关领域知识吗?你知道PMP的九大知识领域吗?你清楚CMMI、ISO对项目流程控制的各项要求吗?假设你有肯定的回答。那么恭喜你,你向项目经理的路上前进了20%。
项目管理的知识领域越来越广,项目计划、时间管理、资源管理、成本控制、风险管理、质量管理乃至对供应商的管理等。每一块内容都有大量的知识须要学习和掌握,并且须要參与当中的实践经验。这么重要的内容。为什么仅仅占了20%,你肯定非常奇怪。没有错,即使你对项目管理知识掌握的了如指掌,那也仅仅能有20%的加分。由于,这些知识仅仅是书本上的内容,通过学习大家都能掌握。即使不能所有记在脑海中。都能够边做项目边照着书上说的流程进行工作。假设每一个项目照着流程按部就班地走下去都能够顺利完毕,那还要项目经理干什么呢?所以。除了知识之外,另外80%的东西才是重点。
协调能力。这是一个合格的项目经理必须具备的能力
什么叫协调能力?就是与各色人等打交道的能力。
项目经理的职位,事实上是没有行政管理的权力的,就是对项目内的成员没有管理的权力,很多其它的时候做的工作是一个项目协调人。
一个项目启动后。项目的成员可能都是暂时从各个部门调来的,作为项目经理,须要与各个部门的人去协调每一个成员的參与项目的时间期限。项目经理须要安排工作与每一个项目成员,人都是一个个体,各种性格都有,怎样与不同性格的人交道。这可不是一时半会儿能学得会的。
项目经理也须要与上层领导协调,当项目推迟了,怎样向领导解释原因,怎样向领导申请很多其它的资金与资源,怎样说服领导更加支持这个项目。这都是协调能力的体现。除此之外。项目经理还须要与客户协调,面对客户漫无边际的需求要求。怎样加以限制,面对客户的种种苛求,怎样一一化解,当终于产品提交给客户后,怎样降低客户的抱怨,尽早的签收,这些都须要项目经理有很强的。把与项目相关的所有shareholder所有摆平的能力。这一点,应该占到40%的比例。也就是说,假设达到上面两条。你就能够做一个及格的项目经理了。
但这还是远远不够的。
文笔!
项目经理差点儿能够不用写代码,但很多其它的工作是写文档以及报告。
这差点儿占领了项目经理大半的工作时间。
从合同到项目计划再到项目报告,项目经理都须要极强的文笔写作功底。
清晰,明白是文档的基本要求,很多其它的时候。项目经理须要从不同的角度解析同一个问题,而让人得到不同的结果。
当然,假设你能把死的写成活的,黑的写成白的。那恭喜你。这20%你能够拿满分。
沟通能力!
不不过语言沟通能力。还包含察颜观色的能力。
项目经理未必须要口若悬河。出口成章,但说出的话一定让人清楚的明确;同一时候,也要通过表情,动作等身材语言。了解对方的内心想法。这一点。真得非常难。有的人一辈子未必学得会与别人沟通。所以,只能看你的天份了。
这一点。应该点到10%。
最后10%。就是抗压能力
作为项目经理,一定要能承受常人不能承受的巨大压力。
尤其在项目遇到问题。进展不顺的时候。在成本上升和面临着终于期限快到的时候,怎样承受并缓解那种压力,不是每个人都可以做到的。假设你遇到一点事就郁郁寡欢,放不下,那在项目的重压之下,会是对你精神与身材的双重折磨。
第二部分:软件项目经理的职责
1、不断地识别项目干系人,并管理好项目干系人的期望。
比方一个软件产品开发项目,可能的干系人包含但不限于:
投资方希望通过产品赚钱
产品用户希望产品好用、能给自己带来使用价值和良好的使用体验
项目团队希望通过该产品体现自己的创造力、成就感。并收获劳动回报和能力提升
政府机构希望该产品有着良好的社会效应
……
项目干系人不是一開始就能全然识别出来的,所以须要不断识别
要管理好项目干系人的期望。须要良好的沟通技能。要能换位思考,充分从对方的角度去理解与认识
注:项目干系人。事实上就是项目相关的人员。这是项目管理理论中的术语。
2、组建和建设一支强有力的项目团队。
项目团队是项目成功的关键要素,组建团队、激励并持续建设团队、协调好团队内部的关系和任务分配、充分沟通。是项目经理必须一直要做的事情。
建设项目团队。包含了招募、培训、调配、指导等各方面的工作。
3、做好项目管理计划。充分管控项目的范围、进度、成本、质量、风险等要素。
项目的范围、进度、成本、质量、风险管控是项目管理的基本要素。也是项目经理要做的事情之中的一个。当然。具体的需求调研及确认、系统架构设计、具体设计、开发、測试、变更、风险、文档、验收、交付、培训等等,甚至包含项目进度计划,都能够分解给项目团队成员来做。但项目经理要负责整体的管理和掌控,协调各方面的资源。
4、总结项目。
项目结束、产品验收交付后,项目经理的一个重要工作就是总结和分析项目的成败得失。尤其是充分总结经验和教训。作为自己、团队、所在的企业组织以后项目的借鉴和參考。
注:软件项目经理,假设过多地深入到产品设计、开发过程。而或多或少地忽略其真正应该专注和关注的职责,对项目有害无益。我们眼下项目多。人少,每一个项目经理都要參与到自己项目或者别人的项目中担负对应的工作,须要高效调整自己的工作计划,并每天运行和修正工作计划。
第三部分:怎样做一个成功的项目经理
软件项目管理是“以过程为核心、以度量为基础、以人为本”的,在此过程中须要充分地集成技术方法、工具、过程、资源(人力、资金、时间等)等要素,谁来领导这个集成工作呢?是项目经理。
项目经理是项目组的灵魂,是项目组中非常重要的一个角色,不管是对于个人英雄的时代。还是基于过程的管理时代,都必须依靠人来实现管理。这就是“以人为本”。不管管理多么正规。过程是对形式的管理。而内容的管理必须依靠个人的能力。
项目经理。是大多数软件公司中最难选的人。为什么呢?有实践经验又有理论知识的项目经理少之又少。并且即使有身价也比較高,所以在软件公里面"勉强的项目经理比比皆是"。有一定的开发经验,程序写的非常好,有一定资历,尽管没有受过正规训练,也可能没有做过管理人员,可是没有办法,公司缺人,仅仅好选他做项目经理了。当然。也不排除不具备上面的条件就做的非常好的。
99年我主管过1个成功的项目,该项目是为我们的一个老用户开发一块外围的採购模块。挂接在財务系统中。该项目组的成员都是刚參加工作的本科毕业生,他们是第一次用DELPHI开发应用软件。项目经理也是他们当中一个比較有管理思想的员工,在上学时是学生干部,比較有组织能力。我做为项目主管,对项目组进行管理的指导,由于我也从未用DELPHI做过开发。可想而知,该项目的人员风险有多大!
项目的需求分析请了一位有经验的老员工来做,并由该员工做出概要设计,具体设计、实现与实施都是由项目组来做,他们居然在规定的时间里依照需求完工了!在去现场实施之前我都以为不应该这么顺利,结果在他们实施完成的几个月里面。用户用的非常好。仅仅有几个小的地方对界面进行了调整,没有进行软件的正确性维护!真是难以置信。为什么呢?在事后进行总结时,大家得出得结论是:我们是严格依照公司的软件project规范做的。并不是有经验的员工才干够做项目经理!新手一样能够成功。
那么,到底怎样来选择一个项目经理呢?我们先看一下项目经理的来源。
(1)专职的项目经理,比方说在公司里有项目管理部,专门是项目经理的派出机构,项目经理经过专业的培训与认证。
(2)兼职的项目经理。来源于某一个技术部门。如开发部或事业部,同一时候能够兼任其它岗位。
对于专职的项目经理。假设项目组中的成员有兼职的情况。即同一个项目成员可能同一时候參与多个项目。这时就存在资源竞争的问题,须要项目组之间进行协调,因为组员与项目经理没有行政的隶属关系,因而项目的协调非常成问题。
对于另外一种方式。往往项目经理仅仅会对他熟悉的作业内容、熟悉的人员进行管理,名义上是项目经理。实际是个局部经理。
因此在选择设置公司的组织结构时。在选择项目经理时要充分考虑上述的两种情形。
一个合格的项目经理。以下的要求是必须的:
要公正无私:
99年我主管过一个项目。该项目的项目经理在分配奖金时论资派辈。不按业绩。使得项目组中资历浅可是干活多的员工怨言非常大,导致整个项目的积极性非常差,最后不得不由我出面制定新的业绩评估办法。
假设一个项目经理不能做到公正无私,他就难以服众,无法带好项目团队。
要有良好的职业道德
2002年在我经手主管的一个项目中,由于项目经理蓄意隐瞒了项目的真实进展情况,对用户的承诺没有兑现,而导致用户不信任他,向公司提出了撤换项目经理的要求。
用户对于项目有知情权,给用户暴露出问题不一定是坏事,由于仅仅要大家可以互相理解,才干保证项目的顺利进展。假设明知完不成进度。而有益隐瞒了真相,当然是要受到惩处的。
要具有管理的基本技能与知识
要做一个好的项目经理,他肯定要好好的学习一些关于项目管理的基础知识。进行项目管理的技能训练,既要有管理意识,还要有管理的基本技能,要"心有余且力也有余"。
要具有非常好的沟通与表达能力
项目经理要和方方面面的人员沟通,包含项目组内的人员、市场人员、用户、上级主管。也要和各个层次的人员打交道,为了项目的成功要通过沟通交流消除来自各方面的阻力。譬如,一个系统集成的项目,在用户现场布线时,你可能要和用户的project主管、电工、施工队等各种角色沟通。否则。可能由于非常小的问题。你的系统就要失败。
要有非常强的分析问题解决这个问题的能力
项目经理要可以通过现象看到本质,通过细节发现大问题,发现问题后要果断採取措施,而不是延误时机。假设一个项目经理对问题比較麻木,不能防微杜渐,那么就谁都可以做项目经理了。
要懂技术,不要求精通。可是要全面
这可能是争议比較大的一个原则。由于假设按此原则运行。那些拿到PMP证书的专职项目经理怎样找工作?使用不懂技术的项目经理我也以前尝试过,用过一个不懂开发的人来做项目经理。他主要对项目的进度负责,进行项目组内外的协调。可是为了弥补其不足。必须还要给他配一个助手专门负责技术。对于大的项目这样的方式是可以的,对于小的项目而言肯定不能这样做。否则就会出现资源浪费,项目经理的工作量不饱满。所以我的意见还是要使用懂技术的项目经理。这样他能清楚地知道组员在做什么、做的怎么样。可以发出正确的方向性指令,而不是瞎指挥,外行领导内行。
要谦虚,不能不懂装懂
有的项目经理搞一言堂,听不进去大家的意见。并且不懂装懂。有一位软件公司的人力资源部经理向我诉说了他们公司因为软件项目经理选择不当而带来的烦恼。2001年他们公司聘用了一位项目经理,该项目经理被程序猿们冠以"外行领导内行"的帽子,团队中绝大多数成员对他非议非常多。他也听不进去别人的意见,从而使项目团队的效率非常低,项目的质量非常差。系统開始实施后。就陷入到大量的纠错改错的泥潭中。
要平易近人,不要摆架子
假设你的项目经理不能做到这一点,你肯定会对这种项目经理非常反感的!你也不会去和他非常好地沟通的,当然项目组的效率也不会非常高的。
以上是对项目经理的基本要求。假设他可以在此基础上还有其它更好的长处,当然应该选中他。
给项目经理充分授权
在软件企业里面,一般有2种类型的组织结构:
(1)事业部制:在事业部里面包括一个产品生命周期的全部职责:产品开发、产品客户化、项目实施、产品的售后服务、市场、渠道等。
(2)功能部门制:即将市场、销售、产品开发、项目开发、实施服务、研发管理、測试的职能分散在不同的部门中,按功能划分部门。
不管是哪种组织结构。对于项目组而言一般都须要採用动态的项目组方式,即项目组的成员是由不同部门的人员抽调到一个项目组中来,当项目完毕后。项目组的成员就再回到各自的部门中。
对于静态的部门它的职责是提供合适的人员,培养人员的专业技能。进行专业职能的标准化工作,各职能部门就象人才的蓄水池。而项目组简单来讲就是用人。在动态组织的项目组中非常easy出现的问题是项目经理的权力不够或者项目经理的权威不够。所以一定要充分授权。
不要轻易撤换项目经理
2002年初,我接手了一个项目,该项目已经换了3任项目经理。导致该项目的工期一拖再拖,每换一次项目经理就要和用户协调一次,每换一次项目经理。用户就要将项目的需求又一次讲一遍,用户何其无辜!
所以在项目运行过程中,不要换项目经理。可是,换项目经理的情况在企业里是比較常见的。有时候企业也确实是不得已而为之。如项目经理离职了或者生病了。在项目初期要识别出这一风险,为了规避此风险在项目组内部能够实行AB角的方法。即有一个组员,他能够和项目经理一样熟悉项目的总体进展情况,一旦项目经理离开了。他随时能够补上。假设必须换项目经理时,也要选择一个恰当的时机。比方说系统开发完了,进入了实施阶段。能够将项目经理换成善于做实施工作的项目经理,再比方说在需求调研完了,能够换项目经理。
牢记上面的原则,相信您的项目的成功概率会大大提高!