文章: 虚拟讨论会:如何成为首席工程师

翻译自https://www.infoq.com/articles/virtual-panel-principal-engineer/

Ben Linders, Joy Ebertz, Pablo Fredrikson, Charlotte de Jong Schouwenburg

Dec 11 8 分钟

关键要点

  • 转变为首席工程师角色需要结合技术专长和领导技能,既要关注个人贡献,又要关注团队动态。
  • 对于有志成为首席工程师的人来说,关键技能包括战略思维、影响他人和有效沟通,以及同理心和指导同事的能力。
  • 与管理层合作,在公司内获得更广泛的曝光机会,并通过参加会议和指导等经验抓住持续学习的机会,可以提升职业发展。
  • 不同组织对首席工程师的定义和期望可能大不相同,这强调了适应文化和领导需求的重要性。
  • 公司应该通过明确预期角色、促进自主性和鼓励重视成长和影响力的文化,来支持首席工程师。

介绍

作为一名软件工程师或个人贡献者,你职业生涯的下一步可以是成为一名首席工程师。在公司成为首席工程师的路径可能感觉不明确,从而抑制个人工程师的职业发展。然而,这也为工程师提供了发明和塑造首席工程师角色的机会。

在本次小组面试中,我们将讨论成为首席工程师的旅程,涉及在这一战略角色中脱颖而出所需的技术和领导技能。我们还将探讨如何推动职业发展。

小组成员:

  • Joy Ebertz - 首席工程师 @Harness
  • Pablo Fredrikson - 首席SRE @Bitso
  • Charlotte de Jong Schouwenburg - @Bravely联合创始人,商业心理学家,执行教练,培训师

Q1

InfoQ: 作为首席工程师是什么感觉?首席工程师在你们公司是怎样的角色?

Joy Ebertz: 我的首席工程师角色每天、每月甚至每年都在剧烈变化。这是公司需求、我的技能以及我想做的事情之间的匹配游戏。最后这一点比初听起来更为微妙。这不仅仅是我感兴趣的事情,还可能是我目前做一些技术工作是有意义的,这样当我以后想推动某个特定的技术计划时,我将会拥有一定的公信力。

另一方面,尽管我确实与我的经理一起探讨我应该做什么,有时他也会告诉我需要转换方向,但更多情况下,我的工作是自我导向和自我激励的。

在这个角色中取得成功需要了解自己最有效的方式。例如,我发现当我与其他至少一个人一起工作时最有效 - 这样不仅能让我负起责任(即使他们并不主动做任何事),还能与我讨论事情(即使他们不提供任何建议)。

举一些更具体的例子,我花了几个月时间调查授权框架、工具和供应商,并提出建议、计划和估算。我也曾花上好几个月的时间推动某个特定项目并与其他工程师一起编码。所以有时候我的工作是大量的研究和写作,有时候是大量的会议、演示和说服他人,有时候则是大量的编码。这真的取决于公司的需求、我的技能以及我在那一刻想做的事情。

帕布罗·弗雷德里克森:作为一名首席工程师意味着要承担大量的责任(和乐趣!)。首席工程师可能有一系列的职责,通常从带领一支工程师团队编写高质量的代码开始。他们的技术专长对于引导团队达到最高生产力至关重要。除此之外,他们还专注于识别对公司有重大影响的项目。首席工程师通常是第一个发现工程流程中低效或改进领域的人,解决这些问题是他们的责任。通过这样做,他们不仅提高了团队的生产力,还提升了公司整体的价值和技术标准。

Charlotte de Jong Schouwenburg:我们与各种公司中的首席工程师合作——从初创公司、成长中的公司到像微软这样的企业。根据公司的文化、成长路径和领导需求,首席工程师的角色定义、需求和任务会有所不同。

Q2

InfoQ:软件工程师应该培养哪些技能才能成为首席工程师?

