j2ee 2002-5-20 发表于umlchina论坛
1. 权力
作为一个项目经理,你需要获得授权,否则你很难推行你的计划。
权力主要来自于你上司的信任,从上司那里获得管理,评价和奖励你组员的权力。同时,自身的专长、技能何知识,以及你自己的人格魅力都是权力的来源
2. 项目金三角
项目中首先关注的是项目金三角,包括目标、资源和时间:
---还有一个经常被忽视的因素:质量。因为质量一下子看不见,所以在其他资源不足的情况下,
质量常常被牺牲掉。 欢迎探讨 --notyy
---确实经常被高级管理者忽视,所以需要在需求说明时,把潜在的对质量的要求刻画出来,通过软件验证的方法,如评审,代码走查和测试的方法找出质量上的问题,通过过程控制来保证。--j2ee
目标--项目的目的,需求的多少,特性的多少
资源--主要是人力资源和资金
时间--完成项目的时间
清楚你项目中的金三角,并且在其中一条边变动时,会引发其他因素的调整。如,时间提前,就需要砍一些特性,或加一些人。
3. 有知识有技能的人
很多项目都失败在没有具有所需知识(比如业务领域的知识,软件工程知识)和能力(如软件策划能力)的人。如何招募到合格的人?如何通过培训来弥补知识上的不足,在项目工作中培养人,如何降低学习曲线(生产率随着熟悉而提高),获得他们的支持,激励并鼓舞他们。
通过尊重个人来建立和谐的工作环境。
4. 设定目标、指明方向
作为项目经理,你需要设定目标并指明方向。如果没有清晰的方向,组员会无所事事,或迷失在日常工作中。 你应该时刻focus在这个目标上。 像一名领导者那样,指向目标,然后说:“跟我来”。
5. 充裕的时间
项目需要一定的时间去运作,软件开发也有一定的内在规律。软件计划最忌不现实。一方面,会导致项目拖后,给公司带来风险;另一方面,不现实的计划会给项目成员带来过大的压力,导致士气降低。
所以,尽量不要接受date-driven的项目,因为你会死的很惨。 在计划完成的时间上加一定的缓冲buffer(15%--20%),以对付不确定的因素。
6. 计划,计划,计划
凡事“预则立,不预则废”。 如果你去航海,你需要得到一张地图,在地图上有你现在的位置 (了解你的现状),你的目的地(你要去那里)还有到达那里的路线(如何去做)。 做项目也一样,首先要分析你的项目范围,估计软件规模和工作量,然后制定项目计划。项目计划的主要部分是工作分解结构(WBS)和进度,工作分解结构就是项目要完成的任务的逐层分解, 分解到你可以把任务分配给组员,分解到你可以控制项目进行的程度为止。 进度就是任务执行的时间安排, 在进度中可以设置里程碑和检查点,以便在项目执行时检查里程碑完成的情况。
做项目计划要做到抓大放小,抓住影响项目成败的关键环节、主要方面。关键路径就是影响项目的主要方面。要分析关键路径,首先需要定义任务的依赖关系,然后再找出一条最短路径,即关键路径。关键路径上的一个任务推延,项目就会推迟。
作为一名项目经理,需要具有一定的自我管理能力,在工作的时候,总是作计划(Plan),执行(Do),检查计划执行情况(Check),针对计划或执行中的问题进行思考和改进(Action)。即所谓PDCA循环
7. 取悦客户
尽可能与客户的相关人员熟悉,获得他们的好感,在需求获取和后续的后程中,需要他们的支持。
采纳“客户满意第一”的宗旨,尽量争取用户在早期参与项目,尽量多地参与项目。
8. 需求管理
很多项目问题都出现在需求尚未确认,或需求蔓延上。需求不确定,会导致很多不确定的因素,无法保证项目成功。
所以,要建立起需求变更的控制流程。 尽快与用户确认需求。在需求纳入基线后,需求的改变按照变更流程进行,包括影响分析,决定采纳或在下一版本中增加等。
要对需求进行优先级评定。 先做优先级高的需求,后做优先级低的需求。选作较为确定的需求,把含糊不清的需求放到后面。
需求文档是沟通的基础,它建立了项目组和客户关于需求的共同理解;同时它也建立了项目需求人员,和设计,实现,测试人员的共同理解。
9. 沟通
与项目发起人沟通,与客户(内部客户,外部客户)沟通,与项目干系人沟通,与你的组员沟通。
要定期向发起人汇报项目的状态,进展和遇到的问题。争取他人对你的项目的支持。
如果你的项目较大,注意促进项目成员之间的沟通,以便在工作中更好地协作。
10. 管理承诺
获取承诺是非常重要的。 你需要你的组员对于他承担的任务承诺。同时组员可以选择不承诺某一任务。 承诺就意味着为了完成任务全身心地投入。 对于项目的出资人,用户也要处理好承诺。当项目变更设计到对客户的承诺时,一定要事前主动地与客户沟通。
一诺千金,你自己也不要轻易承诺,尤其不要承诺那些你认为不现实的进度。
11. 团队建设
在利益和理念上和你的组员达成一致,有难同当,有福同享。 同时在到达里程碑时与你的组员一同去happy去庆祝。 在工作之余,安排一些娱乐活动。
使得你们不仅是工作伙伴,更是生活中谈得来的朋友。 加强小组的认同感和归属感。
12. 提高士气
使他们努力的成果可视化,项目的某一部分完成后,在项目组中通报,鼓舞士气。取得一定进步要采取庆祝的方式,互相鼓励。遇到困难时,不要推卸责任。好的士气会给你带来高的生产力。
13. 注意风险
通过风险驱动的方式,将reactive的方式转变为proactive。 在计划阶段进行风险识别和评估,对风险发生概率和影响较大的预先制定计划。 在项目执行中不断重新评估风险,关注排名靠前的风险,关注关键路径上的风险。
14. 熟悉技术
在中国现阶段,项目经理一般是技术骨干培养出来的。在项目中,将要担负着技术攻关,带领其他人(尤其是新成员)和做技术决定的工作。
在项目经理这个层次上,技术能力主要表现为驾驭技术的能力。
15. 版本管理要保证
版本管理主要管理工作成果,帮助稳定一个能够发布的版本,减少开发中的混乱。 保证能够构造出一个最新的系统版本。
16. 富有现实感
要具有务实精神,能够适应环境,根据项目具体情况,而不是软件工程的各种理论管理项目。适用的才是最好的。
17. 授权
你要学会分享权力,在作决定的时候,征求组员的意见,让所有的人参与进来。参与感会调动积极性。但是要做决断,所谓充分表达,无条件执行
使你的组员在项目中得到锻炼的机会,这很重要,因为他们也要成长。通过参与式管理,让组员参与决策会得到更加积极主动地团队。
18. 加强监控
在项目执行过程中,要对项目执行的情况,进展和状态进行监控。在里程碑和检查点进行检查和控制。
19. 采用了解的开发技术
要了解你所用的开发技术,估计技术的风险,不要轻易使用尚未掌握的技术。
20. 采用原型法来缩短反馈时间
尽可能快的从客户那里得到反馈,比如选择原型法。在需求不清楚,或设计思路尚未验证的时候,迅速建立起需求的原型(分抛弃型和演化型),获得用户的反馈。
在技术方案选定后,立即着手建立原型,验证技术方案,降低开发的风险。
21. 采用适应变化的方法
在允许的情况下,采用面向对象的方法,降低模块间的耦合型,以适应系统需求的变化。