一句套话:项目经理真不是人干的活。
不知道其他公司的项目经理具体是做什么的,我感觉我们公司的项目经理基本上要负责项目管理+技术经理+后期设计,目前手头上的一个国内项目就是这样,也是我感觉做的最累的一个,出现的问题不少,也获得了不少经验。以前总感觉项目经理比较好当,现在终于明白自己不足的地方还很多。
关于项目管理的理论书籍不少,以下只是我个人的一些体会,写下来提醒自己也希望能够给刚入行的程序员一个借鉴。
1、 技术上要过硬。我一直认为不懂技术的项目经理不可能成为一个好的项目经理。
技术出众可以比较容易的建立个人权威,程序员都是一群心高气傲的人,虽然有公司的制度,但是个人魅力在项目中的作用也不可忽视。
懂技术可以较准确的安排项目进度,有效的识别出项目中的难点及风险。
懂技术可以有效的指导新人的开发,项目中难免会出现刚毕业的大学生等新手,指导和培养新人是项目经理很重要的一项工作,不要指望公司分给你的都是高手!
2、 做人中庸
性子不能急,要时刻保持一颗平常心。项目中会遇到很多问题,千头万绪,有时候可能会想:这个事情怎么也来找我,但是要明白,你是项目经理,项目中的所有事情都和你有关!
项目管理者联盟文章,深入探讨。
要大度,项目组成员难免会有一些怨言。绝对不能刚愎自用,听不见别人的意见,认为不同意见就是挑战自己的权威,别人的想法并不见得比你差,你也就是一个项目经理,不是什么了不起的人物。
3、 处事果断
作为项目经理要有决断力,有些事情可能两种方式都可以,那你就要明确一种方式,决不能采用模棱两可的做法,如果你都没有主见其他人就更不知道该怎么办了。
要有制定规范的能力,不要指望项目中所有成员都能够开发出规范的代码,毕竟你可以把项目作为自己的项目,认真负责的去做,但是其他人并不会都这么想,而且一般程序员很少有全局观念。这里的规范并不单纯是开发规范,比如是很多上传文件的功能要指定文件路径、需要根据功能指定开发的目录结构、共通代码的位置…… 开始制定规范很重要,要不然后期你就会发现开发的很乱。
4、 相信其他人
可能我是一个比较喜欢编码的人,而且对于一些关键代码总是不放心给其他人写。最好的方法是指导其他人来编写,项目经理的杂事比较多,涉及到编码中间去那么管理的时间就少了,得不偿失,也会打击其他人的积极性,以后代码维护又会占用很多时间。
对于比较大的项目,不可能每个功能都检查到,可以将几个大的功能指定几个小组负责人,调动其他人的积极性。
5、 具备一定的架构设计能力
现在这个项目设计很不充分,需求不是很明确,可能国内很多工期紧的项目都有这个问题。设计文档只是一个大体框架,在开发过程中只能采取类似极限开发的方式,逐步完善功能,因此在开发过程中难免要再设计,包括页面布局的设计。美工一般只是设计页面的样式,但是对于页面的布局,正如《不要让我思考》中所说的重要的信息放置在显著的位置等,这些东西需要不断的进行再设计。
6、 合理安排时间
包括合理安排自己的时间和团队的时间。
自己应该把大部分时间花在项目管理上,不应该陷在某个技术难点里。
对于团队管理需要的会议一定要开,不需要的会议一定不要开,比如例会什么的,如果没什么事反而浪费大家的时间。
对于加班没必要统一加班,比如有的人连中午休息时间都在编码,很好的完成了当天的任务,就没必要加班。以任务为准则,没完成的就需要加班。
就到这里吧,至于项目管理中常规的需求、需求变更管理、风险管理、进度管理等就不写了,这些在CMMI等规范中都有体现的。