Joy Ebertz: 你走得越高,通常越需要平衡技术技能和领导技能。(请注意,我故意避开了“软技能”这个词,因为我不想暗示这些技能不重要。)然而,对于那些试图晋升的人来说,很少会在技术技能上有困难,所以我将在这里更多地关注人际和领导技能。我要讨论的第一个技能是了解大局并做出权衡。在这里,我指的是时间和精力的权衡。你在技术领域工作得越久,就会自然地注意到更多需要改进的地方。

并不是所有的事情都值得花费大量时间,有些事在你是一家大公司的时候值得花时间,但如果你是一家只有十个人的初创公司,那就不值得。当你的职位越高,你需要将思维方式从寻找可以改进的地方转变为识别什么时候已经足够好了。知道什么时候放手和什么时候放下是非常重要的。你可以以平庸的方式做很多事情,或者专注于几件最重要的事情并真正做好它们。

下一个技能是人们经常谈论的——影响力。你常常需要让别人支持你,以完成你想做的事情。影响力不仅仅是提出好的论点。它涉及到理解人们的动机,以及公司的文化、团队和个人。如果人们说不,是因为他们认为你的提议是个坏主意,还是因为他们太忙没有时间来处理?如果是后者,有没有什么办法可以解决他们的问题或改善他们的情况?

最后一个我想提到的技能是沟通。你可以将其视为影响力的一个子技能,但它足够重要,值得单独提及。在正式和非正式场合中,与大群体和小团体进行书面和口头沟通的提升,可以在很大程度上帮助你推广自己和你的想法。

Pablo Fredrikson:同理心是软件工程师应当培养的技能,以便成为首席工程师。成为一个好人是至关重要的。虽然技术技能很重要,但同理心和积极的态度更为重要。

首席工程师应当能够识别各个流程中的问题并提出解决方案。他们还应愿意在需要时指导和带领其他工程师。

Charlotte de Jong Schouwenburg: 首席工程师将把他们的职责从内容专业知识扩展到领导、激励和鼓舞团队成员,帮助他们尽最大努力完成工作。这需要一套与内容专业知识互补的技能。

相关的领导技能有很多(这个列表并不详尽,并会受到公司的文化、需求和团队成熟度的影响):

  • 关注加强信任、自主性、目标、心理安全感、所有权
  • 激励、鼓舞和为团队提供愿景
  • 提供结构(有助于心理安全)
  • 鼓励成长型思维
  • 提供和促进持续反馈
  • 通过冲突指导团队动态转向连接
  • 突出团队在公司整体中的贡献和地位,反复强调与更大公司目标的联系(有助于产生目标感)
  • 熟练掌握情感调节
  • 学会向上管理
  • 处理困难对话的能力:坏消息、冲突管理、反馈对话、设定边界
  • 言行一致:定义你希望团队成员具体表现出的行为,并确保你自己也定期和明确地展示这种行为
  • 向上管理:说服领导层追求某个倡议的附加值,即使这需要额外的资源/成本

Q3

InfoQ:软件工程师如何培养这些技能?

Joy Ebertz:对于其中一些技能,例如沟通,当机会出现时,要勇于接受,即使这些机会让你感到害怕。

例如,我写得越多,讲得越多,我就越感到自如,并且越发发现自己有很多话要说。我发现一些书籍对其他技能有帮助,但与人交流也对我很有帮助。找到一个同龄人或更资深的导师,和他们谈论其中一些事情,可以很好地验证你的直觉,并帮助你注意到一些你可能本不会注意到的事情。同样,与比你资深的人一起工作,特别是在需要处理复杂情况的项目上,可以很好地洞察他人如何应对这些问题。

Pablo Fredrikson:首先积极聆听他人的意见。不要急于立即掌握每一种技术;技术专长会随着时间慢慢积累。

Charlotte de Jong Schouwenburg

