注:没有特别声明,文中的“我”都指原作者 Camille Fournier

抉择:留在技术路线还是成为经理(管理路线)

成为经理还是留在技术路线是一个艰难的决定。这完全取决于你所处的环境,我不可能告诉你该怎么做。然而,作为一个憧憬并经历过这两条路线的人,我可以透露下我所幻想的、以及真实所见的。需要注意的是,这些只是为了表述方便进行的脸谱化描述,现实不完全相同。

高级技术路线的想象生活

你的每一天都在深度思考中度过,与其他高级开发人员一起,解决那些有趣、新颖的智力难题。这是软件开发,所以你知道会有一些繁琐的小事。你有很大的权力来选择你的工作,进而可以选择最有趣的部分。你喜欢编写代码、修复bug、让代码运行得更快、让计算机做新的事情,并且你可以把大部分时间花在这上面。

由于你的资历,经理会在开发开始之前询问你关于开发的建议。你知道正在发生的一切,但又不需要处理人事问题。你被邀请参加正确的会议,在那里做出重要的决定,而且没有影响到你的正常工作。大部分初级开发人员会尊重你、并相信你的每一句话,接受你的反馈,且没有过多地占用你的思考时间。

你的上升轨迹永远不会放缓,你总是可以解决新的、大的问题来向组织展示你的价值。你工作很努力,很少被要求加班或周末工作。当你工作到很晚时,那是因为你专注于工作,迫不及待想完成手头的功能或修复刚刚发现的错误。

你可以写书、发表演讲并发布开源作品——如果有一些运气和坚持,你会赢得一些行业名声。在你表达时,没有人关心你有点尴尬或害羞,也没人期望你改变自己的沟通方式。你说的话很重要。你所在组织中的每个人都知道你是谁,了解你工作的价值,并尊重你的意见。

简而言之,你在投入的工作、名望和积累的专业知识之间取得了完美的平衡,这使你成为无价的、受人尊敬的、高薪和有影响力的技术大牛。

高级技术路线的真实生活

当你处于正确的项目,以及项目的正确生命周期阶段时,你的生活就很棒。虽然面临挑战,但可以学习新事物。你对日常工作有很大的控制权,而且会议的次数肯定比管理同行要少,但你的日子并不总是在幸福的状态中度过。

每个项目都有一个阶段,你需要将想法推销给其他人,试图说服他们这是正确的方法。可能你已经实现了这个系统,但现在你需要让其他团队开始使用它。你花上好几天时间,向他们展示来龙去脉,解释它为什么有用,试图说服他们、游说他们的经理采用它。

你的上升轨迹并不像你希望的那样快速和容易。事实上,它非常缓慢。那些证明你是一位无价开发者的大项目很难找到。团队不需要新的编程语言、新的数据库或新的 Web 框架。你的经理不擅长给你布置向整个组织展示你才能的重要任务;他希望你告诉他这些机会在哪里。

发现好的项目似乎是运气问题。选择糟糕的项目,尽管你尽了最大努力,但仍会花费数月甚至数年的时间来完成一些可能会被取消的项目。你有点嫉妒你的管理朋友,他们在不断壮大团队的同时,似乎升职迅速。

与其他开发者的关系也是不好不坏。你是个不错的人,所以他们中的一些人钦佩你并听取你的意见,但其他人似乎嫉妒你的影响力。初级开发人员要么想占用你大片时间,要么出于某种原因害怕你。“谁来领导大型的、有趣的项目?”在这个问题上,同辈之间存在竞争。

你的经理也是麻烦的来源。他并不支持你开源系统的愿望,即使你认为这提供了行业需要的新思路,将为行业带来转折和变革。他建议如果你想发表演讲或写书,应该花费个人时间。他会寻求你对技术问题的反馈,但有时会忘记告诉你计划有变,直到你已花费大量心思。

你怀疑你错过了重要信息,因为你没有出席该参加的会议。但每次他邀请你参加这些会议时,你都会想起他们是多么无聊和低效,以及你有多少宝贵的专注时间被浪费。他对你希望摆脱繁琐工作的期望(如回复电子邮件、面试或及时回复代码审查)并不上心。

尽管如此,你大部分时间都可以构建软件。你可以将时间花在技术问题、系统设计和工程问题上,而不必与人打交道或坐在无聊的会议上。你通常可以选择你的项目,如果你想尝试些新的东西,可以较为容易地更换团队。你刚刚发现你的薪水比你的经理高!所以,生活并不全是坏事。

管理路线的想象生活

你有一个团队,你有控制权,你有决定权,你可以让别人按照你的方式做事。你的团队尊重你,并乐于在所有事务上服从于你的权威。你认为他们应该写更多的测试吗?你告诉他们,“写更多的测试”,他们就做到了!你想确保每个人都得到公平对待,无论他们的性别、种族。为了确保实现这个目标,你解雇任何有越界行为,或为团队其他成员创造不健康环境的人。

