校园到职场的转换



杨骥认为学校与公司的主要区别在于,学校是以作业和项目为主。作业有很明确的标准和要求。项目也是有时间限制的。而工作后则不同,所做的事情是持续发展和不断积累的,所以每做的一件小事都可能为日后的质变添砖加瓦。 Engineer做的事情本质上是在搭建新的事物(build stuff and make things happen)。所以一个好的Engineer要能够推动事物的搭建和改进,从0到1、从头到尾,并要确保搭建的事物能够按照预期来工作。


对于刚刚入职的Engineer的小伙伴们,杨骥有几点分享送给大家:


首先,作为Engineer最重要的还是纯粹的生产力(Raw Productivity),要能解决他人不能解决的问题,并且不断的对自己提出更高的要求(acting on the next level)。这是最坚实的基础。


其次,沟通(Communication)很重要,要用于交流自己的想法。在工作中不仅仅是对着电脑,更多时候是要跟人打交道的。不能把单打独斗当做工作的常态。杨骥给大家的建议是,不要觉得英文一定要非常好才可以开口,发音语法是不是特别正确、讲话是否流利这些其实并没有大家想象中那么重要。让别人能够明白你要表达的意思才是最关键的。在美国的企业文化中,应该在适当的时候表达自己的观点和见解,这样才可以对产品和project的发展起到应有的作用。


第三点,就是要主动(Proactive),这一点其实与Communication相辅相成。首先得敢说,其次是说什么。有些新入职的小伙伴倾向于听指挥,老板给什么活就干什么活。 当杨骥刚入职FB时,他会在组会前做功课,换位思考“如果我是会议主持,我希望看到什么样的讨论,哪几点可以作为讨论方向”等。这样,他在开会的时候就可以积极主动的参与到讨论中去,而不是被动的接受讨论结果。 Proactive 还体现在,在完成老板交代的任务之外,杨骥会主动学习自己感兴趣的行业和领域的相关知识。在积累到一定阶段后,他会跟老板提出自己想解决的一个问题,得到首肯后会去落实、实践自己的想法。他认为,如果你不主动提出,那么别人就不知道你有这种想法,自然谈不上争取到实践想法的机会了。


最后一点,管理预期(Manage expectation)。杨骥说,很多小伙伴在入职很久以后,都没有认识到预期管理的重要性。预期是你与其他人(同事、老板、其他组的组员)之间重要的纽带。预期和自己的目标不同,应该是双方共同承认的标准。管理好预期可以减少很多无效沟通。管理预期最关键的,是要两边都on the same page,过高或过低都不好。



架构师与管理者的路线选择



杨骥觉得事情分两种,紧急的事情和重要的事情(urgent vs important)。修一个特别严重的bug,这个是紧急的事情。在做Engineer的时候,许多技术上的积累是在处理紧急事件时体现的,这是基石。 另外一方面,在投入日常工作之余,要偶尔跳出来思考一下,自己想做什么方向的产品,职业目标是什么,业界的发展趋势如何,这个是很重要的事情。 如果每天只是忙于紧急的事情,可能辛苦忙碌了一年,做得事情却缺乏方向性。如果在紧张的工作之余,能够沉下心来思考一些重要的问题,那么就可以专注得做的更加深入。


在技术过硬,方向清晰后,可以开始考虑将来想走工程师发展的哪个职业方向 – 管理方向(Manager),还是技术方向(Tech Lead/ Architect)。 首先,这两个方向是辩证统一的。无论是Tech Lead还是Manager,两者的目标都是帮助团队作为一个整体而成功,只不过二者解决的是不同的问题:Tech lead的主要工作是设计整个程序系统,决策正确的技术路线;Manager 的工作重点是团队的发展和人才的管理。 团队的问题主要涉及团队的发展方向、产品策略的路线图(product road map),以及整个团队作为一个整体的scope是什么、应该怎样拓展和成长,如何增加团队的影响力等。 人才的管理就是团队成员管理。