软件工程师可以通过以下方式培养技能:

  • 通过榜样学习 - 观察、反思和整合你看到的鼓舞人心且有效的领导者应用的技能(这些可以是来自其他专业领域的领导者,因为这些技能在各个领域内都适用)。
  • 寻找培训,尤其是那些有行动学习环节的研讨会,这样可以让你在真实、相关的场景中运用新技能。
  • 尽可能多地实践——领导力体现在日常行为和沟通技能中。尝试引入、重复并在现实生活中完善尽可能多的技能(例如,反馈)。

Q4

InfoQ:软件工程师可以做什么来提高作为(技术)领导者的效率并增加他们的影响力?

Joy Ebertz:除了培养你的技能之外,我还要提到三件事。首先是利用你的经理——将他们视为你的合作伙伴。这将有助于你负责领域的最佳结果,并确保他们知道你的目标和你特别希望发展的技能,以便他们帮助你找到机会。

其次,要留意获得更广泛曝光机会的方式——让别人看到你自己,同时更好地了解公司不同团队、部门和学科中正在发生的事情。如果你没有接触到这些高层面的视野,很难形成整体的图景并做出权衡。

利用你的经理来让你参与更高层的会议,或者如果他们不能带你参与,也可以为你进行总结。最后,抓住机会结识全公司各个领域的人。如果你能做一点小事来帮助他们(而不影响我之前提到的优先排序),那就去做。在各个领域积累社会资本并提高你对其他团队如何看待公司、他们的工作等的理解是非常宝贵的。

Pablo Fredrikson:参加会议是一个很好的起点!会议让你可以从他人的经验中学习,包括他们所面临的挑战以及他们如何解决这些问题。指导他人是另一个优秀的成长方式。我经营一个YouTube频道,在那里分享我日常工作中使用的技术见解。我发现创建内容需要对我讨论的主题有深入的理解,因此在准备分享知识的过程中,我加深了自己的专业知识。分享知识无疑增强了我的技术技能。

Charlotte de Jong Schouwenburg:要变得更有效,他们可以做我之前提到的三件事:通过他人学习、寻求培训和通过榜样实践。

练习成就完美,并且透明地表现出你在不断学习、发展和努力的过程中作为一个完美的榜样行为,你希望从你的团队成员那里看到同样的行为。

Q5

InfoQ:公司可以做些什么来建立和塑造首席工程师角色?

Joy Ebertz:公司建立和塑造首席工程师角色的最佳方式是清楚地描述他们希望从这个角色中获得的东西,同时允许任何被聘用的人进一步塑造或重塑这个角色。如果他们聘用的至少前几位首席工程师对组织需求和解决问题有良好的理解,这种方式特别有效。

我见过的两种失败模式是一种是过于限制性的公司,不给予工程师自由或杠杆去做他们认为最重要和有影响力的事情,另一种是过于松散的公司,不太确定他们想从资深工程师那里得到什么,因此不给他们足够的方向来入手。

Pablo Fredrikson:找到有潜力的人——那些关心学习并渴望指导他人的人。这些人在几年后很可能会成为公司的领导者。留住他们,并提供成长和产生影响的机会!

Charlotte de Jong Schouwenburg

公司可以做的事情包括:

  • 支持自主性:设定清晰的职业路径
  • 通过概述期望的品质、行动和成长路径管理期望
  • 展示影响范围
  • 定义他们可以和不能做的事情的边界
  • 清楚公司文化;言行一致地表现出对员工的期望

结论

首席工程师从事各种任务,如领导技术团队、影响决策和推动改进。他们的工作会根据公司的需求和个人目标进行调整。

在这个角色中取得成功需要平衡技术专长和领导能力。重要技能包括大局思维和做出权衡、影响他人、理解团队动态、沟通以及人际技能,如指导和激励团队。

工程师可以通过指导、培训、观察和实践来构建这些技能。积极聆听、抓住领导力机会并接触更广泛的公司职能是推荐的做法。

公司应该明确期望,提供自主性,并允许首席工程师灵活塑造他们的角色。提供成长机会并培养学习和领导文化是至关重要的。

关于作者

Ben Linders

Joy Ebertz

Pablo Fredrikson

Charlotte de Jong Schouwenburg