再谈项目管理核心要素
做了这么久项目管理,还是一句话,IT项目管理要做好太困难,我们只能够是定一个改进的目标,然后不断的朝这个目标去努力。对于知识体系PMBOK和PRINCE2都进行了完善的知识体系阐述,对于组织级项目管理成熟度我们也可以借鉴OPM3成熟度模型。在IT项目管理方面还有CMMI成熟度模型,SWEBOK软件工程成熟度标准。WBS,甘特图,关键路径,关键链,资源平衡,挣值,成本,质量,风险,计划,估算,评审,团队,模板,方法,工具,技术,过程等等。项目管理知识体系中有太多的要学习的东西,要想系统化的学习是决不是一蹴而就的事情,那现在的问题就是我们应该如何开始项目管理,项目管理的最小工具集应该是如何的,对于小型的项目团队项目管理的核心要素究竟在哪里,项目经理应该关注哪些内容?
在这里,我们提及到对于任何项目管理而言,无碍乎都是涉及到人,工具技术和过程三方面的内容。这三方面就是项目管理的核心内容,在《最后期限》中我们可以看到对项目管理核心的高度概括即是:选择正确的人,为他们分配正确的工作,通过团队建设保持他们的积极性。项目管理知识体系再复杂,项目经理做的所有事情都是为这三点服务。
1.人的问题始终是项目管理和项目经理面对的核心问题
虽然像CMMI过程成熟度模型在强调过程和弱化人的作用,但是我们仍然要强调在软件开发中人始终是第一位的,特别是能够胜任软件开发工作的人。从团队组建开始的人员选择和招募,到后期的培训,任务分配和安排,培训,沟通和上下游协作,团队建设,流程等,无不是和团队成员密切相关。如果团队成员的技能无法达到水平,积极性无法调动起来,项目经理做再好的项目计划都将是空中楼阁。所以在人的问题上,一个项目经理应该根据以下几点进行审视和检查,以下问题不会涉及到任何的公式模型,但是却可以体现出你对人的关注度。
a.清楚知道需要成员具备的知识技能,并愿意在人员招募上花费时间。
b.关注成员的学习能力强于关注成员现有的知识,基础知识强于应用知识。
c.愿意为招募到高手付出成倍的薪水。
d.是否已经形成了引导新成员快速进入到项目的方法和过程指导?
e.根据成员问题,过程中的讨论和评审了解成员的知识和技能水平。
f.能够有针对性的开展培训,避免成员犯相同的错误。
g.能够根据项目成员优势和劣势,性格特点分配和安排工作任务。
h.分配任务时候获取到成员的时间和质量承诺,并且有任务完成验收标准。
i.有团队的工作纪律和开发规范,并带头严格执行。
j.是否持续培养成员积极主动,信守承诺,重视质量的工作态度。
k.告诉团队成员他们的弱项,帮助他们制定改进计划。
l.不仅仅是告诉团队成员做什么,而是告诉他们做的方法和为什么。
以上有些内容或问题并不会在PMBOK知识体系中谈及到,但是却是必须重视和关注的问题。软件项目经理必须要意识到他对于软件团队的作用更多的是引导和教练,而不是纯粹的管理。《敏捷软件开发》中一再的强调,软件开发更像是一种协作型的团队游戏,需要的是认可游戏规则的一个团队来共同完成既定的目标,而项目经理最重要的就是要每个成员都意识到这个游戏是大家共同在玩,需要大家团结协作和共同努力才可能完成。
2.不必在意公式和模型,但是要形成一些方法,采用一些工具
PMBOK的九大知识体系让我们对于项目管理有了一个系统化的认识,知识体系很全,但是并不是我们在项目管理中都会遇到这些知识和相应的方法工具和技术。我们在实际的项目管理中我们可能是把PMBOK强调的多个步骤合并为了一个,或者说我们在应用某一种方法,只是不知道它从属于某一个理论。
项目经理在项目管理中最重要的仍然是一种意识,这种意识包括目标意识,系统思维和平衡,风险意识。如果没有在长期的项目管理中形成这种意识,那可以说你在做管理,但是不能说你在做项目管理。你可以不知道关键路径如何计算,挣值管理如何应用,但是你必须有以上三个意识。从这个展开,关于方法工具和技术上我们抽取的核心问题和要素是:
a.项目开始前会制定计划,不会因为计划赶不上变化而忽略计划。
b.为了明确范围,进度可控和人员技能匹配知道需要分解项目。
c.在项目没有开始前已经启动各种培训,学习和预研工作。
d.任务有明确的产出和验收标准,而且在项目前期就让所有人都紧张起来。
e.当旧计划偏差太大时及时拟定新计划和目标点,而不是无限期延误。
f.意识到项目目标不仅仅是进度,也更加关注成本和质量目标。
g.当团队绩效出现问题的时候,能够一起分析根源并进行改进。
h.知道把自己工作重心转移到团队建设,流程规范和沟通上。
i.不做纯粹管理,不断的提升在软件工程技术领域和行业业务领域积累。
3.过程很重要,但是一定不能笨拙和僵化
软件生命周期模型,变更管理,配置管理,开发模式等都是在讲流程。不管是基于CMMI还是敏捷的软件开发,都需要相应的流程支持。对于过程我们强调的重点就是不能僵化,很多时候我们期望引入一些流程僵化固化后再考虑优化,但是往往结果却是后续失去了优化的动力和激情,人最后变得麻木了,流程没有任何价值可言。
过程的价值仍然是体现在为项目服务,过程的目的仍然是使项目团队每个人都有章可循,依据规则来做事情。对于软件开发必须有严格的纪律性和规则,对于最强调个体作用的敏捷开发同样强调纪律的重要性。对于软件项目管理,在过程和规则上我们必须注意的是:
a.已经在项目和团队中形成了相应的开发规范并严格执行。
b.形成了需求评审和代码Review的流程和规则,并知道如何进行。
c.当用户提出需求变更的时候已经形成相应的流程进行影响分析。
d.源代码和文档是项目重要资产,已经受到了统一的归档和管理。
e.在项目中形成了问题分析解决和上报的机制。
f.周例会,工作总结和报告,团队会议等形成了相关的规范并执行。
g.团队中的每个人都知道自己该干什么不该干什么。
h.对于测试的缺陷已经用户反馈的故障已经形成相应的流程和处理机制。
i.对于软件产品的发布和部署已经形成相应的规则和流程。
文章引用自: