开发者流失是开发体验问题:在造成损失前解决它
软件工程师很少因为厌倦编码而辞职。更常见的是,他们离开是因为周围的环境让软件开发变得不必要的困难。糟糕的基础设施、低效的流程和不明确的组织实践会随着时间的推移而累积,造成日常摩擦,侵蚀积极性并加速人员流失。
本文探讨了导致开发者离职的最常见问题,以及组织如何在失去宝贵人才之前解决这些问题。
损坏的工具和基础设施
不可靠的工具会削弱开发者的士气。当构建因与代码更改无关的原因而失败,或者测试环境行为不可预测时,工程师被迫陷入等待、重试和修补的循环。
这个问题太常见了。最近的一项研究表明,67%的软件团队无法在15分钟内构建和测试其环境。
工具效率低下在大规模下的成本是多少?如果30名工程师每周仅因构建损坏而损失1小时,那么每年累计超过1500小时——几乎损失了整整一个开发者年的工作量。
由普渡大学、微软和维多利亚大学的团队进行的研究表明,缓慢的构建和延迟的拉取请求与更长的周期时间和开发者的挫败感相关。当开发者感到被自己的工具链阻塞时,他们的“糟糕日子”比好日子多——而人员流失只是时间问题。
低效、令人沮丧的流程
尽管现代工程文化强调自动化,但手动步骤仍然出人意料地普遍。手动构建、部署和测试运行浪费工程时间并增加出错的机会。调查显示,64%的基础设施代码部署仍然需要一些手动干预,27%的开发者每周在问题构建过程上浪费时间。
即使每天还给工程师30分钟不受干扰的流程时间,也能显著减少倦怠和人员流失。
此类问题会导致其他问题,例如工程师失去流程状态和上下文切换。这些问题对开发者的生产力、价值感和工作满意度产生复合的负面影响。
过多的技术债务
技术债务对于那些每天编写代码的人来说是痛苦可见(且成本高昂)的。处理以前的捷径通常要求开发者:
- 重构脆弱模块
- 追踪隐藏的错误
- 补偿过时的框架
总的来说,技术债务还会导致:
- 安全漏洞
- 不稳定性
- 更高的缺陷率
这令人沮丧且低效,59%的开发者将技术债务视为他们浪费时间和失去动力的首要原因。一项研究估计,25%的开发工作被技术债务消耗。
随着时间的推移,因旧代码而无法前进会导致挫败感和不满。工程师希望解决新问题,而不是无休止地与昨天的妥协作斗争。
糟糕的文档和知识共享
缺乏高质量的文档会阻碍生产力。没有维护良好的文档,工程师会在许多不受欢迎的任务上浪费时间:
- 寻找部落知识
- 破译系统怪癖
- 为获取上下文而联系同事
对于新员工,这会制造入职摩擦,可能破坏他们入职头几个月的工作体验。对于资深工程师,缺乏可靠的参考会导致持续的中断和低效。在这两种情况下,开发体验都会受到影响。
模糊的需求和范围蔓延
不明确的方向会侵蚀信任并削弱动力。当工程师理解他们正在解决的问题及其重要性时,他们会茁壮成长。然而,他们经常面临:
- 移动的目标
- 范围蔓延
- 缺乏可衡量验收标准的模糊需求
当工程师因需求变化而不断被要求重建功能时,他们会感到沮丧。模糊性导致浪费精力、重复返工,并最终失去对领导有效优先排序能力的信任。
从高管的角度来看,定义不清的需求会导致更多的返工和错过截止日期,这两者都会侵蚀对工程团队的信任并延迟价值实现时间。
过多的会议
编写高质量的代码需要深度工作的时间;开发者可以专注于一个项目并进入流程的不受干扰的时间段。研究表明,最满意的工程师被给予充足的深度工作时间,这使他们能够花更多时间做他们真正喜欢的事情。这转化为更好的代码质量和更高的成就感。
另一方面,不断的会议、临时中断和流程开销剥夺了工程师进行深度工作的时间,并常常导致不满。
组织孤岛和低效
除了工具和任务之外,组织结构本身也常常让工程师感到沮丧。定义不清的所有权、孤立的团队以及薄弱跨职能沟通和工具会制造瓶颈,从而减慢项目速度并降低质量。
孤立的团队还会产生一些研究人员所称的“集成债务”:当协调不佳的组件最终汇聚时引入的错误、回归和延迟。
从开发者的角度来看,此类组织问题感觉就像逆流游泳。无论他们个人技能如何,系统性的低效限制了他们交付的能力——这导致了糟糕的开发体验。
如何改善开发体验
虽然人员流失是一个复杂的挑战,但组织可以通过改善开发体验来减少它。这意味着投资于流程和工具,使工程师能够将更多时间和精力集中在回报最高的地方。
- 为代码提交、CI/CD和基础设施配置创建自助服务门户。采用基础设施即代码等系统可以自动化基础设施构建,并在许多领域消除手动干预的需要。
- 通过软件工作流中的自动化防护栏(如策略即代码)实施更快的反馈,策略即代码可自动化策略检查以识别和缓解安全漏洞,例如暴露的凭据。
- 标准化和自动化常见的开发工作流以减少劳役并加速交付。
- 实施统一的自助服务平台,基础设施和安全生命周期管理利益相关者可以将其需求平滑地集成到开发者工作流中。
当摩擦变得无法忍受时,开发者就会辞职。通过工具增强和自动化减少摩擦应是工程领导者的高度优先事项,因为它改善了开发体验,从而减少了人员流动并提高了生产力。
快乐的工程师是有效率的工程师,这创造了竞争优势。
了解更多
有关如何改善开发体验的更多信息,请阅读《13个开发体验最佳实践:提高开发者速度和保留率的备忘单》。