|
浅谈项目管理的几大过程 |
|
来源:项目管理者联盟 作者:司智 日期:[2006-9-26] |
|
风险预留通常是成本的8%。
3.预估
预估是从量化的角度对项目进行评估,主要包括工作量,任务期限,人力,设备,材料,成本等,要注意预估不是财务策略或报价。
预估其实并不是一次性工作,在整个项目过程中,预估始终需要。预估似乎没什么特别需要提的地方,每个PM接到项目的时候自然会有预估,在项目发生变更或进入下一阶段时也会预估。预估的作用主要还是让PM作到心中有个底,安排计划时不至于毫无头绪。
4.进度计划
进度计划就是一个模块或功能要写多长时间,PM安排个日期,设立里程碑,叫程序员们不能偷懒。进度计划是从WBS提取过来的。对PM来说,合理的安排进度计划对项目控制和激励团队士气有着很大的作用。对程序员来说,进度计划毫无疑问是噩梦。
显示进度计划一般有先后顺序图,甘特图和里程碑图表。上回邵卫老师讲课,推荐的工具是m$的PROJECT,这个工具我还不会用,因为没时间去摸索。我的头倒是用的很溜了,近一个月来他就用这个PROJECT画了一个又一个的里程碑图,不停的折磨我和同事的神经。我们一般都是一边开发一边做UNITTEST,效果上来看,因为有强大的时间压力,效率上比之前确实要提高不少,可是我们也只能结结巴巴的赶完进度。由于TEAM里人少,我们都是一个人做几个人的活。我每天早晨六点多出门,经过将近两小时颠簸,八点多点已经坐在位子上,中午吃15分钟的饭,干到晚上八点下班,到家吃完饭往往已经11点了。一个多月我从来没吃过早饭,没有睡过六个小时以上的懒觉。虽然强大的压力使我们能在短时间内掌握尽可能多的技能,开发更多的模块,但是对我们的情绪也是有很大的影响。所以说,项目里程碑是一把双刃剑,合理安排才能既促进效率也不至于打击士气。团队成员士气的逐级衰落会给项目后期的开发带来难以估计的影响,进度将会大大延缓。关于PM和团队的问题我们后面会讲到,这里我先祥林嫂一把,然后跳过。。团队成员士气的逐级衰落会给项目后期的开发带来难以估计的影响,进度将会大大延缓。关于PM和团队的问题我们后面会讲到,这里我先祥林嫂一把,然后跳过。
里程碑图表的特征是任务,成员和时间,任务和成员用文字标志,时间用数字描述并辅助以图线跨度,象阶梯一样非常形象,一目了然。管理起来非常方便,完了的打个钩就可以了。
网络逻辑图是表示任务和逻辑关系的示意图,可以用先后次序表示,也可以用关键路径表示。其实把各个活动划分为1,2,3,4等阶段,每个阶段包括小活动1.1,1.2,2.1,2.2,2.3,2.4,3.1,3.2,3.3,4.1,4.2等,日程计划也分四种,一般只提到从前向后和从后向前两种。从前向后的概念就是某项活动必须相同或晚于直接指向这项活动的的所有活动的最早结束时间的最晚时间。有些绕口,我们打个比方:2阶段指向3阶段,那么2阶段里的4个子阶段也都指向3。假设2.1结束时间为1月12日,2.2结束时间为1月22日,2.3结束时间为1月15日,2.4结束时间为1月20日,那么,2阶段中最晚的结束时间是2.2的1月22日,所以在3阶段中的3个子阶段3.1,3.2,3.3的最早开始时间都不能早于1月22日。至于从后向前的例子大家自己去推吧,我就不举了,刚才几个123打的我累死了:)
项目经常需要调整进度。在不改变项目范围的情况下,调整进度有几种方法:利用快速跟踪手段来改变任务间的关系;将串行的任务改成并行;改变工作方法(可能改变WBS);改变日期限制,使关键路径上的任务开始或结束的更早。虽然方法多样化,在我看来只有一条,就是拼命的压榨程序员的劳动力。如何压榨,还是个技巧。如前面所分析的,需求分析恨不得多分点时间给它,压需求是不太可能;测试阶段后期接近完工,罗里巴唆的事情一大堆,忙都忙不完,那时候PM一门心思提前/按时完工,好收钱,压那段时间似乎也不太可能。说来残酷,最能压的还是CODING,编码阶段往往是压缩重点,总之大家埋头苦干就是了,大项目压缩的时候程序员吃喝拉撒都在公司是很正常的事情,相信不少人都有很深的体会,这里伤心事情也就不提了。只是我总结一下,让未来的PM们有压榨后来人的依据,呵呵。测试前期也可以适当的压一压,那时候人刚完工,都比较懒散。国内一般企业规模都不大,没有专门的质量控制部门,所以质量保证和测试往往就是程序员或PM本身。其实质量保证和测试人员的人数和素质都应该要高于程序员。在日本和CMM实施的公司里,编码压缩是很容易实现的事情,因为那些程序员真的是技能熟练的装配工人,压起来方便的很。他们这样培养人的目的或许就是为了压缩吧?
四.控制和执行阶段
1.软件开发
实在没什么好说的,也是大家最不愿意谈的,平时在公司里谈的已经够多的了,还要在这里受我唠叨。需要提醒的依然是团队合作精神和完善的文档管理制度。SOURCESAFE这些工具有时候还是有必要使用的。经常看到有人说天才程序员不写注释什么的。我相信有这种天才程序员,因为我碰到过几个。我爱人公司里也有一个,他们的一套产品核心代码就是这个人写的,4年过去了,周边代码换了好几茬,核心算法始终没换过,可惜这小子跟了李洪痔,如今已经不知所踪了。但是他的代码似乎也要有点注释的,没有注释过段时间再天才的程序员也不能保证他是最有记忆力的。而且,对一个项目的编码来说,靠一两个人打天下如今是不可能了。别人的公司都是团队,两人智慧胜一人,这头还在靠一个天才支撑门面,实际上市场可就别人抢了去,那时候再天才也没用了。编码的时候讲究技术公开,程序员不要藏着掖着,对大家没好处,PM要想办法调动大家创新思维的积极性,营造良好的技术讨论氛围,碰到技术难关的时候就容易攻破了。
有个问题需要单独对还没有PM觉悟的程序员说,其实是在调研的时候就定了的,就是使用什么样的开发工具。没有经验的程序员往往会拿着C++或者JAVA的资格证书或者拥有一两个开发工具的一些经验而得意洋洋。其实老板和PM根本不看重这个,他们关心的是使用什么样的工具能尽快的达到目的。管你什么C++,DELPHI,PB还是JAVA,只要能做的出来,VFP都可以用。我举这个例子并非说不看中工具,而是提醒想转型为PM的程序员,第一要把工具当作工具,而不要被工具套进去,钻研一些一辈子都用不上的技术;第二要掌握的并非是单独的一个工具,而是流行的程序设计的思想,以及在最短时间内掌握一门陌生工具的能力。只有建立了这样的思维,才有可能转为PM,否则一辈子都是技术工人,最多就是个技术总监。
2.变更
对任何项目,变更无可避免,无从逃避,只能去积极应对,这个应对应该是从需求分析就开始了。对一个需求分析做的很好的项目来说,基准文件定义的范围越详细清晰,用户跟PM扯皮的幌子就越少。而需求没做好,基准文件里的范围含糊不清,被客户抓住空子搞你一下是非常头疼的事情,往往要付出无谓的牺牲,有时候甚至非常火大。
需求做的好,文档清晰又有客户签字,那么后期客户提出的变更就超出了合同的范围,需要另外收费。这个时候千万不能手软,并非要刻意赚取客户的钱财,而是不能养成客户经常变更的习惯,否则后患无穷,维护的成本会让PM吃不消。在客户提出变更请求时,要建立变更申请登记表和变更申请表,并让客户签字。当然,有时候一些不是非常关键的模块PM也不至于一点不讲情面,该卖面子的时候还是要卖,尤其是当着对方领导的面,千万要卖面子,但是也别卖的太干脆,不要让他们得到的太容易。
需求做的不好,客户抓住漏洞或者非常不讲道理,麻烦就大了。有时候争论会很厉害,到非常白热化的地步,PM与客户代表几乎沟通不了。PM在客户关系和短期利益两方面难以取舍,一般都是向客户妥协,最终形成恶性循环。这种情况非常难办。一般这种情况都是到了项目后期,做重大的更改几乎是不可能的事情,如果白做就要亏钱。而这个时候如果PM跟对方高层的人关系搞的定,可以透过对方高层把事情压住。然而由于已经到后期,客户代表不会轻易更换,对方这次没有改成,必然心怀不满,下回在别的模块依然会找麻烦或者在谈二期的时候动动手脚,都是很让PM伤脑筋的事情,这方面目前还没有什么好的解决方法,所以尽可能的做好需求比什么都重要。相对需求来说,什么WBS,风险管理,计划进度都是扯淡,需求做好了,一帆风顺。还有一种办法就是装可怜,要装的非常的象,在对方的领导面前装,而且不能让人看出是装的样子,要让你自己都觉得你自己是真的可怜,那么就算这次客户硬是要求改了,下回他也必然不好意思再叫你改。其实人心都是肉长的,如果可能的话,我还是不赞同使用一些手段的,但是有时候客户非常难以在短时间打动而工期又将接近,这种情况下就要靠PM耍一些手段了。各人有各人的方式,八仙过海,各显神通吧。
PM在变更管理中需要做的是分析变更请求,评估变更可能带来的风险和修改基准文件。
3.质量控制
大公司有质量管理部门(QA),QA的成员基本上都是由非常有经验的PM转型过来的老狐狸,是老总接班人的有力争夺者。一个QA会管理多个项目,有时候甚至会亲身参与。PM和QA有些象猫和老鼠,不停的通过报表传递一些心照不宣的假数字。QA对PM的工作最终是有评定的:A级表示总体在控制下;B级表示当前在控制下;C级表示有显著问题;D级表示有重大问题。如果PM得了个D,那可不太妙,不但世界级的QA会每个月要收报告,地区QA会一个星期找来面谈一次,训一顿。得到A的PM是很逍遥的,基本上不会有人来过问。在没有QA的公司,质量控制只能由经过授权的团队成员进行,效果就要差的多了。
质量管理贯穿整个项目周期,详细的可以参见CMM。
4.成本管理
PM经常通过控制进度和预估来控制成本。PM必须经常问自己,项目已经到了什么阶段?完成了多少?花费了多少?完成时成本是多少?挣值法的术语不少,象BCWS,BCWP,ACWP,但是关系比较简单,大家参阅一下相关资料,这里不再羸述。总之,PM要管理好成本,注意节约,但并非是拼命剥削程序员,该花的还是要花。
五.结束阶段
1.项目结束
项目结束时,PM要将最终系统方案提交给用户,完成项目所有的提交件,收集项目全部信息并结束项目,完成或终止合约,签署项目结束的相关文件。
项目结束意味着可以收钱了。PM辛苦了那么多,终于可以高兴一下了,收到最后一笔款项,意味着递交件的移交和团队的解散,项目也转入维护阶段。不过收钱未必代表着赚钱,要看项目是否按时完工。一般来说,提前完工的项目很少,但是能赚大钱;按时完工的赚小钱;延期的要赔钱。一个人首次承担PM,如果没有人带,多半会失败。失败没什么,所有的PM(注意是所有,不是几乎所有)都失败过,然而失败会成为教训和经验,推动你继续前行。在美国,每年至少有40%的项目无法实施被搁浅。只有在项目中和生活中不断磨练,培养自身素质和作人的基本准则,才能成为赚大钱的PM。
2.项目完工会议
项目结束时,依然要开会,不过少多了。一般跟客户要开一个,主要是确定所有的提交件都已经被接收,对突出的个体进行表扬,对外宣传成功案例,标志并记录项目的正式结束。这时候开会很轻松,目的也很明确,做完了大家好聚好散,或者以后有机会再合作。
团队要解散,内部会议肯定是要开的。也没什么好废话的,该表扬就表扬,该发多少奖金就发多少奖金,毕竟大家都累死累活的干了那么长时间。项目结束请客户出去泡温泉时PM们千万别忘记了辛苦为你工作的程序员和工程师们,当然,如果他们不愿意看到你的脸那么你就折现发到他们的存折上去,正好让他们回家好好休息休息。这样下一个项目需要他们的时候他们才会为你卖命。说出来奖金发出去似乎你损失了,其实你赚大了。
3.客户满意度
形势也好,历史记录也好,尽管项目结束的时候客户满意度PM心中已经有底了,但是还是有必要向客户各个层次的项目代表发一张信息反馈表,收回的信息将反应客户的满意度。其实真正体现客户满意度的地方有很多。第一就是付钱付的快,如果客户不满意,一分钱藏在他牙缝里你也很难抠出来;第二就是二期,二期非常非常重要,因为这里已经是属于一种无销售成本的项目,又有一期的经验,可以说二期的钱是最好赚的。这中间的感觉,只有经历过的人才明白。
六.团队管理
1.建立团队
挑选人材依然是PM头疼的一个大问题,有时候一个在别的项目里很优秀的人材,挖过来未必能适应。所以,PM还是要拓展知识面,培养自己的敏锐度,因人置宜,才能挑选对自己项目有帮助的人材,才能真正对项目起作用。
2.核心程序员
任何项目都有核心程序员。核心程序员背负着很重的责任,平时要和普通程序员一样没日没夜的加班,碰到重大的技术难关更是整个人扑在电脑上,熬上几个通宵是家常便饭。常有人抱怨程序员工资高,真想请这些人来尝试一下程序员的工作,看看他们付出的精力是否配那份工资。前面说过的,中国的程序员不同于日本和欧美,他们很多人参与了系统分析和建模,对脚踏实地工作的程序员来说,这份工资实在是委屈了。看看行业里努力工作的程序员们,有几个不是头发花白,高度近视,未老先衰的?上星期五晚上我加班到10点,隔壁公司的一个技术总监特意留下来跟我说:"我们这种人,前半生拿命去换钱,后半生拿钱来买命!所以,工作的时候一定要注意劳逸结合!"道理我并非不懂,我也不想透支自己的身体,但是我有选择么?
PM要特别注意爱护核心程序员,尤其是他们的生活困难和精神状况,有时候,他们耍性子或者不合作PM要妥协,要从自己身上找原因。其实在国内,我还没碰到过敢这么做的程序员。相对PM来说,程序员是绝对的弱势群体,没有任何发言权,几乎可以说PM想怎么做,想怎么改,程序员就要付出一切代价去达到目标。
3.奖励与惩罚
奖励是不用说的了,相信所有阅读我这篇文章的PM,未来的PM,程序员和未来的程序员们都知道如何去做,这里只说惩罚。惩罚似乎很不好办,其实对PM来说再简单不过。一个程序员把模块做砸了,骂,扣工资,开除都不顶用,在项目没完成之前不是追究责任的时候。一个优秀的PM应该给他一个机会,当作没事一样让他去做别的事情,把他做砸的事情交给别人去做,就是对他最大的惩罚。这样既能激励他上进又不会让他尴尬,他会感激你一辈子,因为你给了他一次机会。而PM挑选这个人进团队并给予他责任,他没有完成,PM本身就有责任,应该自我检讨。
4.管理冲突
无论团队里的成员相互之间很熟悉还是不熟悉,冲突再所难免。在发生冲突的时候PM要牢记以公开,公正的方式处理冲突,不能因为其中之一是自己的小姨子就干掉另一方;处理事情的时候必须对事不对人。有时候,成员与PM之间也会有冲突,一般情况下都可以几乎肯定是PM的责任,因为很少有成员敢吃豹子胆来反抗自己的顶头上司。这时候PM除了要及时的做自我检讨之外,要有宽广的心胸。绝对不可以利用职权打击与自己有矛盾的成员,否则团队里所有成员都会心寒,项目的质量将会大打折扣。如果他确实不对,也要忍住,等项目完了慢慢收拾他不迟。PM的心胸还表现在不能嫉贤妒能上。当公司高层越级表扬团队某成员时,你应该高兴和光荣,而不是阴险的想着下次如何把这份光环戴到自己的头上。实际上在国内的很多PM都是这么做的,邀功的时候全是他的,有了责任都在下面。这种PM永远做不大,迟早会被淘汰。
5.承担责任
项目是有风险的,肯定会有失败的部分甚至整个项目失败。虽然说每个人都在WBS里定下了责任,在项目里程碑里都有任务。但是当整个项目危机来临的时候,PM要勇于站出来,承担起全部的责任。这是做人的方式,也能让你赢得团队所有成员的尊敬和爱戴。往往在这个时候我们才能体会到什么叫团队合作精神,就是大家齐心合力,共渡难关。
6.资源争夺
前面提到过,资源有限,如何争夺而不伤和气是对PM的另一个挑战。因为整个公司是一个大团队,内耗的厉害对PM没有好处。当然,摆平各路神仙是不可能的。但是一个健康的公司必然有健康的管理制度和优秀的成员。物以类聚,人以群分,PM应该在公司里主动结交志气相投的朋友,在拿到项目时这些朋友会给你很大的帮助,当然,在这些朋友需要你帮助的时候你也应该懂得怎么做。如果你性子很怪,很难找到脾气相近的朋友,没关系,交几个酒肉朋友也不错。我们公司数据统计,一个人在公司的人缘和他在公司请客吃饭的次数成正比。PM一定要尽心尽力的为公司打算,这样在需要高层支持的时候才会获得鼎立相助,而总是为自己打小算盘的PM是不长久的,总会被别人看穿的。分页:[1] [2] |
|
|
|
|
|
|
|