【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

工程主管有哪些职责?

  • 2020-05-11
  • 本文字数:3758 字

    阅读完需:约 12 分钟

工程主管有哪些职责?

本文最初发布于 Hashtag Coder 博客,经原作者授权由 InfoQ 中文站翻译并分享。


在我的职业生涯中,我很荣幸自己身为组织的一员能不断被组织推动着前行。我刚来到现在任职的公司 Roundtrip 时是一名软件工程师。当时,Roundtrip 是医疗运输领域的一家早期初创公司,包括我在内总共有六名员工。随着团队的成长,我的直属上司,也就是公司的 CTO 需要从日常工作中抽身出来负责更宏观层面的事务,因此我也被提升到了领导岗位上来填补他的空缺。我的责任和职责发生了变化,但当时我在组织结构图中的位置没有改变。


我不知道组织对我有怎样的期望,但是我知道自己必须扩大团队规模,具体做法包括寻找新的工程师,处理技术和个人面试事宜,还要创建诸多流程来推动团队前进。除此之外,我还必须弄清楚我的职责范围。



三年过去了,我终于能自信满满地谈论我的职责,以及我眼中这个职位带给组织的价值了。最近我给自己提出了一项挑战,那就是将我的角色画成思维导图,并将每个部分详细分解为具体的期望。团队领导力

一对一面谈

我的任务是打造一支创建世界一流产品的世界一流的工程团队。要完成这个目标,需要从团队的每一位成员开始行事。我需要了解和管理各位成员的动力、情感、技能和期望水平,帮助他们设定目标,消除个人和职业障碍,并让他们满意自己的薪水和当前的角色,这样才能让他们保持专注并持续输出高质量的成果。我每周都会与我的团队成员一对一会面,以随时把握他们的需求节奏,并为他们提供一个可以倾听自身诉求的平台。

招聘

要打造最好的团队,我们必须找到最优秀的人才。我们招来的每位新人都应该比现有团队的平均水平更强。这样就可以保持较高的团队素质水平,并让每个人都感受到竞争的压力。


招聘不只是要找到符合职位需求的人才。我还要考虑符合团队需求的那些个人特质。为此,我要确定团队的弱点和需求都有哪些,并找到可以弥补这些不足的人员。如果我有强大的执行者,但缺少人员领袖,那么我会请一位擅长领导的人才。总的来说,我需要招来的人有自己的长处,而不是要求他们完美无缺。这样就可以确保我能拥有一支强大而平衡的团队。

绘制工程团队成长蓝图

进步是动力的重要源泉。人们需要知道组织对他们有什么期望,这样才能持续挑战自我。有一句老话说得好:“根据你期望的职位塑造自我”。我也鼓励我的团队采取这种行为,因为随着我们为每个职位设定期望和成功的具体标准,并在一对一交流期间衡量成员与这些标准的距离,我们就能为各位成员定义出明确的职业发展道路,并在他们需要完成具体哪些工作的问题上保持足够的透明度。如果有人表现出色,那么自然就会得到晋升。


我曾经认为辛勤的工作会让员工得到晋升。这是因为当时我不明白不同的岗位之间除了头衔的变化外还有哪些具体的职责差异。现在我的视角就有所变化了。如果我团队中的某位成员正在努力工作,我会让他留在自己的岗位上,因为他正在完成工作。相比之下,我要寻找的是能帮助我打造 10 倍工程师团队的人才——这样的人才不是要成为优秀的工程师,而是要领导他周围的人们都做好自己手头的工作。

加强核心价值观

核心价值观是我用来确保每个岗位上都有合适人才的主要武器。对我来说,如果我认同一个组织的价值观,我也会很愿意加入他们。例如,Roundtrip 有 5 种价值观:


  • 主人翁意识

  • 主动性

  • 弹性

  • 重视倾听

  • 保持简洁


只要让我自己和同事们一直在这些价值观的约束下行事,我们的团队就能保持在较高的水平上。

推动我们朝着使命前进

要让所有人朝着同一个方向划船,最好的方法是将使命视为我们的真相来源和前进道路上的向导。每位成员、每个流程和每种举措都要根据使命来评价,这样我们就能向着目标一步步迈进。


随着 Roundtrip 的成长,我们用使命来提醒自己保持同理心。打造一个只关注付费客户需求的“成长型组织”是很容易的,但是作为一个使命驱动型组织,我们要做的是消除医疗保健领域中的交通运输瓶颈,从而帮助那些没有得到妥善服务的人们;因此我们需要牢记,那些对营收数字贡献不大的客户也是对组织来说同样重要的。每位领导者都有责任不断向团队传达这一信息。

