程序员如何修炼项目管理能力?

摘要: 项目管理能力修炼的6个阶段。前端

Fundebug经受权转载,版权归原做者全部。git

我门在“程序员加薪升职之成长金字塔”中介绍了职场成长金字塔:程序员

大部分开发者工做三五年后,都能掌握所在岗位必须的知识、经验和技能,然而不少人接下来就陷入困境,左冲右突,没法加薪升职,一直停在第1层,三年五年过去了,八年十年过去了,可能都还停在1层的位置。后端

对开发者来说,第1层对应的就是具体的软件开发角色,卡在这层没法晋升,是指没办法成为技术管理角色。这其中最重要的缘由是:大部分开发者只注重专业技能的修炼,忽视了人际沟通、项目管理等技能框架

而实际上,技术管理岗位,须要软件开发的专业知识体系,也须要项目管理、部门运营、人际沟通、产品知识、自我提高、公司知识、行业知识等等,这个岗位,须要的是一个知识树:运维

在这棵知识树中,有1个知识体系,特别重要,那就是——项目管理。若是一个开发者不具有项目管理知识体系和实操能力,就很难带好软件项目,很难走向技术管理岗位,很难作好技术管理工做。svn

因此,今天咱们来聊聊项目管理能力修炼的6个阶段工具

  • 学习项目管理知识体系
  • 以生活中的项目做为练习
  • 观察软件项目,推演项目管理的过程
  • 主动打杂,熟悉某些项目管理过程
  • 独立带小项目
  • 带大项目

1. 学习项目管理知识体系

不少事情都是有章法、框架的,项目管理也是如此。比较知名的项目管理体系就是PMP认证所定义的体系了。建议想走技术管理路线的小伙伴,都学习一下PMBOK,考一个PMP认证。学习

在PMBOK中,把项目管理分为10个过程:测试

  • 整合管理
  • 范围管理
  • 进度管理
  • 成本管理
  • 质量管理
  • 风险管理
  • 采购管理
  • 人力资源管理
  • 沟通管理
  • 干系人管理

前 7 个过程,是对事务的管理,后 3 个过程,是对人的管理。并且,后 3 个过程每每会在很大程度上影响前面的 7 个过程。因此,人际沟通能力,协做管理能力,都是技术管理岗位必须具有的能力。

咱们掌握一项技能的最开始,就是找到这个领域的知识体系和框架去学习。了解了基本框架,再去实践,以实践来印证所学知识体系,相互促进,这样,知识才能内化为能力。

2. 以生活中的项目做为练习

其实项目管理并非软件开发过程当中特有的东西,它是通用的技能,能够在变通应用于任何类型的项目,好比电视生产、汽车制造、年会,各类均可以用。因此在一开始咱们仍是普通开发者,无缘管理项目时,能够经过生活中的项目来练习。

好比国庆长假的旅游,就是一个很好的练手项目,由于它牵涉到多我的、成本、线路规划、住宿、交通、饮食等等,比较复杂,几乎包含了项目管理的10个过程。

再好比同窗聚会、读书分享会、组团登山等等,都是很好的练手项目。

咱们在生活类项目中练就的能力,好比规划、进度管理、成本控制,均可以直接拿到软件项目中使用。

3. 观察软件项目,推演项目管理的过程

咱们还不是项目经理、技术经理的时候,能够观察别人是怎么作的,把本身放在管理角色上,来推演本身会怎么作,这样也是一种有效的练习。

一个简单有效的练习方法,是给本身定一个目标:天天挑出一个项目管理相关的问题来琢磨解决之道。

  • 好比代码管理工具使用 svn 而不使用 git 会有什么问题;
  • 好比每日站会上有些程序员天天都说“昨天改 Bug ,还没查出缘由,今天接着改 Bug ”到底有无心义;
  • 好比开发由于技术实现缘由而选择忽略 App 的视频启动动画,需求不一样意,该怎样和她沟通;
  • 好比前端开发者元小二常常性地把 Bug 直接分配给后端开发袁大头,两人为此不断口角,怎么解决;
  • 好比有几位程序员,提交代码时不写任何日志;
  • 好比阿三提交代码十次有八次不作集成构建测试;
  • 好比老板老是越过项目经理直接指挥团队的开发者新增需求;
  • ……

