在项目组待的时间久了,渐渐地跟微软的项目经理Michael熟悉起来了,跟他有过很多次深入的聊天,向他请教过很多关于人生,理想,技术上的问题,不得不说,项目经理是我神往的角色。虽然我没有亲身经历过,但是我认为做项目经理很有意思,把一个想法变成项目,服务于业务,这是我期望的工作。 佛者说:“一花一世界,一叶一菩提”,不得不说,修行是一个技术活,面对同一个世界,眼界的不同,能够看到的事物也是不同的;同样一句话,阅历不同,理解也会不同。那我就说说我眼中的项目经理,与常人不同的是,他们总是更进一步,想的更多,做的更多。
在每天的Daily Scrum会议上,Michael照例追踪分配给每个人的Task的完成情况,并分配新的Task。这种一成不变的例行汇报,听的多了,就有点习以为常了,左耳朵进,右耳朵出,当然,起码得“留一点痕迹”,至少得知道自己新的Task。在项目不是很复杂的时候,即使做不同样的事情,也大概知道彼此做事的内容。可是有一次,在同事小林汇报工作时,即使我集中十二分的注意力,也听不懂小林说话的内容,但是,Michael却能瞬间找到关键点,那一刻,我才知道什么叫“默契”,我能感受到小林的开心,因为有人很懂她。我请教过这个问题,Michael说:“这是由于‘信息不对称’导致的,因为我负责整个项目的进度和业务,跟所有的开发工程师(Developer)都有交集,交流比较多,知道他们在做什么,能听懂他们说的话,这很正常,不用诧异。”我觉得信息不对称,固然是一个重要的原因,但是,不是最主要的。我曾经在汇报工作时,对于数据库中出现的一个问题,提出了一个解决方案,由于这个想法是临时想出来的,我在描述解决方案时,没有组织好语言,说的磕磕绊绊,我认为我没有说清除,但是,Michael却出乎我意料之外的理解了,并把我的不成熟的想法完善了,当时,我意识到,有人懂我,是多么的开心,也理解了同事小林当时喜悦的心情。这是信息不对称,善于沟通所不能解释的,我认为,熟悉业务,善于思考,对项目经理来说,才是最重要的特质。
还有一件事,由于同事小陈离职了,我开始接手PowerBI报表,在跟业务分析小组的同事共事时,我发现他们身上有一个显著的个性,就是:站在老板的立场上思考问题,组织语言和汇报工作。在我第一次无意识地向老板直接汇报工作时,我犯了很多技术出身的开发人员经常忽视的错误,那就是不自觉地在报告中掺杂了太多的开发术语,没有意识到,我面对的客户是一位不懂技术,但深谙业务的老板。沈姐是业务分析小组实际上的Leader,她跟我说:“你不能那样向老板回邮件,老板不懂技术,只懂业务,你要翻译成他们能够理解的内容,他们才知道,你已经把问题解决了,不然,他们又会发邮件问你。”有了沈姐的开导,我开始意识到,在工作上,必须具有换位思考的意识:站在老板的角度上来看待问题,但意识到,不代表你就能做到,这是一个技术活。当老板再次发送邮件,提出新的业务需求时,我又犯错了,这次的错误,是由于信息不对称导致的,也跟我缺少历练有关。老板在邮件中,说到:“请提供报表数据,用于分析组织者(Organizer)每个月在活动中的贡献(Contribution)。”由于在业务逻辑中,组织者(Organizer)是管理者角色的一种,除了Organizer,还有Co-Organizer,Event-Organizer,Assistant-Organizer等管理者角色,我提供的报表数据仅仅是Organizer角色每个月的贡献。Michael在Review代码时,认真对我说:“Vic,老板不知道我们具体的角色分类,老板想知道的,其实是所有组织者在每个月的贡献,要站在老板的角度上,处理问题。给老板的报表,每一个数据上的细节都必须做到有理有据,即使数据对不上,不align,也必须要有合理的解释。”这次教训非常深刻,我意识到,老板是特殊的存在,必须理解老板的意思,同时,也必须把自己的意思传达给老板,这中间需要由一个词汇的转换,怎样做到?站在老板的角度上,思考问题,处理问题,刚开始做的不好,不要紧,必须要有这个意识(Sense)和觉悟。
项目经理是整个项目组的大脑,这样说一点也不为过,至少在我们项目组是这样的,其他成员具备的是执行力,也就是按时完成任务的能力。这里抛出一个问题:给你一个团队,你要如何带?在两年多的时间里,Michael带领我们团队做过很多新的项目,而每个新的项目都不是凭空想出来的。之所以这么说,是因为,我也曾经有过相同的想法,但是,我没有意识到这个想法的价值,在脑海中思考过之后,没有把想法“变现”的意识,导致轻易把想法抛弃;一旦Michael提出类似的新项目之后,我发觉:“我曾经也有过这个想法,只不过,我没有继续深入下去,没有更进一步去丰富这个想法 ……”反省不能解决问题,或许,这才是项目经理应该具备的优秀性格:不是想不到,而是善于发现想法的价值。Michael把抽象的想法,变成文档上的设想,经过丰富之后,变成有价值的具体项目,这就是创建价值,简化业务的过程。Michael说:“我想实现的新项目,实际上就是为了优化业务流程,做到化繁为简,而为了实现这个目的,必须化简为繁。比如,为了便于发现更多有影响力的人物(Influencer),必须整合所有的数据资源,从各个数据源中分析数据,这是我们的主要业务需求,为了简化这个流程,可以把这套业务流程扩大化,自动化,做一个更为复杂的引擎来替代手工,一旦这个繁的引擎做出来,业务流程就会变的非常简单。”抓住主要业务搞优化,实现项目的增值和技术的迭代,这其实也是他的一种管理思想,极简工作:先解决主要矛盾,再解决次要矛盾,根据业务需求,调整优先级。
项目经理很忙的,实际上,我观察到Michael的工作,1/3是在开会。不仅跟开发者开会,而且跟老板开会。我们的老板是外国人,Michael的英语相当不错,上海人,软实力杠杠滴,从小到达接受的教育,是我们这些屌丝所不能想象的。跟老板开会的内容,大致是谈论业务需求,演示新的项目,Michael说:“老板是非常聪明的,非常熟悉业务,对于新的项目,老板只要看到demo,自然会想到如何使用,不需要过多的文字说明”,好吧,高级别的老板,我也没有接触过,能坐到那个位置上,肯定有过人之处。跟开发者开会,Michael主要是演示项目,把控项目的进度和分配任务。Michael在任务的管控上,没有绝对的收和放,而是:前期放任,定时检查,最后是测试和验收。不过,他的管理风格还是比较自由的,他说:“我分配一个任务交给你们来做,你们想怎么做,就怎么做,只要实现业务需求就行。我的任务不是告诉你们如何去做,而是,告诉你们怎么做最简单,哪些是当前的业务上能够满足的,哪些是当前不需要做的。”
项目经理很忙的,但是,Michael能够记忆很多非常细节的业务逻辑,不得不佩服他得记忆力,是不是项目经理的记忆力都很好?Michael说:“首先,这些关键的业务逻辑是我设置的,我当然记得比较牢,其次,我能记住的,实际上是关键的业务逻辑,经常遇到,那些特殊的设置,我也是需要阅读代码才知道。”我觉得,跟普通的开发工程师不同,项目经理更擅长处理业务上的问题。身价一万和身价十万的差距,没有想象中那么大,通过努力,日积月累,我也能做项目经理。阿Q一下,梦想还是要有的,万一实现了。
关于加薪,这是一个非常具有挑战性的问题,除非你在项目组中是不可替代的,否则,你就只能拿着offer,或者跳槽来提升身价,但是,那些项目经理是如何从普通的开发工程师,一步步被提拔上去的呢?运营经理范老板给出一份答案:创造额外的价值,注意,是额外的价值,而不仅仅是本职工作。在公司的动员大会上,有一句很流行的话:要想成为项目经理,必须先干项目经理的活。当然这些话都出自高层之口,尽管,事实上,大多数Leader都是空降的,仍然会有人心灵淹死在鸡汤中。很多开发工程师,包括我,天真地认为,只要做好本职工作,提升技术实力,就能获得公司的认可和嘉奖,获得升职和加薪的机会,就像运营经理说的那样,“这是技术人员的一条路线,稳定而平缓,但是,如果想快速提升,走一条陡峭的上升路线,必须创造额外的价值,当你为公司创造额外价值的时候,公司也会给你提供更好的发展空间。”其实,道理都是相通的,打铁还需自身硬,公司不会给你机会试炼,而会给你空间发挥,前提是你必须比身边的人优秀,才有能力抓住机会。
这一个个小故事,都是真实的,给我很多启发,在人生的道路上,能够聆听到成功者的教诲,是最难能可贵的,谢谢!