杨骥认为好的Manager要了解自己团队成员的特点,能够调动每一个队友的积极性,信任自己的队友,支持他们、给队友们实现自己的想法的机会,让每个人在团队中都有所成长。除此之外,Manager还要创建起团队能够相互信任的环境。在开放、信任的环境下,大家才可以畅所欲言,这样的沟通最有效率,团队的效率才能最大化。


杨骥最后用球队做比喻来概括了他对这两个方向的理解:Tech Lead是一个球队中的队长(captain),自己下场带着打;而Manager更像是教练(coach),甚至是球队经理人的角色 - 不亲自下场,但是制定计划、指导比赛。 管理还是架构方向? 杨骥本人做选择的时候也纠结了很久。最后选择了管理之路是因为,他认为带领一个团队,能够创造、搭建的是一个产品甚至一个更大的领域。他很喜欢带领团队创造的产品可以被更多的人看到、使用到,能够对更多的用户产生影响,这样可以收获更大的成就感。 另外在职业发展初期,能尝试更多的职位、了解不一样的预期,也是非常有必要的。成为Manager是要帮助团队成长,实现整个团队的成功。管理路线可以让你了解到很多纯技术职位接触不到的东西,譬如怎么去pitch,怎么去做资源的整合配置,怎么平衡人与人之间的关系,怎么发掘和培养好的人才。 在Tech Lead跟Manager之间,杨骥觉得自己可能还是更喜欢后者。但是要保持对代码和技术的灵敏嗅觉必须通过实战。为了不让自己手生,杨骥到现在还是坚持与组内同事一起debug,讨论技术问题。



美国职场的Manager之路



杨骥谦逊的表示,能够转型成为Manager是个机遇。但是总结起来,还是有一些经验可以分享给大家。


从入职的第二年开始,杨骥每天花在辅导新组员的精力占到日常工作的很大比例。他认为这件事情很有价值,因为自己程序写的很好与帮助整个小组成长、实现小组的成功相比,后者的影响显然更大,也可以帮助到更多的人。于是,在杨骥已经做了很长时间Mentor的基础上,加上老板的支持和信任,老板为杨骥提供了更多能发挥管理才能的空间,将更多的管理细节放手交给他来做。当杨骥的Title转到Manager时,他事实上负责小组管理已有时日了。


杨骥表示,刚转为Manager时每天的工作上都有各式各样的纠结,但是随着时间的推移,困惑越来越少。最简单的例子就是,到底要在多大程度上亲力亲为? 杨骥本人其实是很享受编程的,那么作为Manager到底要写多少代码?相比较于自己花时间来implement程序,到底要花多少时间来辅导他人呢? 杨骥在分析和总结经验后认为,自己独自负责,在短期内固然有效率,但长期很难持续。从长期发展的角度来说,花更多的时间培养组员,承担风险给组员更高的自由度,是值得的。好的管理者最重要的能力就是能招募比自己水平更高的队友,确保团队作为一个整体有更好的可持续发展性,并且能够在不断变化的环境下保持好的成绩。



学习,学习,再学习



杨骥主要通过以下几个渠道学习、积累自己的管理学心得。


1. 阅读(reading)。杨骥重点推荐 Leaders Eat Last 这本书。 与组员相比,Leader应该是承担更多的风险和责任的人,而非一个下命令的人。Leader需要协调个人利益和集体利益的冲突,所以他要了解组里每一个人的强项和短处,然后激发、发挥组里每个人的特长。


2. 导师(mentor)。除了书本,杨骥也通过跟前辈学习来摸索自己的管理风格。比如,杨骥很感谢自己在FB的老板对自己的信任,给自己机会和发挥的自由度。己所不欲勿施于人,自己喜欢什么样的老板,也希望自己能够成为这样的Manager。


3. 竞技(eSports)。杨骥是魔兽、星际迷,而且玩得很不错,大学时是学校战队队长,曾经一度考虑去做职业选手。游戏与现实生活其实是有很多相同性的,都是一场关于资源的博弈。在虚拟和现实的设置中,有限的资源决定了一切。这就需要你有强大的资源整合能力和配置能力。再有,在很多情况下两者都需要快速的决策和部署,在有限的信息的下获得最优解,同时要考虑到大局和未来的发展情况。



未来5年,路在何方