流程管理

软件开发生命周期

良好的软件开发生命周期(SDLC)可以帮助我们以可预测的方式持续提供高质量的软件。尽管我离开一线岗位已有一段时间了,而且工程总监可能都很少有时间来写代码,但我仍然要决定我们的具体工作方式。


在这里,一个平衡点是我自己专注于产出、价值和成本,同时让我的团队专注于具体的成果。我负责报告创建一项功能所需的时间、每个 sprint 可以获得的点数,以及保持团队运营所需的成本。我能管理的必须是我能衡量的事物。

扩大团队规模

我在扩大团队规模时肩负的职责是双向的。向下来说,我有责任为团队找到合适的人选,并要能将他们放在正确的位置上。向上而言,我要为组织考虑成本和优化的问题。我必须在预算范围内招聘新人,让公司的盈利能力不受影响。大手大脚花钱办事是很容易的,但要以一种在财务角度上负责任的方式来解决问题,帮助公司在成长时保持瘦身状态,这就困难得多了。


当新的成员加入我们的团队时,我负责建立入职流程,为他们提供必要的背景信息,让他们准备好踏上成功之路。为此,我将入职过程分为三个阶段。第一步是确保他们“领会”。具体来说就是让新人熟悉组织、问题的范围和我们现有的流程。下一步是确保他们“想要”。在入职期间,我要让新人获得正确的动机和动力。从这里开始,我会根据我们的核心价值观来评价他们,并为他们设定一些目标。最后,我要确保他们“可以做到”。他们能够挑战团队的其他成员吗?他们是晚会主角吗?对我而言,想要成功就需要维持一个不断发展以满足团队需求的过程,而我的措施是塑造一种健康的工程文化。

定义技术策略

Roundtrip 技术团队分为两个部分:工程和产品。工程团队侧重于“方法”,而产品团队则关注“内容”。尽管我不负责定义产品路线图,但我有责任解决团队所面临的挑战。我们每周开会讨论路线图上需要做哪些规划,从解决技术债务到开发基础设施增强措施都可以是规划的内容。


另一部分是设计产品以满足客户不断变化的需求。我曾经更偏重解决方案开发过程中的技术方面,但是最近我需要从这一领域抽身出来,专注其他方面的职责,所以要将技术层面的工作托付给我的团队。

EOS

经营公司是很困难的事情。Roundtrip 尝试了几种不同的系统来帮助组织全体向着同一方向前进,但最适合我们的系统是 EOS。作为组织的领导者,我的职责包括主持团队的 L10 会议,从而掌握我们每周的工作情况,并帮助我们以客观的视角看待业务,从而快速识别和解决问题。

产品方向

为路线图提供资源

Ben Horowitz 提出了一种非常好的理念,那就是将公司定义为两个阶段:和平时期和战争时期。在和平时期,我们会经历长期的增长,在此期间我们专注于构建产品以为客户创建更好的流程。在这一时期,产品团队定义了一个路线图,而我必须确保工程团队有足够的资源来完成工作。在战争时期,比如说当我们处于经济衰退期时,就该优化路线图和流程了。在这一时期内可用的资源可能受到限制,这意味着产品团队必须根据我们现有的资源来定义路线图。战争时期,组织更专注于提高收入和保留/获取客户的计划,因此我的职责也从找到符合岗位需求的合适人员,转变为让现有的员工找到合适的工作,从而尽可能保持预算平衡。

管理部署

作为工程总监,我必须确保我们的交付节奏。如果这里存在障碍,我必须引导我的团队跨过它们。部署通常是软件交付流程中最后也是最困难的部分,因此我的大部分精力都用在了打造可靠的流程上。


我还必须考虑部署对客户和我的团队的影响。我一方面要让客户尽量不受部署行为的干扰,另一方面还要让团队适应特殊的部署时间,保持健康的工作状态,这种平衡实在是很难掌握的

监督整合

与第三方合作可以帮助我们成长,但是从技术角度来看这些计划会带来巨大的风险,因为我们无法控制很多来自第三方的影响。从早期技术讨论到实现和采用过程,我一直在关注那些正在使用的流程,以确保一切顺利进行。归根结底,我们只有一次机会来建立良好的第一印象,因此我需要确保我们能给人展示最好的初始印象。

权限控制

这一部分是要确保人们只能获得自己所需的东西,从而控制风险。但这里也有另一个视角。我想让我的团队感到自己得到了充分的信任,并能主导他们正在创建的产品的控制权。我试着雇用聪明的人来做聪明的事情,将任务委派给他们,让他们获得权限并有掌控全局的感觉。

