PMP明确表示,项目经理的最佳人选需要是一个全才,仅仅技术出身的专业人员是不能满足项目经理的岗位要求的。可见“全”这个特点,对于项目经理来说有多重要。
并不是说专业人员不适合做项目经理,相反好的项目经理往往都有很深厚的专业背景。那么“全”和“专”,要怎样理解呢?
首先“全”要真的全,其次“专”要不限于专。
如果一个人在情商、智商、沟通、理解力、管理技能、业务领域等各方面看起来都很完美,但是唯独不懂IT,相信会有一些人认为他仍然是全面的,但从IT项目经理的标准看,这并不够全面。多数IT从业者对于全面型人才的定义有两个误区:
(1)不管一个人掌握多少本领,他只要会写代码,那就一定是专业人才而不是全才。
(2)一个人只要他不会写代码,其他方面就一定比会写代码的人好一些,应该会更全面。
这是如今IT职场里普遍的潜意识或共识,这是一种刻板印象。当然能造成这种刻板印象的,肯定是无数个验证正确的先例和数据。
我们先不考虑大众对开发人员的刻板印象问题,先来关注“全才”的定义。在IT行业中,“全”还是“专”,判断标准的关键点主要集中在是否有编程能力这一点上。笔者认为,“全”要真的全,不能假全,哪怕只有一项能力的缺失,也并不能算作全才,尤其是IT行业,IT基础知识的欠缺对项目经理来说是极不利的。大家都知道高情商的程序员并不多见,这正说明了全才的稀缺性,往往最佳的IT项目经理人选就是指这样的人,而这样的人才一直就是稀缺的。
所以我们要搞清楚,不论IT技能还是沟通表达、情商、同理心等能力,一样不少地都具备才是真正的全面,这样的全面才难能可贵。除了IT什么都会的人,也许也是难得的人才,但对于IT项目经理的标准来说,还不够全面。IT项目经理的全面指的是包括IT技能在内的所有方面的全面,缺了任何一方面都不能称为全面,所以“全才”才会稀缺。
那么专业人员可以做项目经理吗?其实专业人员是项目经理人选的一个很好的出发点,但专业人员不能仅满足于“专”。想成为一名合格的IT项目经理,要在专业的基础上拓展其他方面的能力,基于“专”而达到“全”。在职场中,对于除了IT技能以外其他各方面能力都很强的人来说,也许其很优秀,但对于IT项目经理这个岗位,严格来说不能算全才。对于软件开发出身的专业人士来说,在专业光环背后,是否具备其他方面提升的潜力或具备其他方面的软技能,共同决定了其能否成为一名合格的IT项目经理,仅仅有一个技术专长也是不够的。
“专”和“全”说开了,大家就能明白IT项目经理的优势人选的一个大概的轮廓,还有真正的全才的定义及其稀缺性。也许有人会疑惑,为什么IT行业中具有先天优势的开发人员多数难以成为优秀的项目经理呢?开发工程师这类专业人才,在专业技能的基础上补充好技术以外的软技能,远比没有开发背景但其他方面很全面的人通过后天努力弥补技术背景要容易得多,毕竟IT技术背景不是短期内可以弥补的。究其原因,大众对国内开发人员的刻板印象其实不无道理,国内很多开发人员在编程以外的其他方面普遍有很明显的短板,且短时间内也难以改善。
从大环境来说,国内的多数软件开发从业者,从事的是应用或业务层面的软件开发,在全球整个软件开发产业链中是相对下游的位置。举例来说,微软公司推出的Visual Studio开发工具,在国内曾风靡一时,在过去的二十年里被国内工程师使用开发出了各种各样的应用软件服务于各行各业;IBM公司推出的Eclipse开发工具,同样在国内近乎形成了垄断,国内的工程师用它开发了无数个应用软件和各种各样的网站。但国内始终难以诞生像微软和IBM这样量级的上游软件企业,也难以开发出像Visual Studio和Eclipse这样重量级的开发工具,以及它们背后的技术体系和编程框架,这是产业的差距,我们在使用机器造车的时候,国外的技术人员已经在制造“造车的机器”。类似的例子还有IDEA、Nginx、Tomcat等全球著名的中间件软件,均很难见到中国作者和公司。国内的软件开发人员更多时候是使用它们,而很少能创造它们。在IT行业里,一些产业链上游的掌握底层技术的软件工程师不建高楼大厦,他们只做一砖一瓦,可这些砖瓦是建高楼大厦的应用层的工程师们造不好的。我们的产业现状决定了从事软件开发的人员更需要的是能快速应变的业务层的开发技能,而非更全面的计算机基础科学。所以国内的开发工程师需要用有限的精力在工作中学习业务,在不停适应业务变化的同时也要跟随底层技术的更新,甚至会没有精力抬头微笑,这与软件产业链上游的国外工程师是完全不一样的处境。
在小环境方面,国内的开发工程师人群又有能力高低不等之分。笔者所认识的一些名校毕业理论扎实的工程师朋友,多数健谈且情商超高,更有相当大一部分人具备很强的双语和演讲能力,很难想象他们坐在电脑前目光呆滞敲代码的画面,但事实是他们的代码敲得更好,编程的智商和做人的情商都很高,沟通更好,笑容更多,但这一类人在国内工程师人群中是极少的存在。所以国内的开发工程师并不是都存在沟通问题,只是能力全面的高端的工程师数量稀少而已。
综上两个层面的原因,导致了国内软件工程师普遍给人一种不善沟通、固执呆板的印象,而这种刻板印象也间接限制了一部分技术人员向管理岗位转型的努力。所以从国内IT行业的现实环境来说,项目经理的最佳人选仍然是广大的软件技术工作者,但庞大的技术人群中能够成功转型成为项目经理的却是少之又少。这很合理,充分证明了全才的宝贵和稀缺性。
沟通能力好并不是话痨的意思。PMP对项目沟通管理的要求是明确沟通的目标、方法、约束和管理沟通渠道,即时刻清楚需要跟谁沟通,为了什么目的,何时以及怎样沟通。
作为项目经理非常重要的软技能,沟通工作主要服务于以下三方面:
(1)收集信息
识别风险
明确需求
(2)分享信息
表达困难申请支持
汇报进展
(3)团队建设
在项目初期与各方干系人的沟通可以帮助项目经理尽早明确项目的边界,以及识别潜在的项目风险;在项目执行阶段定期地收集项目信息向各方汇报,及时地向领导层抛出需要协同处理的问题;项目全过程中与团队成员日常互动,保障项目状态的更新和信息流的畅通。
逻辑性和条理性是分析问题的基础能力。
在需求梳理和项目计划有关的编制工作中,以及项目过程中应对变更、明确责任、控制交付质量、对成员进行绩效考核等动作都需要理性且有条理的分析。实事求是,脉络清晰,是理性客观地管理项目的重要能力。利益链、责任链、因果关系、依赖关系,这些能影响项目的复杂因素都需要条理清晰的逻辑思维能力来掌控。
在面对团队成员或外部干系人时,项目经理的亲和力决定了沟通的顺畅程度和沟通的深度。一些亲和力好的项目经理,在山重水复疑无路时,往往通过充满善意的沟通和接触,会有柳暗花明又一村的奇效。尤其在面对沟通和表达能力不是很好的技术人员时,项目经理的情商、亲和力可以帮助团队所有成员进行有效沟通,这是一种后天难以锻炼的人际关系能力。
作为项目经理,要对所有经过自己的信息流保持绝对的敏感,有利于项目的、不利于项目的、间接有利的、间接不利的、各方干系人不同的态度以及项目各方面状态的变化,都应第一时间想到它的后果和应对办法。钝感的项目经理在工作中容易被动,被事情推着走,而凡事敏感可以让项目经理主动地应对风险。但敏感的同时要切忌玻璃心。
对软件项目来说,需求的质量决定了项目工作的方向。调研需求是项目经理在项目早期的主要工作,在与客户梳理确认需求的过程中,需要项目经理频繁地换位思考,站到客户的角度来全面地解析需求,挖掘客户潜在的其他需求。当与客户发生异议和冲突时,项目经理的换位思考能力和同理心,可以帮助大家重新站到起点,保障整体利益而不被分歧所影响。同理心也是情商的一种体现,在调研需求和应对冲突时,以及在项目验收等关键环节,都可以让项目经理快速地换位思考识别到核心问题。
同时在面对内部资源时,从专业技术的角度或劳动力资源的角度看待一些项目问题,往往比管理者的角度看到的更多更全面。当内部各方利益冲突时,也需要项目经理能灵活快速地切换到不同的角色来分析所面临的问题。
所以项目经理需要换位思考的能力和同理心来使自己快速地在不同的干系人中间进行角色切换,从而降低沟通成本,紧密团结各方资源来快速解决问题。
管理并不仅仅靠命令和服从,并不是有权力就可以管好项目。离开了方法和技巧,仅靠人格魅力或行政权力的管理是极难成功的。
项目经理在具备了上述人这方面的一些软素质以外,也需要学习管理知识、方法论和手段。用理论和方法来处理个人可能未曾面对的问题,会大大降低项目管理的风险且提高管理效率。
有大量的管理学文章可以提供不同场景下的管理技巧,本书讨论的范畴是项目管理中的IT行业中的软件项目管理,PMP是这一领域的基础,要做好一名IT项目经理,PMP认证是基础中的基础。
在我们讨论IT项目经理的合适人选的时候提到,虽然软件开发背景并不是项目经理的必需要素,但开发背景不等同于IT知识背景。作为IT项目经理,的确不需要开发背景,但开发以外的更全面的IT基础知识是必要的。
比如,当你需要协调多个软件系统间的接口规范,你需要了解WebService和RESTful的异同;当你在领导一个音视频通信的软件项目时,应该清楚RTMP(Real Time Messaging Protocol,实时消息传输协议)和Protocol Buffers(用于对结构化数据进行序列化的协议)等协议分别有哪些优劣。这些知识点都不需要编程能力,但是却都需要项目经理去了解,这些都是IT知识的一部分,项目经理需要在这些方面达到或超越你的开发团队的认知水平,才能建立起与他们的信任关系。
所以IT项目经理是否会开发不重要,但掌握IT基础知识很重要。
对于职场中没有开发背景的项目经理来说,如果开发团队不认可你的领导力,请反思一下,你欠缺的是否仅仅是编程能力?大概率并不是,也许是因为在编程以外更宽泛的IT基础知识领域,或者在对所开发的软件的理解上,你们难以达到同一水平的认识。
软件行业从诞生之初,除了软件基础设施建设,比如操作系统和服务器软件,之外的应用软件大多是服务于传统行业。在服务的过程中,软件开发工程师在软件开发技能以外,或多或少地都要接触一些行业知识。比如安保监控系统、银行柜台交易系统、医疗HIS系统等,都需要开发工程师分别深入安全、金融和医疗领域去了解各自行业的特点和政策。这有点像前几年总理提出的“互联网+”的概念。其实在互联网行业进入快车道之前,软件行业一直在以“软件+”的形式服务于传统行业。如今银行、汽车、电力、水利、通信、医疗等行业都已经进行了很多年的信息化建设,近些年称之为数字化转型,在此过程中有无数的软件项目需要立项、交付,有大量的IT项目经理用人缺口。试想一下,在这样一个大背景下,当项目经理带领软件开发团队服务于一家银行时,除了软件开发能力以外,如果对银行的政策制度和业务流程知之甚少,即便软件开发能力再强,项目恐怕也寸步难行。所以行业知识对于如今的IT项目经理来说,不再是加分项,而是必需项。