Kent Beck: 初级工程师如何从完成任务转型为高影响力表现

Kent Beck: 初级工程师如何从完成任务转型为高影响力表现

初级工程的目标是成长,而非吞吐量

对于初级工程师而言,成功的首要指标不是完成任务的数量,而是进步的速度以及为系统带来的价值。资深工程师将新员工的薪资视为对该工程师未来成长潜力的“期权溢价”,比起眼前的短期生产力,他们更优先考虑培养高绩效的下一代人才。

区分绩效等级:A、B 和 C 级工程师

资深工程师将新员工分为三个等级,以决定如何分配指导和支持资源:

  • Category A (Game-Changers): 使周围每个人都变得更高效的工程师。
  • Category B (Solid Performers): 可靠的工程师,最终会成长为稳定的贡献者。
  • Category C (Underperformers): 一年内不太可能胜任该职位的工程师。

由于资深工程师的时间有限,他们会最积极地支持 Category A 级别的表现者,其次是 Category B,同时尽量减少在那些持续表现出 Category C 迹象的人身上投入精力。

基准线:'B' 级工程师的信号

在追求卓越之前,初级工程师必须首先证明自己不是 Category C 级别的表现者。一个“稳健”(Category B)工程师的基准由可靠性和避免负面外部性来定义。关键信号包括:

  • 功能性代码: 提交的代码确实可以运行。
  • 沟通: 让团队了解当前的活动情况。
  • 合理的时间安排: 在合理的时间范围内完成任务(理想情况下在初始估算的三倍以内)。
  • 减少摩擦: 避免为他人创造不合理的工作量。虽然寻求帮助是可以接受的,但造成过度的评审负担、值班错误或 DevOps 事件会被视为负面表现。

一种会将工程师立即标记为 Category C 的严重失败,是任何试图通过声称工作已完成但实际上并未完成来“钻系统漏洞”的行为。

迈向卓越之路:'A' 级工程师的信号

区分高影响力(Category A)工程师的不是关闭任务的数量,而是从每个任务中提取的学习量以及他们生产力的“一阶导数”。高绩效者通过以下行为展示价值:

战略性任务执行

  • 质疑必要性: 提供令人信服的理由,证明某项任务根本不需要执行。
  • 帕累托优化: 识别出任务中那 10% 能带来 90% 收益的部分。
  • 迭代实现: 通过多种方式实现任务,以找到最佳方法。
  • 简化: 发现更好的设计,并在实现所需功能的同时,提交能够简化现有代码库的 diffs。

工作流与工具

  • 增量交付: 提交一系列小的、每日的 diffs,而不是一个巨大的 pull request。
  • 工具改进: 编写内部工具,为整个团队简化重复性任务。
  • 跨团队贡献: 在不忽视主要职责的前提下,向其直接团队范围之外的领域提交有用的 diffs。

专业成长与协作

  • 有见地的评审: 作为一个响应迅速且有见地的代码评审员。
  • 质量保证: 在所有工作中包含稳健的单元测试。
  • 知识共享: 以一种具有说服力且对他人有用的方式记录学习心得。

在探索与交付之间取得平衡

大多数“A 级信号”比完成任务所需的绝对最小时间更多。为了实现这一点,初级工程师不应追求完成任务的绝对最短时间,而应追求一个合理的时间。通过更好的时间和任务管理所节省下来的时间,应该重新投入到这些能造福于整个团队和系统的、高价值活动中。

Sources