开发者生产力:为什么开发者和管理者理解不同?

弥合工程师与管理者在开发者生产力认知上的差距。

软件工程管理者都希望开发者尽可能高效地工作。但在现实中,我们也常常听到开发者抱怨:许多原本为了提升开发者生产力而引入的系统、工具和流程,实际效果却适得其反,甚至让他们更难专注于真正有价值的工作。

为了找出这种认知错位的根源,我们面向开发者社区开展了一项小规模调研,希望了解开发者究竟如何看待自己的生产力。

开发者生产力:为什么开发者和管理者理解不同?

对于工程领导者来说,理解这些结果非常重要。高质量代码的持续交付,和开发者的士气、工作满意度以及整体绩效密切相关。工程管理的最终目标,是帮助开发者发挥出最佳水平。这也意味着,管理者不能只从报表和指标出发理解开发者生产力,更需要理解开发者自身对生产力的真实感受。

开发者生产力为什么越来越重要?

预算充足、团队快速扩张的日子已经过去,至少在当下是这样。全球软件开发团队都面临着相似的挑战:预算收紧、效率审查加强、强制返岗,以及大规模裁员带来的不确定性。

在这样的行业环境下,理解开发者生产力,不只是为了“让开发者做得更多”,更是为了帮助管理者创造更好的工作环境,让团队在资源更有限的情况下完成更多真正有价值的工作。同时,这也有助于发现当前研发流程中的浪费环节。

例如,如果某些工具或耗时耗力的会议正在挤压开发者的专注时间,那么减少这些干扰就可能带来双赢:企业节省了成本,开发者也能获得更好的工作体验。对于一些跨部门协作频繁的团队来说,借助 Worktile 这类通用项目协作系统,将任务、项目、文档、日历和审批等信息统一管理,也能减少重复沟通和低效会议,让团队把更多时间留给真正重要的工作。

很多管理者可能没有意识到,一些看似能提升生产力的机制,比如频繁的进度检查会议,实际上可能会降低开发者的工作效率。反过来,真正有效的流程设计,也能帮助管理者看清哪些机制确实在提升开发者生产力。

通常来说,更合理地安排协作会议,或者设立无会议日,往往会对开发者生产力产生积极影响。因为这些做法能让开发者把更完整的时间投入编码,而不是在一场场会议之间不断切换上下文,只能用碎片时间推进工作。

当然,每个团队的情况都不同。最好的方式,仍然是通过一对一沟通直接询问工程师:哪些因素最影响他们的工作状态?哪些流程真正帮到了他们?哪些机制正在消耗他们的效率?

开发者和管理者一样,都希望提高生产力

调研显示,当开发者感觉工作进展顺利、节奏稳定时,他们的幸福感和满足感最高。换句话说,开发者希望自己更高效,管理者也希望他们更高效。双方的目标并不冲突,真正的问题在于:双方对“生产力”的理解并不完全相同。

对开发者来说,生产力往往和“心流状态”密切相关。所谓心流状态,指的是工程师完全沉浸在工作中,保持高度专注并持续高效产出的状态。这并不是一句空泛的说法,而是一种真实存在的工作节奏。开发者只有在这种状态下,才更容易发挥出自己的最佳水平。

当开发者频繁受到打扰,或者被复杂流程阻碍而无法进入心流状态时,工作就会变得混乱、繁琐,也更容易令人沮丧。

同样重要的是,开发者需要感受到自己正在对代码库、团队乃至整个组织做出有意义的贡献。一位开发者在调研中说道:

“我希望自己能对团队或整个组织产生影响。缺乏生产力、工作量不足,或者长期从事琐碎工作,都会让我感到沮丧。”

另一位开发者也分享道:

“如果我无法保持高效,我会觉得工作变得更难,也更难享受它。当我效率很高时,一天过得很快,而且我也很享受自己正在做的事情。”

当开发者长期感觉自己效率低下时,挫败感和不满情绪会不断累积,进而让他们变得消极、缺乏动力,甚至逐渐失去对工作的热情。对于希望打造优秀开发者体验、持续交付高质量产品的团队来说,这显然不是一个好信号。

如何衡量开发者生产力?

团队层面的生产力,通常更适合用量化方式衡量;而个人层面的生产力,往往更需要结合定性视角来理解。

大多数组织在衡量开发者生产力时,更关注指标驱动的方法,例如代码变更数量、故事点数、已完成工单数量等,并将这些结果逐级汇报给高层管理者。然而,调研显示,开发者在判断自身工作效率时,往往会使用更偏定性的标准,例如:自己在计划内工作和计划外工作上分别花费了多少时间,是否拥有足够的专注时间,是否真正推进了重要事项。

在不同场景下,同时使用这两类方法仍然很有必要。

例如,通过比较六个月前和现在每个迭代周期交付的故事点数,可以观察团队生产力随时间变化的趋势,判断团队整体效率是在提升还是下降。与此同时,当团队层面的生产力指标没有达到预期时,一些更定性的线索可能更有价值。例如,开发者是否花费了大量时间处理临时问题、调试突发故障,或者反复向同事解释背景知识。