因为你的出发点是好的,成员知道即使他们不认同你,你做的事情也是为了他们好。他们为你解答疑惑,在你一团糟或希望收到反馈时,以公开的方式为你提供反馈。与人打交道压力重重。他们知道你关心他们,所以这项工作的回报也不少。你处于教练的位置,且很快会看到教练技巧发挥了作用。

当你看到另一位经理做错了事时,你可以自由地向他提出建议,就像与另一位需要系统设计帮助的工程师交谈一样。其他经理总是很乐意听你的想法。他们看到你让团队工作的效率提升,你关心组织健康的关心程度,也关心让每个人都变得更好的因素。

你的经理给了你很多指导,但很少介入告诉你该怎么做。当你准备好接收一个更大的团队时,你的经理愿意给你更多的人并扩大你的团队。他给你的目标很明确,很少改变。即使你有很多责任,你仍然有一些时间写博客文章和演讲。这是值得鼓励的,因为它会帮助你的团队招聘并提高你在科技行业的地位。

简而言之,你可以做出关键决定,你创造文化,你的效率对你周围的人都是有目共睹的。你的晋升之路更快,你的职业生涯令人兴奋和有利可图。

管理路线的真实生活

你有一个团队。你有一定的控制权,但你很快发现让人们做某事比口头说说难多了。你似乎已经放弃了对自己日常生活的所有控制。大多数情况下,你整日都在开会。

当你只有一个小团队时,你能够平衡时间且仍编写代码,但随着团队的发展,你已经几乎不写代码了。你知道该写代码,但你没有时间。专注于编写大型系统代码似乎已经成为记忆。

你可以做出决定——一些决定。实际上,你也许可以缩小将要决定的事情的范围。你可以让你的团队专注于一些事情,比如编写更好的测试,但他们仍然有一个产品路线图要实施。他们对应该优先做哪些任务有自己的想法。你不仅仅是自己做决定,还需要引导团队的决策方向。

你的经理给你目标,但有时会突然改变这些目标,你需要向团队解释这些变化。你为团队设定了文化榜样,这有好有坏。当他们学到了你好的方面是值得开心的,但团队有时也会放大你的缺点。你的团队自然不会只是同意、尊重和喜欢你。权威不仅仅靠一个头衔赋予。

当项目进展不顺利时,你会发现自己得想尽办法激励他们。他们中的一些人不开心的时候是不会告诉你的,直到他们厌倦并且准备离职。

当公司发展顺利,你会收到很多金钱回报,有很多令人兴奋的项目可以开展,生活很棒。但当事情有压力的时候,你就会发现让人们开心的力量是多么的微不足道。

尽管如此,你仍然可以看到你的工作对他们中的一些人很重要。因为你的指导,他们更快乐、更成功。这些小小的确幸支持你度过艰难时期。

其他经理对你的反馈不感兴趣。事实上,当他们认为你在侵占他们的地盘时,他们会抵触你。

上级经理不同意你扩大的团队,并且无法真正解释原因;他的领导技巧还有很多不足之处。也许他只是担心你会超过他?他绝对不希望你把所有时间都花在演讲上。当你离开办公室太多时,他会生气,无论团队可能从中获得什么价值。

在不损害同事或老板的情况下弄清楚如何领导比你预期的要棘手。但是,如果你能组建一个更大的团队,你知道你会得到晋升,所以至少你的道路是清晰的。当你发现为你工作的高级工程师比你赚得多时,你会心里不平衡。你想弄清楚如何快速组建更大的团队。

我最后的建议是:如果需要,你可以切换路线。人们在某个时候尝试管理,意识到不喜欢,然后回到技术路线是很常见的。每个角色都有优点和缺点,你可以自行感受自己最喜欢什么。

好经理、坏经理的区别:流程崇拜

流程崇拜者信奉:一个真正的流程如果正确实施并按设计遵循,将解决团队的所有问题。流程崇拜者可能会沉迷于敏捷、看板、Scrum、精益甚至瀑布方法。他们对 on-call 应该如何工作、如何进行代码审查、发布过程必须如何运作有非常明确的想法。他们往往非常有条理,对细节很满意,他们善于理解规则并准确地遵守它们。

流程崇拜者通常出现在测试、中台或项目管理小组中。他们在咨询机构和其他衡量过程来评判回报的地方也很常见。他们可以成为项目管理团队中非常有价值的成员,因为他们倾向于确保任务不被遗忘,并且一切都按照应有的方式进行。

当流程崇拜者没有意识到大多数人并不像他们那样擅长遵循流程时,他们会陷入矛盾。他们倾向于将所有问题都归咎于未能遵循流程,而不是承认灵活的必要性以及意外的必然性。他们通常专注于易于衡量的事物,例如在办公室工作的时间,而忽略了那些无法衡量的事物。

