工程领袖会问而其他人不问

发布: (2025年12月23日 GMT+8 05:15)
8 min read
原文: Dev.to

Source: Dev.to

Introduction

我曾与拥有高级头衔但不带领任何人的工程师共事,也与那些指导了半数团队的初级工程师共事。区别不在于他们的简历或技术深度,而在于他们处理工作、成长以及对他人的责任方式。

软件开发中的领导力和指导并不是由组织结构图授予的。它们源自随时间累积的行为模式。以下是揭示这些特征的问题。

经验 vs. 成长

十年的经验与一年经验重复十次是不同的。重复经验意味着年复一年地做相同的工作,衡量的是任期而非成长。你精通一个领域后就停留在那里。因为这些问题你已经解决过,工作会感到舒适。

积累经验则是指构建新能力、承担更广的职责,并为自己和团队建立反馈循环。你先精通一个领域,然后向相邻的挑战延伸。不适感是学习的信号。

领导者在这两方面都是建设者。他们在为他人创造机会的同时提升自己的技能。即使深度专注于技术工作,他们也通过让知识易于获取、决策透明以及专业能力可转移,来促进团队的成长。

责任与质量

每个人都从 “它能运行,因为它没有坏掉” 开始。许多开发者会无限期地停留在这里,用生产事故的缺失来衡量成功。但领导者会超越这一基准。

当你开始对部署后的代码质量承担责任时,转变就会发生。代码已经发布,测试已经通过,且没有人抱怨。大多数开发者就此止步。领导者则会持续追问:“这真的好吗?”即使一切看起来都很正常。

这并不是完美主义或过度工程化,而是认识到质量并非没有抱怨,而是有标准的存在。生产稳定性是必要的,但并不充分。领导者会评估可维护性、清晰度和性能特征。他们会问,代码是否反映了团队当前的理解,而不是团队刚开始时的理解。

Source:

提出正确的问题

当开发者不再仅仅依赖已有的知识来评估自己的工作时,会出现一种成熟度的转变。职业生涯早期,你会提出问题来填补知识空白:“我该如何实现这个功能?”或“这里的正确模式是什么?”这些问题很重要,但它们受限于你已经理解的范围。

领导者会培养出不同的直觉。他们假设还有一些关键问题是自己尚未想到的。他们主动寻找能够挑战自己假设的视角。他们认识到,最危险的缺口不是已知的未知,而是未知的未知。

这种思维方式会体现在评审、设计讨论和回顾中。与其为自己的选择辩护,不如探查自己可能遗漏的地方。

  • 你会问“我没有看到什么吗?”还是“你看到有什么问题吗?”
    一个问题邀请发现;另一个问题邀请验证。

仅仅因为没有人指出你的代码有问题,并不意味着它是高质量的工作。仅仅因为它已经上线,也不意味着它是正确的。

领导者保持独立于外部验证的标准。他们批评自己的工作,寻找改进的机会,并构建奖励质量而非仅仅完成的系统。审批流程的作用是捕捉错误,而不是定义质量。如果你的代码之所以好仅仅是因为审阅者没有拒绝它,那么你就在把责任外包。

导师制与复合增长

最有效的技术领袖懂得一个根本原则:我们通过教学来学习。当你指导经验较少的开发者时,你不仅仅是在慷慨地付出时间;你也在为自己的成长创造条件。

这会产生复合增长。当初级开发者学会处理你今天所做的工作时,你就为应对领导者面临的挑战腾出空间。随着他们的成长,你也在成长。你并不是为了节省时间而委派任务;你是在提升组织能力的同时推进自己的进步。

优秀的工程师解决难题,而优秀的领袖则培养能够解决难题的工程师。前者的规模随你的个人能力线性增长;后者的规模随团队能力增长。导师制并不是在你有空余时间时才做的可有可无的活动;它是一项核心职责,决定了你是仅仅在写代码还是在构建系统,是独自工作还是放大影响力。

结论

软件开发中的领导力并不是由头衔或组织结构图授予的。它源自你对工作的方式以及你与他人的关系。能够提升团队的工程师具有共同的模式:

  • 他们积累经验,而不是重复经验。
  • 他们保持独立于外部验证的质量标准。
  • 他们积极寻找自己理解中的不足。
  • 他们在构建系统的同时培养他人。

这些特质会随时间累积。指导初级开发者的工程师为自己的成长创造空间。质疑自身假设的工程师能够更早发现问题。对部署后质量负责的工程师则构建出更稳健的系统。

其结果不仅是更好的代码;更是更强的团队和更健康的组织。这一切都不需要任何许可。你不需要晋升就能指导他人、提出更好的问题或对自己设定更高的标准。领导力始于你每天对工作的投入方式。

Back to Blog

相关文章

阅读更多 »

软件编程作为一种技能

软件编程作为一种技能有哪些用途?当人们谈论软件或计算机编程时,通常会提到 automation、构建 websites……