对于希望系统化衡量和提升研发效能的团队来说,PingCode 这类智能化研发管理工具可以将目标、需求、项目、开发、测试、发布和 Wiki 知识沉淀等环节打通,让研发过程中的数据更自然地流转起来,帮助管理者在团队指标与个人体验之间建立更完整的观察视角。

何时使用团队层面的生产力指标?

衡量开发者生产力最传统的方式,是从团队层面进行评估。对大多数团队来说,这通常意味着使用故事点数、迭代速度、已解决问题数量或完成工单数量,来衡量团队在某个迭代周期或时间段内的表现。

这些宏观指标是评估团队整体绩效的重要组成部分。通过持续追踪故事点数或交付速度,决策者可以了解团队的长期发展状态,并获得更稳定的速度数据,从而更准确地估算未来的交付周期。

此外,团队层面的指标也能帮助管理者观察团队成员休假、人员变动或其他产能影响因素对交付节奏造成的影响。

但问题在于,团队层面的指标并不能完整反映开发者的真实感受,也不适合简单地用来评价个人绩效。如果一对一沟通只关注“你这周交付了多少故事点”,管理者很可能会忽略许多重要信息。

开发者可能在那一周参加了太多会议,可能缺乏足够清晰的优先级,可能被大量临时事务打断,也可能遇到了某个重大技术障碍。因此,除了团队层面的量化指标,管理者还必须关注更细微、更定性的生产力信号。

何时关注个人层面的开发者生产力?

团队由一个个具体的人组成。每个人的动机、家庭情况、压力承受能力和工作节奏都不同。因此,采用一刀切的激励方式,很难真正激发所有成员的潜力。

从个人层面思考开发者生产力,往往比单纯从团队层面观察更有价值,也更容易得到可执行的洞察。个人层面的衡量维度可以包括:专注工作时间、投入明确优先事项的时间、发布新功能所需时间,以及被计划外工作打断的频率。

同样需要注意的是,基于团队指标的生产力衡量,有时会滞后于个人层面的生产力问题。也就是说,当团队指标已经明显变差时,问题可能已经持续了一段时间。因此,管理者有必要更早关注个人层面的生产力信号,以便及时发现潜在风险。

衡量个人生产力:可以从哪里开始?

对于开发者来说,生产力具有很强的主观性,它取决于个人经验、工作内容和所处环境。以下是一些开发者对生产力的理解。

第一,能够在不受干扰的状态下专注完成任务。

“对我来说,高效意味着能够很好地专注于当前任务,比如开发新功能或修复错误。”

第二,能够稳步推进,而不是反复倒退。

“在主要优先事项上持续前进,避免因为质量问题而频繁返工。”

第三,能够感受到自己的工作产生了业务影响。

“真正重要的是业务影响。这与故事点数、提交的 PR 数量或代码提交次数无关,这些指标有时会产生误导。关键在于,它对业务指标产生了多大推动作用。”

第四,能够看到代码库中真实、可见且有意义的改进。

“我喜欢看到代码库中出现可见的改进,比如代码差异中的变化,以及最终成功部署上线的功能。”

从这些回答中可以看到几个关键主题:开发者希望拥有较长时间的专注工作环境,不被频繁打断;希望直观地看到自己对代码库产生的影响;也希望理解自己的工作如何为公司的整体目标做出贡献。

对于管理者来说,理解这些主题,有助于和开发者围绕生产力展开更深入的对话。管理者应当带着好奇心发问,而不是只用指标下判断。

例如,在一对一沟通中,你可以询问开发者:他们的日程是否被重复会议或临时任务占据?每周是否有足够的专注工作时间?他们是否能看到自己对代码库的贡献?他们是否理解自己正在做的事情如何影响团队和业务目标?

这些基于好奇心的问题,能帮助管理者更准确地理解开发者的真实状态,也能帮助管理者找到提升个人生产力的具体切入点。将这些个人层面的洞察,与团队层面的量化指标结合起来,才能更全面地理解团队的生产力状况。

当然,并不是每个人都能遇到主动提出这些问题的管理者。在这种情况下,开发者也需要学会为自己争取空间,主动表达自己在专注时间、工作影响、流程阻碍和个人成长方面的真实感受。

最后想说的

提升开发者生产力,不能只看团队层面的数字,也不能只依赖个人感受。团队层面的指标能够展现整体表现,并为交付预测提供依据;而个人层面的信号,则有助于解释这些指标背后的原因。

真正有效的开发者生产力管理,需要把两者结合起来:既关注团队整体交付趋势,也关注每位开发者能否进入心流状态、完成有意义的工作,并清楚看到自己的贡献。

只有当管理者真正理解开发者如何看待生产力,团队才有可能建立更健康、更高效,也更可持续的软件交付方式。

文章包含AI辅助创作,作者:liu,如若转载,请注明出处:https://docs.pingcode.com/baike/5246484

(0)
liuliu
免费注册
电话联系

4008001024

微信咨询
微信咨询
返回顶部