对于软件工程经理来说,如何在承担人员管理、项目推进和团队协作职责的同时,持续保持技术素养,是职业转型后必须面对的重要问题。
工程经理不一定要继续承担大量开发工作,但仍需要理解团队正在构建什么、为什么作出这些技术选择,以及相关决策可能带来哪些风险和影响。
本文将介绍软件工程经理保持技术能力的四种实用方法。

要点总结
- 对工程经理来说,技术能力已经不再是可有可无的加分项。它能够增强你在团队中的可信度,保护工程师的专注时间,并帮助你在不过度打扰团队的情况下作出合理决策。
- 保持技术敏锐度,需要持续且有意识地投入。
- 你不需要成为团队中编程能力最强的人。真正的目标,是理解团队正在构建什么、为什么作出这些技术选择,以及这些选择会带来什么影响,而不是在代码能力上超越工程师。
成为工程经理之后,你可能已经明显感觉到:自己与团队日常技术工作的距离正在逐渐拉大。
一位资深工程管理者曾直言:
人员管理固然重要,但仅仅做好人员管理,已经远远不够。
那么,软件工程经理应该如何弥合这种距离,在不重新成为全职开发者的情况下,持续保持技术能力和技术判断力?
在讨论具体方法之前,我们首先需要明确一个问题:对于工程经理来说,所谓的“技术素养”究竟意味着什么?
软件工程经理的技术素养是什么
工程经理具备技术能力,并不一定意味着必须持续编写生产代码,或者直接承担产品路线图和技术路线图中的开发任务。当然,不同公司的岗位要求可能有所差异。
对工程经理来说,技术素养更重要的体现是:
- 能够理解代码库的基本架构;
- 能够识别潜在的技术瓶颈和风险;
- 了解团队正在使用的工具、技术和工程实践;
- 能够参与技术讨论,并作出基本合理的判断;
- 能够发现值得关注的问题和改进机会;
- 能够帮助团队制定符合业务需要的技术策略。
换句话说,工程经理不一定要亲自解决每一个技术问题,但需要知道问题发生在哪里、为什么重要,以及不同解决方案可能带来哪些影响。
为什么工程经理需要保持技术能力
在工程管理工作中,技术能力已经不再是“锦上添花”,而是一项越来越重要的基础能力。
它至少会对工程经理的工作产生以下四个直接影响。
1. 提升你在团队中的可信度
工程师希望自己的经理在与管理层、产品团队和其他利益相关者沟通时,能够真正理解并代表工程团队。
只有充分了解团队正在做什么、面临哪些困难,以及技术决策背后的现实约束,你才能准确解释团队的工作,合理争取资源,并帮助工程师抵御不切实际的要求。
这种理解会直接影响工程师是否相信:当他们不在场时,你能够替他们把问题讲清楚。
技术可信度并不来自你能否写出比工程师更好的代码,而来自你能否准确理解他们的工作,并在关键场合作出合理判断。
2. 保护工程师的专注时间
如果工程经理缺乏基本的技术背景,每遇到一个问题,都需要临时找一两名资深工程师进行解释,团队的专注时间就会不断被打断。
具备一定的技术能力之后,工程经理可以独立完成许多信息收集、初步判断和跨团队沟通工作,不必把所有问题都转交给工程师。
这样既能提升决策效率,也能让工程师把更多精力投入真正需要深入思考的技术工作。
3. 缩短反馈周期
当工程经理掌握必要的技术背景时,就能更快理解利益相关者提出的问题,并及时给出初步反馈。
你不需要在每一次沟通之后都回到团队重新询问细节,也不必在不同人员之间反复传递信息。
这能够显著缩短反馈周期,减少信息失真,也有助于更早发现决策中的风险和遗漏。
4. 提高工程师招聘质量
招聘优秀工程师,是工程经理的重要职责之一。
如果你清楚团队真正需要什么能力、当前技术环境存在哪些挑战,以及候选人入职后需要解决什么问题,就更容易设计合理的面试流程,提出有价值的问题,并准确判断候选人是否适合团队。
相反,如果工程经理对岗位要求缺乏深入理解,招聘过程就很容易退化为机械地核对技术关键词和工作年限。
明确了技术素养的含义及其价值之后,下面介绍工程经理保持技术能力的四种方法。
方法一:利用提示词工程辅助技术学习
提示词工程,是指通过设计清晰、具体且包含充分背景信息的指令,让人工智能模型生成更加可靠、相关和实用的结果。
例如,假设你希望评估两种技术架构的优缺点。
一个效果较差的提问可能是:
微服务架构和单体架构之间有哪些取舍?
这个问题过于宽泛,没有提供业务背景、团队规模、技术现状和评估标准,因此得到的答案很可能只是一组通用结论。
一个更有效的提示词可以这样写:
你是一位资深软件架构师,正在为一家中型 SaaS 公司的工程经理提供建议。该公司目前有 12 名工程师,维护一个基于 Rails 的单体应用,为大约 50 万名用户提供服务。团队正在考虑是否迁移到微服务架构,目前面临的主要问题是部署效率低,以及团队规模扩大后出现的协作瓶颈。
请评估继续使用单体架构与迁移到微服务架构的优缺点,并重点考虑团队规模、运维复杂度、短期交付速度和长期可扩展性。请先进行结构化比较,最后给出建议。
这个提示词之所以更加有效,是因为它:
- 为人工智能设定了明确角色:资深软件架构师;
- 提供了必要背景:团队规模、技术栈和用户规模;
- 明确描述了当前问题:部署瓶颈和团队扩展;
- 给出了具体评估标准:运维复杂度、交付速度和可扩展性;
- 规定了输出形式:先进行结构化比较,再提出建议。
高质量的提示词不仅能够节省时间,也能帮助工程经理更高效地补充技术知识。
例如,你可以借助人工智能完成以下工作:
- 对代码库中的错误进行初步分类;
- 辅助分析潜在的修复思路;
- 建立性能评估框架;
- 起草详细的技术策略;
- 梳理代码库的整体架构;
- 绘制系统组件和工具链之间的关系图;
- 比较不同技术方案的优缺点;
- 帮助理解陌生的技术概念和文档。
但人工智能能够发挥多大价值,很大程度上取决于它能否获得完整、准确的研发背景。对于工具分散、数据割裂的团队,工程经理往往需要在代码仓库、需求系统、测试工具和知识文档之间反复查找信息。借助 PingCode 这类覆盖研发全生命周期的管理工具,可以将需求、开发、测试、发布和知识沉淀连接起来,并接入团队已有的研发工具,为技术分析和决策提供更加连续的上下文。
不过,需要注意的是,任何人工智能模型都无法完整复制团队长期积累的组织知识,也无法自动理解历史决策、人员关系和现实约束。
因此,人工智能可以帮助你加快学习,却不能取代你与工程师之间的直接交流。
这就引出了第二种方法。
方法二:与工程师进行结对协作
了解代码库、系统架构和团队工具链的有效方式之一,是与工程师一起完成具体任务。
这种协作不一定意味着工程经理要重新承担日常开发任务,而是通过有明确边界的结对编程、代码审查或问题分析,观察工程师如何理解系统、拆解问题和作出技术选择。
但需要注意,不要过于频繁地与同一名工程师结对,因为这会占用对方原本用于完成工作的时间。
结对协作应该谨慎使用,并且最好选择那些对团队有一定价值、但不处于关键交付路径上的任务。
这类任务通常没有很强的时间压力,却能够帮助你更深入地理解代码库和团队的工程实践。
坦诚说明你的目的
明确告诉工程师,你参与结对协作,是为了提高自己的技术理解,而不是为了检查或评价他的工作表现。
这样可以减少对方的防备心理,避免工程师误以为这是一场隐藏的绩效考核。
选择边界清晰的任务
任务最好有明确的时间限制或具体产出。
例如,可以将结对时间控制在 60 分钟以内,或者约定只完成某一项代码审查、问题定位或小范围修改。
毕竟,这次协作主要是为了帮助你学习,因此需要特别注意,不要过度占用团队成员的时间。
提前确定由谁主导
如果你的目标是练习快速识别和修复简单问题,并且你具备相应的编程经验,可以由你主导操作。
如果你的目标是观察工程师如何分析问题、使用工具和作出判断,就应该让工程师主导,而你负责提问和理解。
不断追问“为什么”
你的重点不应只是知道某个功能“怎么实现”,还要理解:
- 为什么采用这种实现方式;
- 为什么没有选择其他方案;
- 哪些约束影响了最终决策;
- 如果业务条件发生变化,这个方案是否仍然成立。
真正有价值的技术理解,通常来自对这些“为什么”的持续追问。
记录需要继续学习的问题
在协作过程中,你很可能会遇到一些尚不了解的概念、工具或技术决策。
把这些问题记录下来,作为后续学习的线索,而不是试图在一次结对过程中把所有问题都弄明白。
适合结对协作的任务
例如:
- 共同审查一个拉取请求;
- 排查一个低优先级错误;
- 为小范围功能补充测试;
- 梳理某个模块的数据流;
- 分析一条简单的性能告警;
- 更新过时的技术文档。
不太适合结对协作的任务
例如:
- 生产环境中的紧急事故,因为时间高度敏感;
- 对新工具或新技术进行开放式调研,因为任务边界不清晰;
- 深度算法优化或复杂性能调优,因为技术门槛过高;
- 关键路线图中的紧急开发任务,因为可能拖慢团队进度。
结对协作的优点是具体、直接,但它也存在局限:学习通常围绕某个任务展开,容易变成零散的短期输入。
要建立更加系统的技术理解,还需要第三种方法。
方法三:系统积累技术领域知识
提升技术能力的有效途径之一,是持续拓展自己对相关技术领域的理解。
你不需要同时掌握所有技术,而是可以先选择一个与团队工作密切相关的方向进行深入学习。
当你在这个领域建立起基本判断力之后,再逐步转向下一个领域。随着时间推移,这些知识会不断积累,最终形成更加全面的技术认知。
如何选择学习领域
你可以从以下问题入手:
- 团队当前正在重点解决什么问题?
- 哪类技术决策最容易让我感到没有把握?
- 团队最重要的技术讨论通常集中在哪些领域?
- 哪些技术风险可能直接影响业务?
- 哪方面的知识能够帮助我更好地支持团队?
例如,如果团队正在频繁讨论系统稳定性和故障定位,你可以优先学习可观测性。
如果团队面临持续的交付效率问题,可以学习持续集成、持续交付和开发者体验。
如果团队正在进行架构拆分,则可以学习分布式系统、服务治理和数据一致性。
如何积累领域知识
你可以:
- 在理论学习与实际应用之间保持平衡;
- 在团队内部或外部寻找一位技术导师;
- 阅读不同层次的技术资料,从入门文章到 RFC 和技术规范;
- 定期参与架构讨论和技术复盘;
- 制定学习计划,把学习纳入每周的固定节奏;
- 通过小型项目或实验验证自己的理解。
例如,假设你希望提高自己在可观测性领域的能力,可以制定一个为期三个月的学习计划。
第一个月:理解基础概念
请一位资深工程师介绍团队当前的日志、指标和链路追踪机制。
随后,阅读相关开源项目和行业工具的文档,并观看一些关于分布式追踪和故障定位的技术分享。
在这个阶段,你的目标不是掌握所有细节,而是建立基本概念和术语体系。
第二个月:获得实践经验
请一位工程师与你结对,为代码库中的某个非关键模块补充基础链路追踪。
同时,可以启动一个小型个人项目,通过实际操作理解遥测数据是如何采集、传输和展示的。
实践能够帮助你发现那些仅靠阅读资料时容易忽略的问题。
第三个月:将知识用于实际工作
开始更加积极地参与团队的技术讨论。
例如,当团队考虑新增服务时,你可以提出与日志、指标、告警和链路追踪有关的问题;在审查架构 RFC 时,也能够识别可观测性设计中的缺失。
随着持续参与,你会逐渐建立起自己的判断力。
当你对这个领域足够熟悉之后,再选择一个新的方向继续深入。
领域知识能够为你提供理解技术问题所需的词汇和框架。下一步,是把这些知识运用到团队最重要的技术决策中。
方法四:积极参与架构和设计评审
架构评审和设计评审,是团队作出重要技术决策的主要场所。
这些决策可能持续影响未来数年的系统可扩展性、可维护性、人员招聘、基础设施成本和团队效率。
对工程经理来说,参加这类评审并不意味着替工程师作技术决定,而是帮助团队识别业务约束、组织影响、长期风险和可能被忽视的问题。
评审前至少阅读两遍材料
在审查 RFC 或参加架构设计评审之前,最好将相关文档完整阅读两遍。
第一遍:理解背景
第一次阅读时,不必急着标记或做大量笔记。
这一遍的主要目标,是理解文档的上下文、问题背景和整体思路。
阅读过程中,可以思考:
- 这个问题为什么需要现在解决?
- 它会对团队产生什么影响?
- 它与当前业务目标有什么关系?
- 如果不解决,会发生什么?
第二遍:识别问题
第二次阅读时,再标出重要内容,记录疑问、潜在漏洞和关键判断。
这一遍可以重点思考:
- 方案会对现有代码库产生什么影响?
- 是否存在没有被充分讨论的依赖关系?
- 运维、测试和迁移成本是否被低估?
- 团队是否具备实施和维护该方案的能力?
- 是否存在更简单的替代方案?
- 方案失败时,是否能够回滚?
架构评审的价值不仅在于作出一次决定,也在于保留决策背景和后续验证依据。团队可以使用 PingCode Wiki 统一沉淀 RFC、架构方案、评审结论和复盘记录,并将相关文档与需求、任务和发布过程关联起来,避免重要技术决策散落在聊天记录和个人文档中。
在会议中提出澄清性问题
进行现场评审时,可以提出帮助理解的问题,例如:
你能否解释一下,我们为什么选择方案 Y?
尽量避免带有预设结论的引导性问题,例如:
我们是不是应该直接采用方案 X?
也不要提出与本次评审目标无关的问题,否则容易让讨论偏离重点。
工程经理的价值,不是通过提问证明自己懂技术,而是帮助团队更加全面地理解决策的影响。
关注次要影响和衍生影响
RFC 通常会充分讨论方案的直接收益和主要风险,但次要影响和长期衍生影响往往没有那么明显。
例如,假设团队计划使用基于 Kafka 的异步事件驱动系统,替代内部服务之间的一组同步 REST API 调用。
这项变化可能产生以下三个层面的影响。
主要影响
服务之间的耦合程度可能降低,系统可以更好地应对流量高峰,并在下游服务暂时故障时获得更强的容错能力。
这些通常是方案中最容易被看到的收益。
次要影响
在同步系统中,一次调用失败通常会立即暴露。
而在异步系统中,故障可能不会马上显现。某个消费者可能在几个小时后才发现事件没有被正确处理,事件的处理顺序也可能出现异常。
与此同时,调试方式会变得更加复杂。工程师需要关联生产者和消费者的日志,还要解决跨服务请求链路不够清晰的问题。
衍生影响
在同步 REST API 架构中,工程师通常可以通过阅读接口和调用关系,建立对服务间通信的基本认知。
而在事件驱动系统中,数据流动更加隐性。新加入的工程师可能更难快速理解:
- 哪些服务会发布事件;
- 哪些服务会消费事件;
- 一个事件会触发哪些后续行为;
- 数据在不同系统之间如何传播。
这意味着,团队可能还需要投入更多精力建设文档、事件目录、监控能力和入职培训机制。
工程经理尤其适合关注这些次要和衍生影响,因为它们往往跨越技术、人员、流程和组织多个层面。
软件工程经理如何持续保持技术能力
工程经理的技术能力并不是一种一旦获得,就可以永久保留的技能。
技术环境、团队架构和业务目标都在不断变化,因此,保持技术素养需要持续且主动的投入。
好消息是,你不需要同时完成所有事情,也不必突然重新变成一名全职程序员。
真正有效的方法,是采取微小但持续的行动:
- 每周阅读一份技术文档;
- 每月参与一次结对协作;
- 持续深入一个与团队相关的技术领域;
- 认真准备并参加架构评审;
- 使用人工智能辅助理解陌生问题;
- 定期与资深工程师讨论技术趋势和团队风险。
这些行动短期内可能并不起眼,但长期积累之后,会显著提升你的技术判断力。
你的工程师并不需要你成为团队中最优秀的程序员。
他们真正需要的是:你能够理解他们正在构建什么,知道为什么这些工作重要,并清楚每一项技术决策背后真正的风险、代价和利害关系。
对于软件工程经理来说,如何在承担人员管理、项目推进和团队协作职责的同时,持续保持技术素养,是职业转型后必须面对的重要问题。
工程经理不一定要继续承担大量开发工作,但仍需要理解团队正在构建什么、为什么作出这些技术选择,以及相关决策可能带来哪些风险和影响。
本文将介绍软件工程经理保持技术能力的四种实用方法。
要点总结
- 对工程经理来说,技术能力已经不再是可有可无的加分项。它能够增强你在团队中的可信度,保护工程师的专注时间,并帮助你在不过度打扰团队的情况下作出合理决策。
- 保持技术敏锐度,需要持续且有意识地投入。
- 你不需要成为团队中编程能力最强的人。真正的目标,是理解团队正在构建什么、为什么作出这些技术选择,以及这些选择会带来什么影响,而不是在代码能力上超越工程师。
成为工程经理之后,你可能已经明显感觉到:自己与团队日常技术工作的距离正在逐渐拉大。
一位资深工程管理者曾直言:
人员管理固然重要,但仅仅做好人员管理,已经远远不够。
那么,软件工程经理应该如何弥合这种距离,在不重新成为全职开发者的情况下,持续保持技术能力和技术判断力?
在讨论具体方法之前,我们首先需要明确一个问题:对于工程经理来说,所谓的“技术素养”究竟意味着什么?
软件工程经理的技术素养是什么
工程经理具备技术能力,并不一定意味着必须持续编写生产代码,或者直接承担产品路线图和技术路线图中的开发任务。当然,不同公司的岗位要求可能有所差异。
对工程经理来说,技术素养更重要的体现是:
- 能够理解代码库的基本架构;
- 能够识别潜在的技术瓶颈和风险;
- 了解团队正在使用的工具、技术和工程实践;
- 能够参与技术讨论,并作出基本合理的判断;
- 能够发现值得关注的问题和改进机会;
- 能够帮助团队制定符合业务需要的技术策略。
换句话说,工程经理不一定要亲自解决每一个技术问题,但需要知道问题发生在哪里、为什么重要,以及不同解决方案可能带来哪些影响。
为什么工程经理需要保持技术能力
在工程管理工作中,技术能力已经不再是“锦上添花”,而是一项越来越重要的基础能力。
它至少会对工程经理的工作产生以下四个直接影响。
1. 提升你在团队中的可信度
工程师希望自己的经理在与管理层、产品团队和其他利益相关者沟通时,能够真正理解并代表工程团队。
只有充分了解团队正在做什么、面临哪些困难,以及技术决策背后的现实约束,你才能准确解释团队的工作,合理争取资源,并帮助工程师抵御不切实际的要求。
这种理解会直接影响工程师是否相信:当他们不在场时,你能够替他们把问题讲清楚。
技术可信度并不来自你能否写出比工程师更好的代码,而来自你能否准确理解他们的工作,并在关键场合作出合理判断。
2. 保护工程师的专注时间
如果工程经理缺乏基本的技术背景,每遇到一个问题,都需要临时找一两名资深工程师进行解释,团队的专注时间就会不断被打断。
具备一定的技术能力之后,工程经理可以独立完成许多信息收集、初步判断和跨团队沟通工作,不必把所有问题都转交给工程师。
这样既能提升决策效率,也能让工程师把更多精力投入真正需要深入思考的技术工作。
3. 缩短反馈周期
当工程经理掌握必要的技术背景时,就能更快理解利益相关者提出的问题,并及时给出初步反馈。
你不需要在每一次沟通之后都回到团队重新询问细节,也不必在不同人员之间反复传递信息。
这能够显著缩短反馈周期,减少信息失真,也有助于更早发现决策中的风险和遗漏。
4. 提高工程师招聘质量
招聘优秀工程师,是工程经理的重要职责之一。
如果你清楚团队真正需要什么能力、当前技术环境存在哪些挑战,以及候选人入职后需要解决什么问题,就更容易设计合理的面试流程,提出有价值的问题,并准确判断候选人是否适合团队。
相反,如果工程经理对岗位要求缺乏深入理解,招聘过程就很容易退化为机械地核对技术关键词和工作年限。
明确了技术素养的含义及其价值之后,下面介绍工程经理保持技术能力的四种方法。
方法一:利用提示词工程辅助技术学习
提示词工程,是指通过设计清晰、具体且包含充分背景信息的指令,让人工智能模型生成更加可靠、相关和实用的结果。
例如,假设你希望评估两种技术架构的优缺点。
一个效果较差的提问可能是:
微服务架构和单体架构之间有哪些取舍?
这个问题过于宽泛,没有提供业务背景、团队规模、技术现状和评估标准,因此得到的答案很可能只是一组通用结论。
一个更有效的提示词可以这样写:
你是一位资深软件架构师,正在为一家中型 SaaS 公司的工程经理提供建议。该公司目前有 12 名工程师,维护一个基于 Rails 的单体应用,为大约 50 万名用户提供服务。团队正在考虑是否迁移到微服务架构,目前面临的主要问题是部署效率低,以及团队规模扩大后出现的协作瓶颈。
请评估继续使用单体架构与迁移到微服务架构的优缺点,并重点考虑团队规模、运维复杂度、短期交付速度和长期可扩展性。请先进行结构化比较,最后给出建议。
这个提示词之所以更加有效,是因为它:
- 为人工智能设定了明确角色:资深软件架构师;
- 提供了必要背景:团队规模、技术栈和用户规模;
- 明确描述了当前问题:部署瓶颈和团队扩展;
- 给出了具体评估标准:运维复杂度、交付速度和可扩展性;
- 规定了输出形式:先进行结构化比较,再提出建议。
高质量的提示词不仅能够节省时间,也能帮助工程经理更高效地补充技术知识。
例如,你可以借助人工智能完成以下工作:
- 对代码库中的错误进行初步分类;
- 辅助分析潜在的修复思路;
- 建立性能评估框架;
- 起草详细的技术策略;
- 梳理代码库的整体架构;
- 绘制系统组件和工具链之间的关系图;
- 比较不同技术方案的优缺点;
- 帮助理解陌生的技术概念和文档。
但人工智能能够发挥多大价值,很大程度上取决于它能否获得完整、准确的研发背景。对于工具分散、数据割裂的团队,工程经理往往需要在代码仓库、需求系统、测试工具和知识文档之间反复查找信息。借助 PingCode 这类覆盖研发全生命周期的管理工具,可以将需求、开发、测试、发布和知识沉淀连接起来,并接入团队已有的研发工具,为技术分析和决策提供更加连续的上下文。
不过,需要注意的是,任何人工智能模型都无法完整复制团队长期积累的组织知识,也无法自动理解历史决策、人员关系和现实约束。
因此,人工智能可以帮助你加快学习,却不能取代你与工程师之间的直接交流。
这就引出了第二种方法。
方法二:与工程师进行结对协作
了解代码库、系统架构和团队工具链的有效方式之一,是与工程师一起完成具体任务。
这种协作不一定意味着工程经理要重新承担日常开发任务,而是通过有明确边界的结对编程、代码审查或问题分析,观察工程师如何理解系统、拆解问题和作出技术选择。
但需要注意,不要过于频繁地与同一名工程师结对,因为这会占用对方原本用于完成工作的时间。
结对协作应该谨慎使用,并且最好选择那些对团队有一定价值、但不处于关键交付路径上的任务。
这类任务通常没有很强的时间压力,却能够帮助你更深入地理解代码库和团队的工程实践。
坦诚说明你的目的
明确告诉工程师,你参与结对协作,是为了提高自己的技术理解,而不是为了检查或评价他的工作表现。
这样可以减少对方的防备心理,避免工程师误以为这是一场隐藏的绩效考核。
选择边界清晰的任务
任务最好有明确的时间限制或具体产出。
例如,可以将结对时间控制在 60 分钟以内,或者约定只完成某一项代码审查、问题定位或小范围修改。
毕竟,这次协作主要是为了帮助你学习,因此需要特别注意,不要过度占用团队成员的时间。
提前确定由谁主导
如果你的目标是练习快速识别和修复简单问题,并且你具备相应的编程经验,可以由你主导操作。
如果你的目标是观察工程师如何分析问题、使用工具和作出判断,就应该让工程师主导,而你负责提问和理解。
不断追问“为什么”
你的重点不应只是知道某个功能“怎么实现”,还要理解:
- 为什么采用这种实现方式;
- 为什么没有选择其他方案;
- 哪些约束影响了最终决策;
- 如果业务条件发生变化,这个方案是否仍然成立。
真正有价值的技术理解,通常来自对这些“为什么”的持续追问。
记录需要继续学习的问题
在协作过程中,你很可能会遇到一些尚不了解的概念、工具或技术决策。
把这些问题记录下来,作为后续学习的线索,而不是试图在一次结对过程中把所有问题都弄明白。
适合结对协作的任务
例如:
- 共同审查一个拉取请求;
- 排查一个低优先级错误;
- 为小范围功能补充测试;
- 梳理某个模块的数据流;
- 分析一条简单的性能告警;
- 更新过时的技术文档。
不太适合结对协作的任务
例如:
- 生产环境中的紧急事故,因为时间高度敏感;
- 对新工具或新技术进行开放式调研,因为任务边界不清晰;
- 深度算法优化或复杂性能调优,因为技术门槛过高;
- 关键路线图中的紧急开发任务,因为可能拖慢团队进度。
结对协作的优点是具体、直接,但它也存在局限:学习通常围绕某个任务展开,容易变成零散的短期输入。
要建立更加系统的技术理解,还需要第三种方法。
方法三:系统积累技术领域知识
提升技术能力的有效途径之一,是持续拓展自己对相关技术领域的理解。
你不需要同时掌握所有技术,而是可以先选择一个与团队工作密切相关的方向进行深入学习。
当你在这个领域建立起基本判断力之后,再逐步转向下一个领域。随着时间推移,这些知识会不断积累,最终形成更加全面的技术认知。
如何选择学习领域
你可以从以下问题入手:
- 团队当前正在重点解决什么问题?
- 哪类技术决策最容易让我感到没有把握?
- 团队最重要的技术讨论通常集中在哪些领域?
- 哪些技术风险可能直接影响业务?
- 哪方面的知识能够帮助我更好地支持团队?
例如,如果团队正在频繁讨论系统稳定性和故障定位,你可以优先学习可观测性。
如果团队面临持续的交付效率问题,可以学习持续集成、持续交付和开发者体验。
如果团队正在进行架构拆分,则可以学习分布式系统、服务治理和数据一致性。
如何积累领域知识
你可以:
- 在理论学习与实际应用之间保持平衡;
- 在团队内部或外部寻找一位技术导师;
- 阅读不同层次的技术资料,从入门文章到 RFC 和技术规范;
- 定期参与架构讨论和技术复盘;
- 制定学习计划,把学习纳入每周的固定节奏;
- 通过小型项目或实验验证自己的理解。
例如,假设你希望提高自己在可观测性领域的能力,可以制定一个为期三个月的学习计划。
第一个月:理解基础概念
请一位资深工程师介绍团队当前的日志、指标和链路追踪机制。
随后,阅读相关开源项目和行业工具的文档,并观看一些关于分布式追踪和故障定位的技术分享。
在这个阶段,你的目标不是掌握所有细节,而是建立基本概念和术语体系。
第二个月:获得实践经验
请一位工程师与你结对,为代码库中的某个非关键模块补充基础链路追踪。
同时,可以启动一个小型个人项目,通过实际操作理解遥测数据是如何采集、传输和展示的。
实践能够帮助你发现那些仅靠阅读资料时容易忽略的问题。
第三个月:将知识用于实际工作
开始更加积极地参与团队的技术讨论。
例如,当团队考虑新增服务时,你可以提出与日志、指标、告警和链路追踪有关的问题;在审查架构 RFC 时,也能够识别可观测性设计中的缺失。
随着持续参与,你会逐渐建立起自己的判断力。
当你对这个领域足够熟悉之后,再选择一个新的方向继续深入。
领域知识能够为你提供理解技术问题所需的词汇和框架。下一步,是把这些知识运用到团队最重要的技术决策中。
方法四:积极参与架构和设计评审
架构评审和设计评审,是团队作出重要技术决策的主要场所。
这些决策可能持续影响未来数年的系统可扩展性、可维护性、人员招聘、基础设施成本和团队效率。
对工程经理来说,参加这类评审并不意味着替工程师作技术决定,而是帮助团队识别业务约束、组织影响、长期风险和可能被忽视的问题。
评审前至少阅读两遍材料
在审查 RFC 或参加架构设计评审之前,最好将相关文档完整阅读两遍。
第一遍:理解背景
第一次阅读时,不必急着标记或做大量笔记。
这一遍的主要目标,是理解文档的上下文、问题背景和整体思路。
阅读过程中,可以思考:
- 这个问题为什么需要现在解决?
- 它会对团队产生什么影响?
- 它与当前业务目标有什么关系?
- 如果不解决,会发生什么?
第二遍:识别问题
第二次阅读时,再标出重要内容,记录疑问、潜在漏洞和关键判断。
这一遍可以重点思考:
- 方案会对现有代码库产生什么影响?
- 是否存在没有被充分讨论的依赖关系?
- 运维、测试和迁移成本是否被低估?
- 团队是否具备实施和维护该方案的能力?
- 是否存在更简单的替代方案?
- 方案失败时,是否能够回滚?
架构评审的价值不仅在于作出一次决定,也在于保留决策背景和后续验证依据。团队可以使用 PingCode Wiki 统一沉淀 RFC、架构方案、评审结论和复盘记录,并将相关文档与需求、任务和发布过程关联起来,避免重要技术决策散落在聊天记录和个人文档中。
在会议中提出澄清性问题
进行现场评审时,可以提出帮助理解的问题,例如:
你能否解释一下,我们为什么选择方案 Y?
尽量避免带有预设结论的引导性问题,例如:
我们是不是应该直接采用方案 X?
也不要提出与本次评审目标无关的问题,否则容易让讨论偏离重点。
工程经理的价值,不是通过提问证明自己懂技术,而是帮助团队更加全面地理解决策的影响。
关注次要影响和衍生影响
RFC 通常会充分讨论方案的直接收益和主要风险,但次要影响和长期衍生影响往往没有那么明显。
例如,假设团队计划使用基于 Kafka 的异步事件驱动系统,替代内部服务之间的一组同步 REST API 调用。
这项变化可能产生以下三个层面的影响。
主要影响
服务之间的耦合程度可能降低,系统可以更好地应对流量高峰,并在下游服务暂时故障时获得更强的容错能力。
这些通常是方案中最容易被看到的收益。
次要影响
在同步系统中,一次调用失败通常会立即暴露。
而在异步系统中,故障可能不会马上显现。某个消费者可能在几个小时后才发现事件没有被正确处理,事件的处理顺序也可能出现异常。
与此同时,调试方式会变得更加复杂。工程师需要关联生产者和消费者的日志,还要解决跨服务请求链路不够清晰的问题。
衍生影响
在同步 REST API 架构中,工程师通常可以通过阅读接口和调用关系,建立对服务间通信的基本认知。
而在事件驱动系统中,数据流动更加隐性。新加入的工程师可能更难快速理解:
- 哪些服务会发布事件;
- 哪些服务会消费事件;
- 一个事件会触发哪些后续行为;
- 数据在不同系统之间如何传播。
这意味着,团队可能还需要投入更多精力建设文档、事件目录、监控能力和入职培训机制。
工程经理尤其适合关注这些次要和衍生影响,因为它们往往跨越技术、人员、流程和组织多个层面。
软件工程经理如何持续保持技术能力
工程经理的技术能力并不是一种一旦获得,就可以永久保留的技能。
技术环境、团队架构和业务目标都在不断变化,因此,保持技术素养需要持续且主动的投入。
好消息是,你不需要同时完成所有事情,也不必突然重新变成一名全职程序员。
真正有效的方法,是采取微小但持续的行动:
- 每周阅读一份技术文档;
- 每月参与一次结对协作;
- 持续深入一个与团队相关的技术领域;
- 认真准备并参加架构评审;
- 使用人工智能辅助理解陌生问题;
- 定期与资深工程师讨论技术趋势和团队风险。
这些行动短期内可能并不起眼,但长期积累之后,会显著提升你的技术判断力。
你的工程师并不需要你成为团队中最优秀的程序员。
他们真正需要的是:你能够理解他们正在构建什么,知道为什么这些工作重要,并清楚每一项技术决策背后真正的风险、代价和利害关系。
文章包含AI辅助创作,作者:guo,如若转载,请注明出处:https://docs.pingcode.com/baike/5250505