查看原文
其他

被“困”在琐事中的程序员:运行他人代码,每周只“深度工作” 10 小时!

程序人生 2022-06-23
整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)

很大程度上,人们习惯于将“软件开发工程师”、“软件测试工程师”、“运维工程师”等计算机行业相关岗位等同于“程序员”,而顾名思义,其工作主要是写程序、敲代码——理论上来说,应该是这样的。

但事实证明,多数程序员的真实日常并非如此:

近日,低代码应用公司 Retool 也最新发布了一份基于 600 名软件工程师的调查报告,其结果依旧令人感到意外:软件工程师平均每周只有大约 10 个小时的“深度工作”时间,甚至运行的还大多是别人的代码


被“困”在琐事之中的程序员


既然每周只有约 10 个小时的“深度工作”时间,其余时间他们在干嘛?答:他们被“困”在了层出不穷的琐事当中,面试、等待代码审查、测试和构建,还要弄清楚谁拥有什么代码

  • 漫长的测试流程

在最希望可以减少时间花费的事项上,不论是初级还是高级工程师,都不约而同地认为测试流程实在是浪费了太多时间。

随着项目功能愈发完善,构建变得愈发复杂,为确保稳定性,测试必不可少。但问题在于,在大型表上运行 SQL 查询需要很长时间、数据库同步很慢、构建一个单体存储库可能就需要 20 分钟——这也就意味着,软件工程师只能花费许多时间在等待上。

  • 等待代码审查

除了必须等待的测试流程,与人交际也令许多开发者感到“头疼”:38% 的工程师表示“等人”也是一个重要问题。57% 的受访者指出,他们通过代码审查获得 PR 需要 4 个多小时,还有 26% 的人表示这个过程需要一天以上的时间。

  • 弄清谁负责什么代码

在大型项目中,开发者之间的高效协同十分必要。在这过程中,超过 30% 的工程师均表示,他们可能要花半天以上的时间来弄清谁负责什么代码并获取相关需求。

不过具体情况可能也要视情况而定,大型企业往往更加严重:在拥有 1000+ 名员工的公司中,21%的开发者表示,通常需要一个工作日以上的时间才能确定相关代码的负责人,而在员工基数较小的公司,这一比例不到 10%。

  • 不断的招聘面试

以上“琐事”虽然耗费时间,但总归与编程工作有直接联系,令超过 30% 的工程师感到有些疲惫的是接连不断的面试,他们希望在新员工的招聘和面试上减少一点时间。


“我们都在运行其他人的代码”


在以上各类繁杂琐事占据开发者的精力之余,留给他们用来专心编写代码的时间也随之减少。在此形势下,为了省时省力,很多开发者采取的应对方式为“运行其他人的代码”

Retool 对此解释道:如今绝大多数软件工程师都在复制和运行别人的代码,或引用开源代码,或重用公司代码库,也可能借鉴在线教程中的代码。

出于意料的是,在统计开发者每周复制代码行数时,超过 80% 的初级工程师每周会复制 100 行以内的代码,相比高级工程师高 11%;但同时,也有 30% 的高级工程师每周会从不同来源复制超过 100 行代码

在这多种复制代码的方式之中,开源代码是一个重要途径。其实随着近些年的开源热潮,开发者在工作中使用开源代码早已不是什么新鲜事,但调查结果显示,他们对于开源代码的依赖性似乎有些超乎想象:近九成的受访者认为开源代码在他们的日常生活中是必不可少的,仅有 1% 的人自信表示完全不必要

这种依赖性,具体表现在他们将开源代码添加至代码库中的频次:超过 80% 的开发者每月至少引用一次开源代码,每周引用至少一次的开发者占比也超过了 50%。此外,相较于高级工程师,初级工程师对开源代码的引用频率也更高。

开源软件的广泛应用固然会促进开发进度,但与之带来的供应链安全、开发者贡献、项目维护、开源“白嫖”等问题也亟需解决,去年年底影响全球近一半企业的 Log4j 2 漏洞就是一个警醒。Retool 对此总结道:“目前,关于开源领域的规范,实际上还尚未赶上它在当今软件生态系统中的重要程度。

参考链接:

  • https://www.zdnet.com/article/what-do-developers-do-all-day-long-the-answer-may-surprise-you/

  • https://retool.com/reports/state-of-engineering-time-2022/

监控 5 分钟抓拍一次人脸,不够 89 次算旷工!居家办公员工:不敢去厕所“中国版”马斯克被本尊翻牌:“如果是真的,我想见见他”北大数学天才“韦神”上热搜,随手帮6个博士解决困扰4个月的难题

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存