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