带着问题去学习,是最有效的方式。

4. 主动打杂,熟悉某些项目管理过程

生活中练习,工做中代入角色,平常推演,这些方法可让咱们熟悉项目管理的知识、技能和过程,但有效的办法,仍是直接作目标领域的项目管理工做。

有人说我不是项目经理啊,怎么作项目管理?

别急,你虽然不是项目经理,但你身在项目之中,承担了某个角色嘛,那天然有些工做是和你相关的。另外,更关键的是:你要跳出工做内容和岗位职责的范围,放眼全局来思考。

站出来,你才有机会。老想等着领导看见你给你机会,那是不可能有机会的。

因此,你要用心观察,发现机会,主动去作。

好比拔高本身,站在全局视角思考整个项目,从立项、需求、开发、测试、交付、运维、项目生产工具,分析哪一个环节作得很差,哪一个环节改善以后效果能够被看见,主动去作这些事情,主动成为衔接不一样环节、不一样人员、不一样部门的桥梁;

好比观察项目经理、研发经理,看他们有哪些项目管理相关的事情是不肯意作的,好比组织会议、跟踪计划、分派任务、推进多干系人协做等,主动找他们表达你能够分担这部分工做的意愿,得到打杂的机会。

有心就能够发现不少能够发挥的机会——由于大多数开发者都嫌麻烦不想把事情揽在本身身上哦。

5. 独立带小项目

若是咱们在第四个阶段作出一些亮点,好比会议组织的很好、项目计划跟踪的很到位,那团队有新的项目时,经理可能就会安排你来管理。到这个时候,你就能够系统地进行项目管理了。

本身独立带小项目时,要注意下面这些点:

  • 充分了解项目背景、需求、目标、交付要求、时间要求、干系人等。
  • 充分了解研发团队成员的状况,谁是什么性格、行为风格,擅长什么技术,有哪些项目经验。这点尤为重要,由于大多数软件项目的管理,都不是全过程的,而是集中在软件开发生命周期(产品定义、需求分析、开发、测试等),这个阶段,研发团队成员很是关键。
  • 充分了解团队曾经使用过的开发过程和工具,好比迭代、精益、SCRUM、看板、Redmine、JIRA等,选择你们熟悉的。
  • 不要在项目管理过程当中全面引入新方法、新过程、新工具,尽可能在现有基础上来作渐进式改革。
  • 创建有效的反馈渠道(会议、周报、特定的信任你的项目成员等),能适时了解项目管理的效果。不少人一开始带项目,只管推方法、推工具,不知道实际的效果如何,每每是把经念歪了还不知道。

6. 带大项目

经历了第五阶段若干个小项目的实践,咱们对软件项目管理应该有了丰富的知识积累和实践经验,能够挑战比较大的项目了。

5我的2个月能够完成的小项目,与100我的2年才能完成的中大型项目,不是一个概念,对项目管理能力的要求,很是不一样。具体怎么不一样,我没作过太大的项目,并不知道啊……

呃,因此,这个阶段,我没什么好说的……若是你有经验,文后留言来聊聊呀。

总结

此次我简单介绍了项目管理能力修炼的6个阶段,提供一个按部就班的参考。实际上,软件项目的管理,有它本身的特点,与建筑、生产、娱乐等,大不相同,因此,要作好软件项目管理,除了PMBOK构建的体系,还须要了解软件工程特有的知识体系,这方面,建议看看下面几本书:

  • 《人月神话》
  • 《软件工程》
  • 《软件工程:实践者的研究方法》
  • 《项目百态:深刻理解软件项目行为模式》

好啦,此次就到这里,下次来聊如何成为技术管理者。

做者信息: 安晓辉,《程序员的成长课》做者,公众号“程序视界”主理人。

相关文章
相关标签/搜索