相信“合适的工具能解决一切问题”的工程师在成为技术主管时可能会变成流程崇拜者。他们寻找合适的工具来解决时间管理和优先级排序等所有问题。他们试图在寻找到好的流程前停止所有工作,或者不断在团队中推出新工具和流程。

与流程崇拜者相对的,不是完全放弃流程的管理者,而是理解流程必须满足团队和工作需要的人。具有讽刺意味的是,虽然“敏捷”通常以僵化的方式实施,但敏捷的原则是对健康的流程领导的一个很好的总结:

• 独立和互动胜过流程和工具 • 工作软件优于复杂文档 • 客户协作而非合同谈判 • 响应变化而非遵循计划

作为一名新的技术主管,要小心依靠流程来解决由于团队沟通或领导力差距而导致的问题。有时流程的改变是有帮助的,但它很少是灵丹妙药,没有两个伟大的团队在流程、工具或工作风格上看起来完全相同。

我的另一条建议是寻找自我调节过程。如果你发现自己扮演着任务主管的角色,与其批评那些违反规则或不遵守流程的人,倒不如看看流程本身是否可以改变得更容易遵循。扮演规则警察是在浪费你的时间。

作为流程崇拜者的经理,你需要帮助他更轻松地应对模棱两可。与许多经理所踩的坑一样,对流程的痴迷可能与对失败的恐惧和控制事物以防止意外发生的愿望有关。

如果你诚实并明确表示失败和不完美是安全的,那通常就足以让你的流程崇拜者放松一点并容忍模棱两可。防止流程崇拜者花大量时间寻找完美的工具或流程,尤其重要的是要确保他们不会因为未能遵循流程而惩罚他们的团队。

如何成为一名出色的技术主管

优秀的技术主管有许多特征,但下面这些是最重要的。

了解架构

如果你担任技术主管,但觉得自己没有完全理解所支持的架构,请花点时间了解它、学习它。了解它如何影响它所支持的产品,这些产品的核心逻辑在哪里。当你不了解你正在改变的架构时,几乎不可能很好地领导项目。

成为一名团队合作者

如果所有的有趣工作都是你在做,请停下来。看看那些棘手、无聊或烦人的领域,你是否可以解决这些问题。处理代码中繁杂的部分可以提供你很多关于流程哪里出错的信息。对于无聊或令人沮丧的项目,有经验的人花时间查看它们通常可以发现并修复一些明显的错误。

如果你只做最无聊的工作,也请停止。你是一名高级工程师,有很多作为开发人员的天赋,你承担一些更难的任务是合理的。你想鼓励团队中的其他人学习整个系统,并希望给他们机会发挥自己的作用,但在选择从事的工作时,你不必总是自我牺牲。偶尔给自己一个有趣的任务,只要你知道你有时间把它做好。

主导技术决策

你将参与团队的大多数重大技术决策。然而,参与并不等同于一个人解决所有问题。如果你在没有征求团队意见的情况下做出所有技术决策,当出现问题时,他们会怨恨你并责怪你。另一方面,如果你不做任何技术决策,而将一切都交给团队,那么本可以快速做出的决策可能会拖延下去而无法解决。

确定哪些决策必须由你做出,哪些决策应该委托给具有更多专业知识的其他人,哪些决策需要整个团队来解决。在这些情况下,明确讨论的问题是什么,并交流预期产出。

交流

你的生产力现在不如整个团队的生产力重要。通常,这意味着你要付出通信开销的代价。你不需要让每个团队成员都参加会议,而是代表团队,传达他们的需求,并将会议中的信息带回团队。

如果说成功的领导者最与众不同的才能,那就是沟通技巧。成功的领导者擅长写稿,阅读仔细,他们可以在一群人面前站起来演说。他们在会议上全神贯注,并不断测试自己和团队知识的极限。

现在是练习写作和口语技巧的好时机。编写设计文档并从更好的文档编写者那里获得反馈。为你的技术博客或个人博客撰写博客文章。在团队会议上发言,在聚会上发言,并在观众面前练习站立发言。

在所有这些交流过程中不要忘记倾听。给别人说话的机会,听听他们说什么。练习向人们重复事情以确保你理解他们。学习如何听别人说的话并用你自己的话重新表述。不管你是选择深入研究技术,还是成为一名经理——如果你不能沟通和倾听别人的意见,那么你的职业发展将受到影响。

评估你自己的经历

• 你的组织是否有技术主管?是否有针对该职位的书面职位描述?如果有,它说了什么?如果没有,你将如何定义组织中的角色?技术负责人将如何定义该角色?

• 如果你正在考虑成为一名技术主管,你准备好推动自己了吗?你是否愿意在代码之外花费一些时间?你是否觉得自己是代码库中的专家,可以成功地领导其他人在其中工作?

• 你有没有问过你的经理他或他对技术负责人的期望是什么?

• 谁是你共事过的最佳技术主管?这个人做了哪些让他或她变得伟大的事情?

• 你是否曾与令人沮丧的技术主管共事?他或她做了什么让你感到沮丧?

关于译者