项目管理是什么?
怎么样才能做好项目管理?
为什么有的人
不是技术专家,没有同类业务的深入实践
怎么看都不觉得他有什么先天优势
然而,随便把一个多么错综复杂的项目交给他
他最终都能做出令人满意的效果?
而另外一些人
是上下公认的技术专家
无论编程语言还是数据库
无论系统架构还是网络拓扑
(oh!这段freestyle好有节奏感~~)
说起来头头是道
以至于总是让人满怀期望的把项目交给他
最终的结果却往往令人失望
到底是什么拉开了我们之间的差距???
IT项目管理的最终目标:实现、产出
每一个项目都是不同的,所以再多再好的经验,在另一个项目中都是无法重现的。
因此无论PMP还是CMMI,其实都只能告诉我们一些放之四海皆准的理论,这些理论背的再熟,在项目实践中的作用还是要看个人发挥。
但并不是说项目管理就无章可循,有的,不仅有,而且很简单,只有四个字而已:以终为始!
展开来说就是:找准项目目标(这个最重要!)、控制项目范围,然后围绕目标,找资源、要政策、控制时间......动用一切合理合法的手段去实现目标!
IT的项目管理要达到一个什么样的目标?
只有彻底搞清楚这个问题,我们才能知道要做什么工作。
1. 项目管理要解决的问题:
2. 研发团队项目管理的问题:
3. 测试团队项目管理的问题:
项目测试工作排期,包括编写测试用例、及黑盒测试工作排期。
测试风险管理,主要包括
然后,项目管理在各个环节最关键的工作是计划和风险。一个计划是为了给一个有固定需求范围、人员的项目一个时间目标。
很多的计划是为了保证在人力资源和时间范围有限的时候让需求范围尽可能的大,也就是高产出。风险则是为了保证项目计划的目标能成功达到,同时又能保证产出项目的高质量。
IT项目管理的制度目标:透明化
那怎么落地?客观上来讲,这个目标是包含产品、研发、测试在内的整个团队的目标,特别是项目管理,在这里显得很无力,因为项目管理人员既不能帮产品梳理业务写PRD;
也不能撸起袖子自己敲代码、也不能越俎代庖做测试,当然也没这个时间。那么项目管理人员能怎么去达到这个目标呢?或者能怎么发现当前团队的产出是否是高质量、高产出的呢?
似乎这个问题提到了点子上,接下来我需要搞清楚:
怎么发现当前团队的产出不是 高质量、高产出的呢?
以下是IT项目研发所涉及的团队,和各个团队中会导致不能达到高质量、高产出的一些场景。
1. 研发人员
2. 测试人员
透明化程度越高,产品规划、项目计划、人力资源安排、跨团队协作、延期等风险就能比较快速的展现到整个团队面前,项目经理就能尽早并且比较充分的时间来协调并将风险造成的影响控制到最小。
流程规范的透明化在于确保产品业务方需求接口人、产品、研发、测试对流程规范有一致的理解,这样的流程需要各团队配合项目管理所做的工作要尽可能少,性价比要足够高。
Value1 = 各团队在项目管理中投入的时间资源价值。
Value2 = 流程规范推动产品研发产出和质量的提升的价值。
性价比= Value2 – Value1。
给予共赢的局面,参与项目的各个团队对流程规范有一致的理解并完全接受的。
项目管理过程的透明化
可以基于下面的模板来体现,一些常见的项目管理工具Scrum看板都可以做成包含下面属性的卡片,也能在计划时间的不同阶段有相应的提示预警。
一个版本迭代的周期控制在1-2周左右,建议最长不要超过1个月。项目周期过长则建议调整产品规划方案。
【项目名称V1.0.0】当前迭代核心需求范围概述:
项目经理
研发成员
研发完成时间
测试成员
测试完成时间
一个包含团队所有项目的Scrum看板,可以充分的展示团队处于各个阶段的项目,能反映出研发测试进度健康状态。
能反映出研发中心的现状和后续计划,能反映出人力资源的使用情况。从而能暴露出项目存在的问题和风险。
IT项目管理的过程目标:及早暴露问题和风险
一个考过PMP或者一个对项目管理工作有所了解的人都知道项目管理需要做的工作内容。但是项目延期始终是各个领域司空见惯的现象。
更多人对延期习以为常,或者觉得不延期不正常。因为项目管理的过程最难把控。
过程的把控是为了把过程中的问题和风险造成的影响通过及早协调解决的方式降到最低,而这及早协调解决的前提则是及早的暴露问题和风险。
所以,项目管理过程中的目标是及早的暴露问题和风险。
总结
项目目标怎么定义?客户?项目任务书?合同?
在经历过深刻的教训之后,终于领会到:在有的时候,真正的项目目标是由上司来定的;甚至,这个隐含的、真正的“项目目标”,可能与纸面上通过合同或是项目任务书规定的,截然相反!