从程序员到成功的项目经理,要从哪些方面提升能力
(一)程序员成长为软件项目经理路径
如何从一个程序员成长为一名软件项目经理?不同的人可能有不同的环境不同的机遇,或者先后有不同,也有些路线也不同。有些人可能一年,有些人可能要花五年时间,看个人的机遇及所处环境。但通常情况下,要成为一名软件项目经理的路径一般为:普通程序员-项目组长-项目经理这样的路径,当然具体的单位有些差异,还有看自己是否有心和努力。
程序员
作为项目经理需要负责整个项目在预算范围内按时优质地完成,并使客户满意。所以这样一看就基本明白项目经理要总揽项目全责,需要做好哪些事情,需要具备哪些能力。软件项目经理不需要事必躬亲,但要全局把控,大概具有以下几个方面的能力:技术能力,计划能力,组织协调能力,领导能力,控制能力等。有些能力在普通项目经理,高级项目经理之间只时能力程度或涉及的能力范围有差异。所以在普通程序员岗位上首先得练就比较拿得出手的技术能力,因为软件行业项目经理基本上是和高级技术工程师一肩挑的,没有过硬的技术能力,那么今后独立承担项目时,核心的项目框架你就会受制于人(比如技术工程师)。单位内部的竞争也并不小,一有短板也许机会就不属于你了。
软件项目经理
下一步就是如何晋升为项目组长训练计划能力,组织协调能力,控制能力,领导能力。在项目组长的位置上承担的是项目一小部分,比如子功能模块。项目组长如何计划承担的子功能模块,如何分配任务和内部人员的协调及对外部人员的协调。有可能还会涉及到如何控制该子功能模块的成本(这部分可能项目经理已经预算好了),如何管理该子功能模块的进度质量以及小组人员的管理等等。
程序员晋升项目经理
当然项目小组长涉及的范围可能还是有限,还要学习整个项目是如何从开始到结束,人员调配,项目成本及利润预算等。比如从市场或客户调研,到设计,到开发,测试,客户现场培训上线,怎样和客户交流,如何控制项目的范围,如何预算项目的成本等等。只要多经历几个项目大概就会知道项目的各个环节是怎么做的,然后实践积累经验,只要有机会就有可能晋升为项目经理的。这只是一个大概的描述,从程序员到项目经理是一个很大的转变,包括思维上的,行动上的。
(二)一名程序员过度到项目经理
1.从程序员到PM,是一条脱变的路,事实上程序员走的路最终不应该是项目经理。首先有一点需要明白的就是,一定规模的项目中,项目经理不需要太懂技术,他可以是一知半解。项目经理的任务不是在技术方面,技术相关的应该交给SA去做。项目经理更多地是做管理,沟通等工作,你如果可以的话到书店查看一下关于项目管理的书籍,你就会明白。当然对于小项目来说,有可能是PM,SA是同一个人,而这样的项目经理更多只是SA加上一些管理工作。要做项目经理,你就首先告诉自己不再去碰技术细节了。程序员并不是一个培养项目经理的好环境。所以没有什么从Coder到什么developer再到SA然后是PM的路,这是一条比较悲哀的路。在大公司,SA下一个目标不是PM,而consultant,然后是senior consultant,PM走的是另一条路,所需要的技能不是技术,技术给PM带来的能力提升是很少的。在项目中你最后能分清楚PM与SA的关系及各自在项目中的分工与用途。
2.其实我蛮同意 gzlucky(Lucky) 的看法的,确实是我们公司不少项经理就是不很能跟得上现在的一些技术,因为很多人都快年近四十,儿子都上高中了,要他们再学新技术真的难度比较大,他们的工作基本上就是天天找手下的程序员,布置这个任务,询问那个任务做的怎么样了。不过我的头倒是和我一样编程,他手下写代码的就我一个人,他自己也会ASP和JSP,但是可能对.NET不熟,就由我来主负责了。我觉得项目经理还是像他这样的好,自己也能懂不少技术,可以服人。但是我的头儿好像在沟通这一块不是非常出色,当然也有可能是俺太内向,不太与他沟通,所以他也只是在交待任务后就不再多询问,而不像别的项目经理天天追程序员后头问。我想问问各位,你们看哪种项目经理才是比较好的,像我的头儿这样的,还是像某些喜欢追程序员后面问进展的。
3.(作者是两黄星)原来在一个小公司做过半年的DM,一年的PM,后来为了让自己的技术更扎实一些,离开了原来公司,现在在大公司做程序员,开始后悔了,在大公司里很难接触管理方面的东西,也很难晋升,个人认为在小公司做DM,PM,有经验后直接找大公司的PM,这样也是一条路。
或者考PMP之类的证书,然后直接找管理的工作。
希望过来人能给予更好的意见和建议,我也现在想往管理层发展。
技术很硬了再去做PM,这种想法是错误的,我就犯了这个错,边搞好技术(为了生计)边学管理知识(为了将来),慢慢向管理发展,不能等。有句话说的好,机会是属于那些有准备的人的。利用业余时间多学些管理方面的东西,所谓人的差异在业余时间。
要走向管理层,英语一定要学好。
沟通很重要,要做好管理者,先学会做人。多跟下属沟通,多为下属着想,而不要去巴解讨好上司。体谅下属,把项目计划做的尽量合理,不要让下属加班,给下属发展和晋升的空间,这样才能是下属有干劲,才能把项目做好,你才有更高的升迁机会。
只有把自己知道的不断的让你得力下属知道,只有提拔起一些得力的下属来,你才有时间和精力去向上爬,不然你抱着不放,就没有升迁的机会。
管理不是喝酒抽烟那么简单,那只是过去的那种不思上进,耽误自己前程。
吃尽苦中苦,方为人上人。
做PM不是混,是要把项目做好,这跟做人是一个道理,这也就是为什么做管理要先学会做人的道理。
pm的整个工作重点是什么?如果做为一个PM,技术不高怎么对付组里的牛人
我们经常会因为公司里的顶尖人才、个性化太强,不能与其他人合作而感到棘手,要解决这一问题其实也是有法可寻的。
一、在肯定其价值和优势的前提下,明确地制定改进的目标;
二、”顶尖人才能够面对中肯的,明确及一对一的批评作正面反应,所以要加强与他沟通的力度;
三、可以根据具体情况调整考核目标,加强与其他员工合作的内容;
四、把“顶尖人才”调到相对能独立发挥其才能的岗位,减少与别人发生矛盾的机会。
1.负责产品中心的日常管理工作;规划部门的年度发展计划和发展方向;制定、确立部门内部管理的规章制度和工作规范;制定本部门年度财务预算;负责部门人员招聘、任用、考核的管理与控制等。(占工作量的40%)
2.根据公司整体发展要求,制定部门研发产品的发展规划和方向;负责组织、协调完成产品的规划升级、专项产品的开发与实施;进行市场调研、用户/代理回访等。(占工作量的40%)
3.及时了解、掌握新的开发技术,研究探求新的开发技术和方法方法,进一步完善产品结构和功能;从质量和易用性等方面不断发展、提升现有的产品。
(占工作量的20%)
4.多为他人着想,这样他人才乐于为你着想。适当提拨一些下属,不是让自己有精力向上爬,而是他们为了向上爬只有一个方法,把你再往上顶。每个人心中的委屈都是天底下最大的,这时你需要无限的耐心;每个人都有极需要帮助的一面,这时你需要无限的关心;当别人有意思向你倾诉或表述的时候,这时你需要的是爱心。
5.劝大家如果学精了,还是到非it的企业里去比较好,把自己的专业知识和行业知识结合起来,这样对自己的长远发展有好处,不要把自己封闭在it企业里,以后到35岁以上就没有出路了
6.能够勇敢大胆的换工作,开始几年不要为了赚钱,而是为了赚经验,我工作2、3年了,身上的存款还是个4位数,你们肯定认为很搞笑。但我走过5-6家公司了。。每个一个公司都有不同的感受。各方面都有了些进步。
7.多学些管理知识,多进行管理实践!
8.其实,我觉得做一个好的项目经理不是那么容易的,项目经理,主要的任务是协调程序员的开发与项目的进展.在面对程序员的时候,首先要抓住作为程序员的特点,如果你的技术过硬的话,那么你用你的技术去让下面的人佩服你的技术,那么他们会服服帖帖的,如果你的技术不过硬的话,那么你就谦虚点,不要太吹牛皮了,不然的话,下面的人忍得了你一时,忍不了你一世,迟早会反你的(当年我就反过,哈哈哈)!所以,我觉得,从一个程序员到项目经理过渡的话,还是掌握足够的技术是关键,当然,培养起自己的人格魅力也很重要.如果是从别的行业的人想去做项目经理的话呢,最重要还是谦虚,不要以职位压人!
9.项目经理主要工作就是“沟通”,目的是保证项目高品质完成,合理利用资源,这里还有对下属的培养,要善于用人,待下属要不遗余力的帮助,不要害怕被下属取代,在信任的前提下要适当放权,因为当你培养出一批可以取代你的下属时,正是你升职之时。
附:转载文章
如果你曾经以为自己在启蒙阶段就已经了解了需要了解的全部东西,那么你肯定从来都没有做过IT经理。曾经身为IT专业人士的你该如何成功过渡为IT管理者?下面这位经验丰富的专业人士所介绍的技巧应该能帮助你避免很多错误的发生。
从一位纯技术人员向一位IT管理者的过渡是一条充满了艰辛和曲折的漫长道路。已经在IT业打拼了十六年的Steven Crane对此可谓是深有体会。他曾经在一些实力雄厚的大公司(如吉列公司、派克公司)担任IT经理长达八年之久。在那段日子里,他成功的应对了很多来自管理工作的挑战。为了帮助新上任的IT经理们避免重犯他当年曾经犯过的错误,他根据自己的经验向大家介绍了十五项技巧。
培养管理能力的技巧
1、阅读Ken Blanchard撰写的“一分钟经理”系列丛书。根据Ken Blanchard在书中的定义,所谓的一分钟经理是指那些不需要花费很长的时间,应用他三个简单的管理步骤就可以达到很好的效果的管理者。
2、了解自己所在公司的规章制度,与自己的同事和上级建立良好的关系。认真听取他们的建议。管理人员们通常都愿意给其他管理者提供帮助。
3、尽快发现并了解自己的弱点和不足。要记住,你是可以通过培训来弥补自己的不足的。
4、学着把预算控制到最低限度,让大家清楚的了解资金是在哪些地方被节省下来的。
同公司主管人员增强交流的技巧
5、不要把每天的工作当中所出现的问题都汇报给自己的上级。相反,要善于发现那些重复出现的问题并为之寻找解决办法。然后再就几种不同的解决方案征求上级的意见。
6、如果你做项目同做支持工作一样出色,那么一定要把这两种工作区分开。只要把新增加的员工的薪水计算在整个项目的成本之内,那么你就可以为了新项目的进行而招募新的员工。不要让自己手下的员工在做支持工作的同时又陷入到正在进行的项目当中。
7、详尽记录、及时汇报。要求项目小组的成员填写时间记录,这样你就能够明白时间都花在了哪里。当你需要证明项目工期应该延长的时候,这些记录会起到帮助作用。当然,有了这些记录,你在向公司主管撰写月度报告的时候也会轻松许多。
8、当公司系统出现问题而瘫痪的时候,要知道你的小组的任务是让系统恢复正常。要保证关键系统的灾难恢复计划的到位,并且能够恢复其他的项目。
激励员工的技巧
9、如果公司以前没有正式的服务平台协议,而你又在实际工作中发现有大量的服务电话需要接听,那么就创建一个集中化的服务平台。如果必要的话可以寻求外包。如果真的需要外包的话,一定要制定服务水平协议。
10、花时间激励自己的员工走向成功,尽可能多的排除来自其他部门的不利因素。
11、学会“猴子管理”:当员工来向你寻求帮助时,要让他们知道自己接下来应该如何继续行动。不要帮助员工分担他们的工作,因为你会发现那样的工作永远都做不完。
12、每年至少对员工进行一到两次的业绩评估。让员工有明确的目标,并且帮助他们去实现自己的目标。
13、定期召开小组会议。由于工作任务总是一个接着一个,所有人看上去都是那么忙碌,要想做到这一点是有些困难。如果绝对必要的话,可以选择工作午餐的形式,只是别忘了给大家提供三明治就是了。
14、至少每个季度邀请小组成员一起外出就餐一次。如果预算控制的好,应付这笔花消是没有问题的。
15、要知道所有员工的能力的总和就是整个小组的最大工作产出。不要仅仅因为你自己给自己树立了高标准就希望所有的小组成员都能够做到和你一样。要根据他们的实际情况去赞扬和鼓励他们,并且针对他们的不足而对他们进行培训。
成功总会到来
成功的管理技能帮助Crane成为了独立的管理顾问。现在,他帮助很多中小型公司策划IT电子销售系统和电子商务服务战略。上面所介绍的这些技巧至今仍在帮助着他。
(三)从IT程序员进阶到项目经理,你要怎么走?
其实大部分的IT产品经理或者是IT项目经理,很多都是从最底层的码农一路披荆斩棘,不断发育进化到产品经理或者项目经理的。但是有不少毕业3-5年的小伙伴就纳闷了,怎么都是工作这么久,我还在当一个小小的主管,某某同学怎么就已经当上了IT项目经理开始带团队了,于是你就郁闷了,烦躁了,可是你有没有想过自己晋升慢的原因呢?看完小编今天的文章,自己也可以了解一下。
也许我们周边接触的项目经理基本都是忙得脚不沾地,甚至开会都是赶场,一场接着一场。但是在国外真正的项目经理其实并没有这么忙,他们手头真正可以处理的工作不过是团队里出现的一些无法解决和沟通的问题。
那么原因在哪里:
1. 工作本身
对于一个程序员来说,他的工作是比较单纯的,基本上是单线程运作,只需要项目经理交待开发任务即可,可是当上了项目经理就不一样了。以前好比在游泳池中游泳,现在是在大海里冲浪,各种事情如潮水一般向你涌来,让你顾此失彼,手足无措。所以你需要适应,需要去转变思维,需要学会安排工作,而不是自己独挑大梁。
2. 下属
说到下属,其实下属也是一种资源,这种资源与时间一样,同样稀缺。其实我们可以设想一下极端情况,如果你的下属人数足够,能力也很强的话,你完全可以像优秀的项目经理一样,把你的全部工作授权给你的下属,你自己也就不用整天焦头烂额了。
但是一般情况下是没办法实现的,因为正是由于你的下属们不够优秀,所以才需要你来管理,让他们各施所长,各展身手,把每个人的作用发挥到极致。这就需要你足够了解你的下属,需要你了解他们的能力和特长。
3. 自己
对,其实自己才是最大的主要原因。既然资源受限是一定的,那么求人不如求己 ,从自己身上找到解决之道。这一点听着比较难,其实做起来也挺简单,就是一日三省吾身,经常问一问自己,我对工作安排合理吗?我抓住了主要问题吗?我在旁枝末节的事情上浪费时间了吗?我有充分发挥下属的能力吗?我自己工作拖拖拉拉吗?…通过不断的自省,改善自己的管理方法和行为习惯,我们势必会越做越好,越做越轻松,变成一位优秀的项目经理。
4.做事分清主次
每天都把自己要做的工作梳理一遍,分清楚哪些是必要的工作,哪些是不怎么重要的工作。可以自己做一个象限表来标注自己的工作,这样更能一目了然:
第一象限:重要紧急这一类往往是火烧眉毛的事情,需要马上去处理。这里面的工作必须是最先处理的,晚了估计你的客户会炸毛,你的领导会把你骂的狗血淋头。
第二象限:重要不紧急这类事情一般是预防型的工作,例如制定项目计划、团队建设等,它们不需要你停下手上的工作马上去做,但如果没做好的话,可能就会导致产生项目危机。这里可以暂时列个大纲,至少让自己做到心中有数,要不然会影响项目的进程。
第三象限:不紧急也不重要这类事情看上去最不需要做了,很多人时间安排不合理其实都是因为这些事情,例如:看新闻,写博客,听歌走神等等。
第四象限:紧急不重要这类事情虽然不重要,却需要马上去处理。一个典型的例子就是桌上的电话响了,你接还是不接?当然要接,因为你不知道是谁。万一是甲方客户的电话呢?你拒绝了估计会错过大事情。
好了,小编今天的内容就到这里啦!各位程序员和IT项目管理者可以思考一下,有木有道理,欢迎提出指导意见。
(四)我的程序员到项目经理之路
之前有多位读者问我想做项目经理,想问下我的经验及教训,答应了好多人要写,一直没写,眼瞅着年底了,2018答应过的事情绝对不能拖到2019。今天就跟大家聊聊,内容可能有点长。
这篇文章其实很早就想写了,但说实话一直不写的原因是有点心虚,毕竟我也才毕业不到5年时间,不是什么行业大牛,也不是知名大V,害怕自己写不好给读者带来误导。但又转念想想,谁不是这样过来的呢,大部分人刚毕业都不可能立马找到满意的工作,大部分人对自己的职业规划也是充满迷茫,都是慢慢积累,一路摸着石头过河。今天我就大胆写出来,哪怕对你有一点点启发,能帮你少走一点点弯路,我就觉得值了。
我14年毕业于一个普通的本科院校,计算机与科学技术专业,算是所谓的科班出身吧。从大学毕业顺利拿到毕业证和学位证来讲,我算是合格的,但从毕业就业所需的专业技能来讲,我是学渣。这里我并不想过分强调中国大学教育与社会所需工作技能的脱节。如今的互联网时代,想要学习任何的技术知识大多都能找到,关键是你怎么利用学习资源了,所以不要抱怨自己的学校和大学教育环境。
现在想想,我的大学日子过的太爽了,篮球、dota、妹子、一帮好兄弟、热闹的班集体,肆无忌惮的挥霍着自己的青春,大学四年可以说是目前为止我人生里最美好的一段回忆了吧。但时间是公平的,有的人肆意挥洒青春,毕业就面临着失业,而有的人早早就为考研或是工作准备着,他们大多也都能如愿。我是前者,但我也不后悔,那段时光短暂而美好,青春无悔。
大三末的时候,虽然是专业技能很差,但编程还是有一点基础的,就硬着头皮试着去找了一份工作,是一家做电商网站的公司。记忆深刻的是当时那个公司老板给我开出一个月的工资是2000,需要说明的是当时是2013年,我还没毕业,而且我所在的城市是一座四五线的内地小城市,一个月2000感觉真的很多了。跟我一起进去的还有几个实习的同学,私底下我问了都才1000多点。我内心当时那个高兴啊,我想这主要源于我面试时候的表现吧。其实当时的技术水平都很低,我感觉主要是那个老板觉得我综合能力更强,希望我未来能带领一个小团队。我大学期间是班长,自认为沟通能力还不错吧,我想这个是主要原因,在面试的沟通过程中,我表现出的自信,叫吹牛逼也行,我觉得征服了那个老板,当然也可能是因为我太帅(噢,那个老板好像是女的)。
后来临近毕业,家里人让考公务员。我也确实努力考了一把,差点进面试,说实话我现在想想幸亏没考上,如果当时真当了公务员,我可能会后悔,虽说工作稳定,但一定见识不了外面世界的精彩。公务员考试失败后,我就想着继续找计算机相关工作了,当时还真没想去大城市,觉得去像北京这样的大城市,可能就是去找死,水平这么低,找不到工作的,现在回过头想想那时候真傻逼。一个堂哥给我的建议是,你要下定决心从事计算机行业,就别小城市发展,要去就去IT聚集地北上广,当时他给我举了个形象的例子,至今记忆犹新,在小城市里做IT就像在小河湖泊里划船,只有到大城市的大江大海里,才能历经风雨,扬帆远航。现在回想过往几年,确是这样。
从认为自己来北京是找不到工作、是找死,到我下定决心来北京,经历了很多,包括家里人的反对、自己痛苦的思想斗争。很庆幸我战胜了自己,很感激当时自己下定决心的勇气。年轻的时候不去冒险,不去尝试,要等到自己老了吗?
我大学的时候学的是Java,刚来北京的时候,仅有一点基础知识,编码能力很有限,投了一部分简历,收到面试也很少。相比之下,当时有很多同学参加了培训,他们也确实比我更快找到了工作。由于之前的实习经历,我对自己还是有信心的,我觉得我不培训也能找到工作,我更愿意在工作中去学习,而不是再回到上课的日子里,事实证明我可以。虽然面试机会不多,但我抓住了每次面试机会,每次面试都是提升自己的机会。基本都是白天面试,晚上回来学习,我发现这样效率很高。针对职位要求去准备相关知识,我记得找工作面试那一周我晚上都是熬夜到两三点才睡觉,终于功夫不负有心人,收到了两家公司的offer,一个是做测试的,一个是做java开发。考虑到以后的发展方向,我选了java开发。
在公司的前半年基本都是白天在公司跟着别人做项目,晚上回去自己再学习。说实话很辛苦,当时水平太低,大家也都很忙,遇到问题,不到万不得已也不会轻易问别人,基本都是自己查资料,自己摸索。这里说下,有时候有些技术难题如果自己一段时间还没解决,就厚点脸皮赶紧问同事,没啥不好意思的,技不如人不可怕,可怕的是你不敢面对,别人的指点能让你少走很多弯路。经过半年的努力,我渐渐从一个Java小白开始跟着做项目,自己也学着搭建框架了。工作虽辛苦,经常加班,但有几个一起进公司的同龄人,我们一起加班一起玩,渐渐成为了朋友,工资不高但还算过的开心。这样的日子过了快2年,渐渐地,我发现了问题,一是在这个公司里我能学到的东西已经不多了,技术氛围不够,提升空间有限;二是领导一直口头上说要给我们加薪,但一直往后拖,每次加班一段时间后,就带领大家下馆子,大吃一顿,喝一场酒,讲一场兄弟情。只怪当时我们太年轻,竟然每次都被领导的兄弟情感动,恨不得为他上刀山下火海。后来了解到,2个爱喝酒的,跟领导玩的好的老员工,私下领导都给了“好处”。而他们就是平时指挥我们干活的人,其实我们干的活比他们多的多。认清了这一点,我们几个人相继跳槽换了公司,临走时领导还极力挽留,说现在行情不好,不好找工作。谁能再信你的鬼话,尼玛不出来不知道,我们的薪资基本都翻了2-3倍。正在看这篇文章的童鞋,如果你的领导是这种总拿兄弟情洗脑的人,现在是市场经济,听哥一句话,找个机会赶紧撤吧。
到下一家公司,开始还是做Java开发,这个时候水平离大牛还很远,但基本也能在项目中担任重要角色,甚至在有些项目中挑大梁了。但渐渐的我又发现问题了,这次不是公司的问题,是我自己的问题。这时候做研发快3年了,在思考我的未来发展方向时,我迷茫了。往什么方向发展呢?那段时间我看了很多关于职业规划的书,很多书中基本都指向了2条路,一条是管理方向,一条是技术大牛、架构师方向。我对比了自己,问了自己几个问题,我喜欢写代码吗?我能在技术的道路上走的更深吗?
说实话当初考大学选专业的时候,想必大多数人一样,都不知道自己喜欢什么。当时选专业的时候,我就觉得计算机象征着科技、未来,就选了计算机专业。其实也不知道自己喜欢不喜欢这专业,将来会不会喜欢写代码。大学期间学渣不说了,参加工作写了几年代码后,我发现有时候我是喜欢写代码的,特别是在我用自己的思路实现一个牛逼功能的时候,那时候我甚至觉得自己能改变世界。但我发现这种获得内心满足感、自豪感的时候并不多,更多的时候可能是出于完成任务。同时我发现,周围很多人是这种情况,但也有少部分人,他们不仅喜欢写代码,而且擅长写代码。比如,同样的功能开发,擅长的人可能半天完成,而我也能完成,但需要1天甚至更长的时间。也许有人会说,这说明你不努力,你没有及时掌握牛逼的技术知识。咱不要抬杠,即便你努力,在做同一件事上,你必须承认,有些人是更有天赋的的,这叫擅长,而你最多叫喜欢。我特别喜欢打篮球,有时候甚至幻想能去打NBA,看NBA的都知道科比牛逼,除了我科每天看洛杉矶凌晨4点钟的太阳,你以为人家没有天赋吗,努力加天赋,人家这叫擅长,我就算全天24小时再努力打篮球,最多叫喜欢。
认清了喜欢和擅长的差距,我逐渐认清了自己,我最多算喜欢写代码,但我并不擅长写代码。成为技术大牛,也许擅长的人需要5年,我可能需要10年甚至更长时间。也许我加倍的努力,理论上有可能实现的,但有时候选择可能比努力更重要。也许别人5年后成了大牛,而我在成为大牛的路上已经熬成了秃瓢大爷。我认清自己后,决定了自己以后不会走技术大牛这条路线。当然这只是说我选择路线时候的考虑,不同的人情况不同,并不是说管理就好,技术就不好。就算我下定决心以后要走管理路线,但对于技术,在我成为项目经理之前我也还是不敢有丝毫懈怠,因为这是当时的安身立命之本啊。至于管理路线,当时也是一知半解,不知道自己具体管理路线怎么走。但是当时我心里就埋下了一颗种子,等待着它的发芽。
在明确自己以后要走管理路线的情况下,我也没有放弃技术的精进,我会留心观察一些之前我没有关注的事情,比如项目上的一些沟通、客户或产品经理提出的需求、项目范围控制、项目里程碑节点、项目阶段总结等等。这些之前我都认为是杂事,是没用的事。花时间在这些事上不如让我静心写几行代码,不用理会那么多乱七八糟的人和事。我想大多数程序员也是这么想的,但这些看似跟程序员关系不大的事情,后来我发现也是完成一个项目必不可少的,甚至有时候比写代码重要的多。
下面说2种情况,看你遇到过没。我刚写代码的时候,小组长布置了开发任务,我啥也不问,觉得理解就直接开始做了,结果快做完了,组长告诉我他想要的并不是这样,卧槽,辛苦写了半天的代码要重写。这是很典型的程序员遇到的一个问题,一方面是缺乏对功能需求的理解,只想着如何实现这个功能,殊不知跟实际的需求相差很远。另一方面缺乏与布置任务人的沟通。还有一种情况,有时候客户需求说的很清晰,我们理解的很清楚,沟通也不错,貌似我们做的都对,但却有一种现实让我们很痛苦,感觉功能越做越多,尼玛啥时候能做完啊,需求感觉没边没头的,为了工期我们还要苦逼加班加点。向着目标我们工作加班加点也能理解,但是像这种项目给你造成了很大的精神压力,完全没有了当初改变世界的兴奋。上面说的第一种情况,需要我们程序员写代码的时候多理解需求、多沟通,避险陷入孤岛的思维陷阱,但后面一种情况,看似与程序员写代码无关,但直接影响到了我们,这其实就是项目经理要解决的问题。
上面说的第2种情况,在项目管理中叫项目范围蔓延,属于项目范围管理中的问题。那么项目经理一般怎么处理这种问题呢,这就要说到项目范围管理中的定义项目范围,定义范围其实就是明确需求的过程,确定哪些需求在项目范围内,哪些将排查在项目范围外,从而定义出项目产品、服务或成果的边界。这个定义范围的过程中会有一个输出叫项目范围说明书,它的前身叫项目工作说明书(SOW)。这个文件一般是需要项目甲方、乙方确定的,大部分情况是很正式的书面文件,有双方的负责人签字的。在项目进行过程中需要项目经理根据这个及时把控项目范围,如果出现范围蔓延就要及时找客户相关方负责人沟通了,一般客户看到这个当初大家达成一致的文件就不会再逼逼新增需求了,当然也有例外的,这时候如有必要就问题升级了。现实项目中遇到的问题可不仅仅是这一种情况,还有很多,比如项目时间管理、成本管理、质量管理、沟通管理、风险管理等等,每一个展开都能写一篇文章,受限于篇幅,这里不一一展开讲了,以后有机会挑大家感兴趣的说说我的理解。
回到我的经历上来,在我不断精进自己技术的同时,我会很留心项目经理做的事,经常在完成自己的工作的前提下,去协助项目经理处理一些工作。有段时间公司项目很多,但项目经理人员有限,项目经理都是一个人同时带几个项目。我参与开发的项目,完成自己的开发任务之外,我基本都会尽最大努力去帮助项目经理做一些事,比如写一些项目文档,业务需求分析,跟客户沟通等等。面对不同的客户,沟通方式也不一样,这块我学到了不少。但也很累,好多时候半夜里还在帮着写文档,不要以为项目经理就很轻松。
相比开发,更多时候是专注自己的代码,完成功能就行。而项目经理从项目一开始到结束,都在各种操心。项目开始的时候要制定项目计划、定义项目范围,执行过程中要随时把握项目进度、评估各种风险,项目验收阶段要保证满足客户验收标准,期间还有各种会议、汇报工作等等。有时候我甚至觉得倒不如写代码痛快,但我觉得凡事都有个过程,不可能一开始就能处理好所有事情。渐渐的,我熟悉了一个项目的完整流程。有一次,我所在的项目中,项目经理家中有事不得不离开,整个项目需要一个能掌控进度的人,项目经理向领导推荐了我,我顶着压力接了,毕竟这是个机会,期间遇到我不能解决的问题,及时领导汇报,磕磕碰碰,最后项目总算是结了项。我平时的努力部门经理也都看在眼里,通过这次机会,我也证明了自己,不仅能写代码,我还能带项目。虽然短期内职位上没有变化,但后续的项目中我开始带项目了,我做的就是项目经理的工作,后来也确实得到了职位晋升。
有一点需要注意的是,项目经理大部分都是从技术做起,从项目做起,慢慢历练出来的,很多时候是被提拔出来的,不是说你刚刚毕业或突然想转项目经理就能做的了,这需要一个过程,需要你踏踏实实做好自己的工作的前提下,多去关注,多去学习。还有一些人如果对客户需求敏感、对产品设计感兴趣,也可以做产品经理,这也是管理路线的一个选择。
不知不觉,感觉写了好长,很感谢你能看到这里,后续我也会经常在这里分享自己的一些感悟。不论是做技术还是管理,希望大家都能找到适合自己的路。最后再说一点,不论你从事任何工作,都要培养下自己的写作能力,多记录,多总结,多分享,每次写作都是一次很棒的自我对话,这真的是未来很重要的一项个人技能。欢迎大家关注我的公众号「kevinsheng」,我会经常分享一些自己的职场经验、感悟等,期待与大家沟通交流,一起进步。