自行构建还是购买功能

如今,随着可用服务的数量不断增加,我们只需将各种第三方产品拼接在一起就能轻松创建自己的产品。但是这样做会让我们失去很多对功能的控制权,还会降低功能的独特性。作为开发人员,选择自己创建所有内容同样是很容易的。但是这样做会浪费时间并增加复杂性。


在我的立场来看,这就要不断思考并对比“构建与购买”的优劣,从而优化成本结构并简化工作。总的来说,我需要判断哪种决策可以给我带来最佳的投资回报。

总结

工程主管是具有挑战性的岗位。这一职位对人员和技术都要承担很多责任。这意味着你要肩负起最重要的使命,并且在危机时期往往责任也更为重大。没人给你提供时间表或者对未来的预测,而且这并不是那种朝九晚五的工作,而是要全力排除掉前路的障碍才算完事。但如果你能正面迎接挑战,就会在你的员工和产品中看到直接的成果,这会是非常有成就感的事情。

延伸阅读

https://www.hashtagcoder.dev/blog/director-of-engineering


2020-05-11 15:241981

评论

发布
暂无评论
发现更多内容

重磅来袭“2024粤港澳电子展”覆盖电子信息完整产业链

AIOTE智博会

电子展 电子信息展 电博会

测试管理进阶 | 如何打造一份出彩的工作汇报!

测吧(北京)科技有限公司

测试

OpenKruise :Kubernetes背后的托底

华为云开发者联盟

开发 华为云 华为云开发者联盟

软件测试/测试管理|如何打造一份出彩的工作汇报!

霍格沃兹测试开发学社

应用集成(iPaaS)和数据集成(ETL)高效协同的最佳实践

RestCloud

ETL 数据集成 应用集成 ipaas

2023京东零售技术年度盘点

京东科技开发者

速看!盘点这一年 OpenTiny 都在做什么?

OpenTiny社区

开源 前端 低代码 组件库

大数据平台红蓝对抗 - 磨利刃,淬精兵!

京东科技开发者

Flask请求与响应-接口路由请求方法(methods=[“”])

测试人

软件测试 测试 自动化测试 测试开发

华为云幻兽帕鲁服务器搭建教程(Windows平台)

YG科技

2023 年度龙蜥最佳用户案例奖揭晓,中国移动、小红书、中国人寿财险等企业上榜!

OpenAnolis小助手

开源 操作系统 用户案例 龙蜥社区 商业版

MetaVideo mac 1.1.3激活版 视频元数据编辑

iMac小白

Apifox 1月更新:性能测试、多人协作接口实时同步功能全面解析

Apifox

程序员 性能测试 Apifox API 接口工具

玩转数据处理利器:学会使用 YAML 文件轻松处理数据

测吧(北京)科技有限公司

测试

部署SD-WAN需要多长时间?多少钱?

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商

Sketch for mac(矢量绘图软件) 99.1中文激活版

iMac小白

Disk Drill mac 5.4.1426中文激活版 数据恢复软件

iMac小白

每日一题:LeetCode-138. 随机链表的复制

半亩房顶

算法 链表 LeetCode Go 语言 回溯

小程序全生命周期管理如何安排

Geek_2305a8

低代码(Low-Code)技术简化开发难度,快速搭建应用

互联网工科生

软件开发 低代码 数字化 JNPF

业务-研发一体化的管理平台是否存在?

Geek_2305a8

Web3 游戏开发者的数据分析指南

Footprint Analytics

区块链 区块链游戏 #Web3 web3游戏

CleanMyMac X v4.14.6中文版 强大的mac系统清理工具

iMac小白

理解ETF的风险:透明度高、投资组合清晰可见背后的考量

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Java开发中不要使用受检异常

码语者

Java 异常

COB封装LED显示屏vs. SMD封装LED屏

Dylan

技术 封装 LED LED display LED显示屏

火山引擎ByteHouse:“专用向量数据库”与“数据库+向量扩展”,怎么选?

字节跳动数据平台

数据库 大数据 云原生 Clickhouse 企业号 1 月 PK 榜

深度解析SD-WAN和混合WAN的网络方案区别

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商

软件测试学习笔记丨抓包工具Charles实战

测试人

软件测试

Capture One 23 Enterprise Mac 16.3.4.5企业版 RAW图像编辑处理

iMac小白

DirEqual mac 5.8 激活版 文件夹比较工具

iMac小白

工程主管有哪些职责?_大前端_Sha Alibhai_InfoQ精选文章