从开发人员到管理者的转变
技术工程师的晋升之路
技术工程师的晋升之路大体上可以分为两个方向,一是在技术方向上作为 Individual Contributor(IC)继续深造,二是以管理者的身份管理工程师团队。IC 这条路比较单纯,能走多远主要取决于个人的技术实力与经验。与 IC 相比,转型为管理者可以说是一种颠覆性的变化。管理者的工作不再是以个人或项目的成功作为主要目标,而是专注于整个团队的成功。这种目标的变化将直接改变管理者的心态与工作方式,以及与他人的互动方式。可以说,向管理者的转型是一个具有更大挑战性的选择。
David Haney 来自于 Stack Overflow 团队,他是开源软件 dache 的作者,也曾在 InfoQ 上发表文章。今年二月,Haney 被提升为工程经理。在担任经理的几个月中,他感受到了许多完全不同的挑战。在近期的一篇博文中,Haney 详细地记录了这段时间以来所领悟的管理方法心得。
信任第一
Haney 认为:要成为一个成功的管理者,首要条件就是取得团队成员的信任。因为没有谁愿意为一个他所不信任的人工作,这一点往往是员工离职的首要因素,其重要性显而易见。但信任不是凭空得来的,你必须表现出你是一个值得依赖的管理者。在这一点上 Haney 有一定的优势,因为他已经在作为团队成员的一年时间内凭着良好的表现博得了大家的信赖。如果没有共同工作的经历,那么就需要更大的耐心去逐步建立你的信任度。
为了取得团队的信任,Haney 特别列举了以下几个要点,这是作为一名优秀的管理者最重要的品质:
- 与员工之间的对话是一种隐私,不要在人背后嚼舌根。
- 保持一种开放的姿态,让员工感到可以无所顾忌地与你谈论任何话题。
- 一言九鼎,说到的就要做到。
- 不要承诺一些你办不到的事,较好的说法是:“我尽力而为,但无法保证一定能做到。”
- 绝对不要撒谎!员工不仅会失去对你的信任,而且一见到你就会远远躲开。
- 不要逃避困难,即使有些事情确实令你感到不舒服,但逃避只会令问题失控。
- 不要对员工宣泄你的情绪,也不要在背后指指点点。如果确实需要宣泄一下压力,也应当寻找一种合适的渠道,而不是冲着你的员工发火。
- 公开表扬,私下批评。不要在整个团队面前让人感到难堪。
- 保持客观与公正,不要在团队中搞特殊化待遇。
人类无法像代码一样伸缩自如
作为开发者,Haney 能够写出具有高度可伸缩性的代码。但一名管理者却无法像代码一样做到伸缩自如。正如你很难在 20 个与会者之间达成一致一样,要有效地管理好 20 个员工也是一件难以完成的任务。Haney 认为,向管理者直接汇报的员工数量最好在 4 至 10 人之间。一旦超出了这个数量,你就无法对每个人都给予足够的关注,这会让员工感到被忽视,乃至怀疑自己在团队中的重要性。同时过多的人反而会降低工作效率,因此最好是启用另一名管理者来分担你的工作。
将处理人际关系作为工作重心
对于开发者来说,人际关系往往会对工作产生干扰,而成为一名管理者之后,这一点就成为了你的工作重心。在 Haney 看来,人际关系不仅限于你的团队,还包括与其它团队打交道,这同样也应当具有较高的优先级。同时应当尽量表现出一定的灵活性,以配合其它团队的时间安排。
另一项重要的工作是与员工定期进行一对一的谈话,让员工借此机会表达他们的想法、意见、困难,并且通过员工的反馈改进管理者的工作。Haney 每隔三周就会与每位员工进行一次 45 分钟的谈话,在他看来,这对他的工作产生了很大的帮助。
要注意的是,如果无故地推迟或取消原定的谈话,会令员工感到遭受轻视。因此要尽可能避免这种情况的出现,它会使员工的士气受到很大的影响。
接受令人不安的谈话
在 Haney 看来,当你还是一位开发者的时候,你可能会时常与其他人抱怨一些令你感到不爽的人或者公司政策,这很正常。而作为经理,你的工作就是帮助他们直接处理好这些问题。你应当鼓励员工之间开诚布公地对话,而不是与同事在私底下嘀咕。同时,优秀的管理者也应当为员工树立一个良好的榜样。
如果有某位员工直接找到你投诉某人,你应当做的是让双方坐到一起,让他们坦诚地表达他们的感受。然后居中调解,以解决他们的问题。这种对话开始时往往会令人感到尴尬与不安,但你必须接受它,并让它成为团队文化的一部分。Haney 认为,经过数次这种对话之后,员工就应当能够做到在无需他参与的情况下自行开展这种对话。重要的是确保问题最终能够得以解决,而不是随着时间的推移而变得越来越严重。
衡量你的成功并不容易
开发者有一个很大的优势,他们的工作都是为了解决某个特定的问题,其范围总是确定的,并且其成果总是能够很快地显现出来。与之相比,管理者的工作似乎没有那么具体,因为这些工作的影响往往是无形的,例如员工的想法、感受、软技能以及他们的总体成长。并且这些工作没有一个具体的开始与结束时间,因为学习与进步是永无止境的。
Haney 认为,管理者的任务总是与帮助员工成长有关,而这些工作的成就感通常来自于他人的反馈。比如有员工对于你的建议与反馈表示感谢,或是有人告诉你他看到团队产生了积极的变化,以及来自于团队外部的称赞等等。这些反馈能够有效地表现出你的工作是否达到预期,但管理者需要保持足够的耐心。
没有人了解你的实际工作
开发者的工作是非常透明的,其他人可以很清楚地了解你的工作内容和完成的任务,代码库里的签入记录也会清晰地反映出你的工作。与之相对的是,管理者总是在做一些幕后的工作,这很容易给别人造成一种印象:这家伙根本什么事都不干!而 Haney 认为,这种误解是因为他与员工的谈话往往是私下进行的,他坚持通过一对一的形式与员工谈论沟通技巧以及人际关系上的问题。由于这种交流的私密性,使其他人无法了解管理者的工作情况,因此产生了管理者不干活的误解。
在 Haney 看来,只有通过团队成员的各方面不断提高,才能够表现出管理者的工作价值。这是一个缓慢的过程,但当团队发现团队之间的人员互动正朝着积极的方面转变时,他们就会体会到管理者的辛勤工作。随着员工的成长与进步,团队将变得愈加强大与高效,员工们也会承认你为团队所做出的贡献。
你的成功就是他人的成功
在这篇博文的最后,Haney 简单地总结了他的观点。管理工作最重要的是取得信任,通过直接的对话解决问题(虽然这种对话有时会令人不安),在幕后完成你的工作,同时保证工作方式的直接与公正性。管理工作具有很高的挑战性,同时也能够带来极大的回报。
最后,Haney 引用了动画“飞出个未来”中的一名名言,它非常贴切地表现出了管理者的工作特性。
“如果某件事你做的足够出色,那么人们甚至不会感觉到它。”