项目经理需了解的技术
题记:
前段时间,在微信项目管理沟通群,讨论项目经理是否需要掌握的研发技术,尤其是非研发转型的项目经理。为什么呢?因为软件项目管理,会经常给开发沟通,需要制定项目计划、项目工作量、项目技术细节解决、透过现象看本质,如果对技术不是太了解,会存在相对性的阻碍,项目开展效率会低一些。应小伙伴们的需求,对于非研发出身的项目经理,需要掌握的研发技术做简单的分享交流,这篇文章由此而写。
关于不懂技术带来项目低效的问题,举个简单的栗子:在项目开展中,工程师碰到技术细节需要攻克,因开发能力有限,告诉你说解决不了。这个时候就需要懂技术的人,帮忙一起分析,讨论技术逻辑,形成解决问题的新思路,继续开发不能卡在这里。如果是技术性项目经理,在不忙的情况下,可以拉一个凳子跟开发坐在一起,一起分析解决;而非技术性项目经理,则需要向领导或技术经理申请协调资源,找能力强的工程师辅助解决,申请资源和沟通成本就会形成项目的低效。为什么呢?因为每个人都很忙,每个人都有自己的事情,会被排到不同的项目处理不同的事项,借调资源是相对麻烦的事情。他山之玉,《项目经理需不需要懂技术》。
一、为什么转型项目经理
在解决上述问题之前,我们先来讨论下大家转型项目经理的初衷和方式。其实,问每一位项目经理,为啥带项目呢?每个人都有自己的答案,每个人的出发点也会不一致;问职业发展怎么做到项目经理的呢?会发现通向目标的道路有很多,有的坎坷曲折、有的相对顺利,每个人的职业规划和发展也是不一致的。就转型项目经理的初衷和方式两个方面,做如下分析和整理,仅供大家学习参考。
1.转型初衷
(1).职业规划的提升,职业规划一直沿着项目路线进阶;
(2).职业规划的转型,现有职业遇到瓶颈,需要新空间;
(3).兴趣发展的驱动,兴趣使然,性格匹配高,挑战新领域;
(4).薪资提高的诱惑,职业上升空间更大,薪资高,虚荣心使然;
(5).被逼上岗的无奈,公司事务繁杂,原项目经理离职,项目时间紧迫;
(6).内部转岗的机会,技术能力强,公司业务复杂学习成本高,公司内部提拔。
2.转型方式
(1).规划提升,项目专员->项目助理->项目经理;
职业发展,一直沿着项目管理岗位规划,具备一定能力和资历,进行对应岗位的晋升;
(2).规划转型,研发->项目经理;
高级研发,深入学习框架,沉闷研究,技术瓶颈明显;对项目管理岗感兴趣,项目管理知识储备到位;
(3).规划转型,实施->项目经理;
高级实施,对售后客户各种问题的处理到位,沟通能力、实施管控能力相对较足,项目管理知识储备到位;
(4).规划转型,售前->项目经理;
高级售前,对产品的市场和前瞻性的资讯敏感、捕捉能力强,与市场沟通紧密,计划性强、做方案能力强;
(5).被迫上岗,研发、实施、售前->项目经理;
由于公司发展的需求,原项目经理离职,业务的复杂,学习成本高,外聘成本高,项目紧急度高,内部提拔,定岗上岗。
二、转型项目经理所需的软硬实力
尽快每个人转型的初衷不一样,总会有或多或少共同的想法;尽快每个人转型的方式有差异,条条大路通罗马,总会有适合自己的那条路。无论是走在转型路上或已经转型成功的项目经理,需要具备胜任项目经理的硬实力和软实力,不断的修炼提升,让项目开展更顺利、更容易成功。就转型项目经理的硬实力、软实力和加分项三个方面,做如下分析和整理,仅供大家学习参考。
1.硬实力
(1).对主流项目管理体系了解、熟悉、灵活运用,如:PMP、Scrum、ACP等;
(2).对主流项目管理工具了解、熟悉、灵活运用,如:JIRA、禅道、Redmine等;
(3).对主流软件研发流程了解、熟悉、灵活运用,如:瀑布、敏捷、精益、规模化敏捷等;
(4).对项目管理最佳工程实践了解、熟悉、灵活运用,如:站立会、回顾会、共识和确认等;
(5).具备项目管理思维,繁杂事务中的全局观,既可以站在全局把握方向,又可以深入细节解决问题;
(6).具备项目管理能力,曾负责项目全生命周期交付,如:计划管理、风险管理、整合资源、沟通管理等;
(7).具备项目集管理能力,曾负责多项目的并行交付,进行跨团队、跨部门、跨公司的沟通协调,推动共赢。
2.软实力
(1).沟通能力,每个项目的形态不一样,每个项目的干系人性格有差异,需要确保项目信息流通顺畅,形成共识性的沟通机制;
(2).统筹能力,对项目全局进行统筹性的把握,处乱不惊的掌控力,对问题的抽丝剥茧,透过现象看本质,把握主要问题和次要问题;
(3).领导能力,可以很好的聆听他人、激励他人、引导他人,接受他人不足,取得他人的信任,在团队迷惘的时候,引领前进的方向;
(4).共赢能力,可以与不同团队、不同公司、不同立场的人,达成共识性的认知和方案,进行适当让步和强势的调整,促成共赢的达成;
(5).冲突处理能力,可以很好的处理团队内部的冲突、跨团队的冲突,将冲突转化为合作的能力,促进大家后续更加密切的合作;
(6).协调推动能力,可以积极主动协调各个团队的资源,促进彼此合作,成为龙卷风的漩涡,卡在哪里就去解除,推动项目高效开展;
(7).学习总结能力,可以根据项目形态、项目问题、团队成熟度等项目因素,不断地反思总结,提升研发效率,精进业务,为项目成功提供保障;
(8).打不死的小强,在沟通、统筹、协调、领导、共赢、推动等方面,都在挑战你的承受力、忍耐力、攻坚能力,需要有小强打不死的精神,即使碰到阻力也要推动项目前进,没有任何一个项目是顺顺利利的,要有顽强的精神,向前多走几步,再多解决几个问题,项目就会明朗好多。
3.加分项
(1).系统项目管理的学习和认证考试,如:PMP、ACP、CSM等;
(2).对软件技术和主流框架了解、熟悉、灵活运用;
(3).较强的逻辑推理能力,缜密和考虑周全的思维;
(4).较强的繁杂中共识约束建设,团队自运转推动;
(5).较强的学习能力,对业务和概念进行快速熟悉;
(6).较强的文案、宣讲和打鸡血能力。
三、转型项目经理所需了解的相关技术
聊了些项目经理硬实力、软实力、加分项的能力要求,就大家关心的项目经理需了解的技术,做几点整理和分享。从下面三个方面介绍,了解技术的目的、程度、范围,其中技术范围涉及比较广,时代在变化层出不穷的技术不断涌现和淘汰。对于非研发出身的项目经理,需要了解通用数据库可视化工具的使用、通用设计技术概念的理解、前后台数据交互的逻辑、常用基础算法。通用数据库可视化工具的安装和使用,可以跟开发同学要下,熟悉常规增、删、改、查操作(不是写数据库脚本奥,是操作可视化工具进行数据处理)。不建议项目经理去学习具体某项技术的开发,因为最需要、最应该做好的事情就是项目管理,当然,感兴趣是可以研究下的嘛。记住,不要跟研发争论技术实现的细节,相信他在技术领域是最棒的,若担心技术风险对项目开展造成不可预期的影响,可组织相关的技术评审,一起讨论使用什么技术方案解决。
1.了解技术目的
(1).更好的支撑项目工作量评估、项目计划和迭代的制定;
(2).更好的支撑项目开发中工程师技术问题的分析和解决;
(3).更好的支撑项目技术风险评估和相关措施的应对;
(4).更好的支撑项目技术细节的讨论分析,形成共识方案;
(5).更好的汇报项目进度细节、卡顿节点,风险和影响等。
2.了解技术程度
每个公司的组织架构不一样,团队各个岗位的人员配备不一样,对项目经理的技术能力需求也就会不一样。需要项目经理,结合团队的人员配备,进行适当程度的技术参与和辅助。当然,如果是研发出身的项目经理,基本的技术沟通和问题解决应该有很大帮助;如果非研发出身的项目经理,可以优先根据团队对技术的要求,紧急的补课,做技术的概要理解;如果时间相对比较充分,可以系统化的了解技术的概要内容。
项目经理,最主要的工作、应该做好的工作,就是项目管理。常规项目团队成员,涉及产品同学、设计同学、开发同学、测试同学、运维同学,他们在各自的领域有所擅长。比较好的团队、高效的团队是每个职能岗位的同学都是能力很强的,基本不需要你去帮忙处理专业内部的事情。基于每个团队的能力或组成不一样,会存在相对性的能力偏差,这种情况需要项目经理去辅助、协调处理的事情就比较多。项目经理首先要把本职工作做好,在时间充足的情况下,或一些紧急节点要处理的情况下,团队向你提出支持的诉求,要积极快速响应,尽快解决处理好。
项目经理在项目管理中不能抓小丢大,过多跟产品讨论原型,跟设计讨论风格,跟技术讨论实现,跟测试讨论用例,跟运维讨论部署等,不可太深入细节管理,而忽略项目的全生命周期管理。很多计划性事项、风险性事项、协调沟通事项,不能被前置处理,到了交付节点,就像热锅上的蚂蚁或救火队长,做紧急处理,搞的团队和你很疲惫。如果相关计划安排、资源申请、协调事项,提前开展,或许到交付节点,大家会轻松好多。
项目经理的时间会成为项目的时间, 项目经理忙成狗,团队很轻松;团队忙成狗,项目经理很轻松,是不可取的。项目是一个平衡,一个度的把握,项目经理动起来,团队也要动起来;项目经理既要安排自己的事情,也要安排团队的事情,大家都动起来,才能更好协调合作、更快高效搞定项目。
对于非研发出身的项目经理,在研发技术方面只需要做相应的熟悉和了解,可以跟研发团队进行技术沟通,懂得、理解他们表达的意思,以达到提高项目效率的目的。
3.了解相关技术
(1).通用技术介绍
通用系统技术:C、C++等;
通用存储技术:文本文件、XML、Access、Excel、SQLite、MySQL、MS SQL、NoSQL、Oracle等;
通用后台技术:Delphi、JSP、ASP、VB.NET、ASP.NET、Java、.Net、PHP、Python、Ruby、Go等;
通用前端技术:MFC、WinForm、WPF、Silverlight、HTML、DIV、CSS、Vbscript、JavaScript、Ajax、H5、IOS、Android等;
通用JS框架:JQuery、ExtJS、Node.Js、Angular.Js等;
通用Java框架:Hibernate、Struts2、Struts、MyBatis、Spring、Spring MVC、Springboot等;
通过.NET框架:Nhibernate、StructureMap、Spring.net、LINQ、Entity Framework、.NET MVC、WCF等;
通用Web服务:XML、Jason、IIS、Apache、Nginx、Kangle、WebSphere、WebLogic、Tomcat、Jboss等;
通用设计技术:设计模式、面向过程、面向对象、面向服务、集群管理、微服务、大数据、分布式、高并发、高可用、高扩展、高维护、高可读等;
通用他人之玉:《常用.NET框架汇总》《常用Java框架汇总》《常用JS框架汇总》《常用IOS框架汇总》《常用Android框架汇总》《常用Web服务器汇总》《常用算法汇总》
(2).需了解的技术概念
《C/S和B/S结构区别整理》
《Web请求响应简单整理》
《JavaScript特点、优缺点及常用框架》
《AJAX工作原理及其优缺点》
《w3cschool在线教程》
《常用Web服务器汇总》
《面向过程编程介绍》
《面向对象编程介绍》
《编程思想:面向对象和面向过程》
《面向服务编程介绍》
《分布式和集群管理介绍》
《微服务架构介绍》
《数据库可视化工具的安装和使用》