大部分人工作三五年后,都能掌握所在岗位必须的知识、经验和技能。然而很多人却会一直停在这个程度,被困在原地,左冲右突,无法加薪升职。
这种现象的背后原因,是不理解个人职场晋升的逻辑,不能制定有效的发展策略。因此,今天我们来学习一个模型——职场成长金字塔,看看该按怎样的规律来提升能力实现跃迁。
职场成长金字塔
从这张图上可以看到,个人在职场上的成长与修炼,分为 6 个层级。
第1层是个人专业能力,我们大部分人刚进入企业时,都在修炼这个层次的能力,比如编程、做PPT、用Excel、报税等等。一般工作3年左右,在专业能力上获得的积累,就足够胜任底层执行工作。成长快的小伙伴,可能 1-2 年就可以完成这个阶段的修炼。
第2层是人际沟通能力的修炼,要刻意在人际沟通方面发力,提升自己的人际敏感度,能够洞察他人的想法、情绪、感受,更好的理解他人,尤其是上司,这样才能更好的与他人协作,成为既有专业能力又有人际协作效能的员工。在这个层级修炼时,还要有意识的提升自己的高度,从项目全局看问题,拥有项目管理能力,能够拆分任务、分派任务,为后面向初级经理晋升做准备。完成这一层,往往是工作 5 年左右的事情。跑得快的小伙伴,3-4 年也能走完。
第3层是组建团队能力。要求我们具备管理、计划、组织、协调、目标管理、激励、反馈、辅导、招聘、评估绩效等等能力,以便带领他人完成团队目标。处在这个层级的职场人士,可以迅速组建新团队或接管已有团队,能够很好的带团队、带项目,具备因人而异解释工作目标的能力,能用团队目标统合团队成员共同实现目标。完成这层的修炼,工作经验在 6-8 年左右,跑得快的,4-5 年。
第4层是跨职能协作能力,修炼到这层,应当具备多线程工作的能力,可以带领几个初级经理,统管多个团队和项目,同时,也能够跨职能沟通,比如能够很好的协调行政、人事、市场、研发、销售、产品等各个团队一起工作。完成这层的修炼,一般人需要 8-10 年左右的时间。也就是说,工作 10 年左右,发展得好,你就可能会成为一家企业的中层经理。
第5层是组织发展能力,修炼到这层的人,了解企业的各个职能是如何工作的,能够为公司的扩张做支撑,哪个部门该加人,哪个部门该减人,要不要建立分支机构,都应该心中有数。此时的头衔,往往是部门总监。走到这一层,需要 9-12 年的时间。
第6层是战略眼光,此时个人的身份往往已经是CEO了,为公司的未来发展负责,判断未来趋势,规划战略方向,组织效能提升,人才战略,产品战略,都是需要关心的问题。
技术管理知识树
对开发者来讲,第1层对应的就是具体的软件开发角色,卡在这层无法晋升,是指没办法成为技术管理角色。这其中最重要的原因是:大部分开发者只注重专业技能的修炼,忽视了人际沟通、项目管理等技能。
而实际上,技术管理岗位,需要软件开发的专业知识体系,也需要项目管理、部门运营、人际沟通、产品知识、自我提升、公司知识、行业知识等等,这个岗位,需要的是一个知识树:
在这棵知识树中,有1个知识体系,特别重要,那就是——项目管理。如果一个开发者不具备项目管理知识体系和实操能力,就很难带好软件项目,很难走向技术管理岗位,很难做好技术管理工作。
所以,今天我们来聊聊项目管理能力修炼的6个阶段:
1、学习项目管理知识体系
2、以生活中的项目作为练习
3、观察软件项目,推演项目管理的过程
4、主动打杂,熟悉某些项目管理过程
5、独立带小项目
6、带大项目
学习项目管理知识体系
很多事情都是有章法、框架的,项目管理也是如此。比较知名的项目管理体系就是PMP认证所定义的体系了。建议想走技术管理路线的小伙伴,都学习一下PMBOK,考一个PMP认证。
在PMBOKv6中,把项目管理分为10个过程:
1、整合管理
2、范围管理
3、进度管理
4、成本管理
5、质量管理
6、风险管理
7、采购管理
8、人力资源管理
9、沟通管理
10、干系人管理
前7个过程,是对事务的管理,后3个过程,是对人的管理。而且,后3个过程往往会在很大程度上影响前面的7个过程。所以,人际沟通能力,协作管理能力,都是技术管理岗位必须具备的能力。
我们掌握一项技能的最开始,就是找到这个领域的知识体系和框架去学习。了解了基本框架,再去实践,以实践来印证所学知识体系,相互促进。这样,知识才能内化为能力。
以生活中的项目作为练习
其实项目管理并不是软件开发过程中特有的东西,它是通用的技能,可以在变通应用于任何类型的项目,比如电视生产、汽车制造、年会,各种都可以用。所以在一开始我们还是普通开发者,无缘管理项目时,可以通过生活中的项目来练习。
比如国庆长假的旅游,就是一个很好的练手项目,因为它牵涉到多个人、成本、线路规划、住宿、交通、饮食等等,比较复杂,几乎包含了项目管理的10个过程。再比如同学聚会、读书分享会、组团爬山等等,都是很好的练手项目。
我们在生活类项目中练就的能力,比如规划、进度管理、成本控制,都可以直接拿到软件项目中使用。
观察软件项目,推演项目管理过程
我们还不是项目经理、技术经理的时候,可以观察别人是怎么做的,把自己放在管理角色上,来推演自己会怎么做,这样也是一种有效的练习。
一个简单有效的练习方法,是给自己定一个目标:每天挑出一个项目管理相关的问题来琢磨解决之道。
比如代码管理工具使用 svn 而不使用 git 会有什么问题;
比如每日站会上有些程序员每天都说“昨天改 Bug ,还没查出原因,今天接着改 Bug ”到底有无意义;
比如开发因为技术实现原因而选择忽略 App 的视频启动动画,需求不同意,该怎样和她沟通;
比如前端开发者元小二经常性地把 Bug 直接分配给后端开发袁大头,两人为此不断口角,怎么解决;
比如有几位程序员,提交代码时不写任何日志;
比如阿三提交代码十次有八次不做集成构建测试;
比如老板总是越过项目经理直接指挥团队的开发者新增需求;
……
带着问题去学习,是最有效的方式。
主动打杂,熟悉项目管理过程
生活中练习,工作中代入角色,日常推演,这些方法可以让我们熟悉项目管理的知识、技能和过程,但有效的办法,还是直接做目标领域的项目管理工作。
有人说我不是项目经理啊,怎么做项目管理?别急,你虽然不是项目经理,但你身在项目之中,承担了某个角色嘛,那自然有些工作是和你相关的。另外,更关键的是:你要跳出工作内容和岗位职责的范围,放眼全局来思考。站出来,你才有机会。老想等着领导看见你给你机会,那是不可能有机会的。
所以,你要用心观察,发现机会,主动去做。比如拔高自己,站在全局视角思考整个项目,从立项、需求、开发、测试、交付、运维、项目生产工具,分析哪个环节做得不好,哪个环节改善之后效果可以被看见,主动去做这些事情,主动成为衔接不同环节、不同人员、不同部门的桥梁;
比如观察项目经理、研发经理,看他们有哪些项目管理相关的事情是不愿意做的,比如组织会议、跟踪计划、分派任务、推动多干系人协作等,主动找他们表达你可以分担这部分工作的意愿,获得打杂的机会。
有心就可以发现很多可以发挥的机会——因为大多数开发者都嫌麻烦不想把事情揽在自己身上哦。
独立带小项目
如果我们在第四个阶段做出一些亮点,比如会议组织的很好、项目计划跟踪的很到位,那团队有新的项目时,经理可能就会安排你来管理。到这个时候,你就可以系统地进行项目管理了。
自己独立带小项目时,要注意下面这些点:
充分了解项目背景、需求、目标、交付要求、时间要求、干系人等。
充分了解研发团队成员的情况,谁是什么性格、行为风格,擅长什么技术,有哪些项目经验。这点尤其重要,因为大多数软件项目的管理,都不是全过程的,而是集中在软件开发生命周期(产品定义、需求分析、开发、测试等),这个阶段,研发团队成员非常关键。
充分了解团队曾经使用过的开发过程和工具,比如迭代、精益、SCRUM、看板、Redmine、JIRA等,选择大家熟悉的。
不要在项目管理过程中全面引入新方法、新过程、新工具,尽量在现有基础上来做渐进式改革。
建立有效的反馈渠道(会议、周报、特定的信任你的项目成员等),能适时了解项目管理的效果。很多人一开始带项目,只管推方法、推工具,不知道实际的效果如何,往往是把经念歪了还不知道。
带大项目
经历了第五阶段若干个小项目的实践,我们对软件项目管理应该有了丰富的知识积累和实践经验,可以挑战比较大的项目了。
5个人2个月可以完成的小项目,与100个人2年才能完成的中大型项目,不是一个概念,对项目管理能力的要求,非常不同。
回顾&预告
今天,我简单的介绍了关于项目管理能力修炼的6个阶段,给大家提供了一个循序渐进的参考。实际上,软件项目的管理,有它自己的特色,与建筑、生产、娱乐等,大不相同,所以,要做好软件项目管理,除了PMBOK构建的体系,还需要了解软件工程特有的知识体系,这方面,建议看看下面几本书:
《人月神话》
《软件工程》
《软件工程:实践者的研究方法》
《项目百态:深入理解软件项目行为模式》
《软技能——代码之外的生存指南》
文章来源 | 程序视界
作者 | 安晓辉,毕业于西安交通大学,有10余年的IT和互联网从业经验,曾为创业公司技术合伙人,现为软件开发技术专家和职业规划师。