“程序员、开发者、软件工程师们他们每天到底在干什么?到底花多少时间写代码?”这个问题你是不是也有点好奇呢?近日,Retool 就对 600 名软件工程师(包括 ICs 和管理人员)做了个调查,报告结果令人吃惊。
运行别人的代码
据参与此项调查报告的工程师们表示,“多半时间我们都在运行别人的代码”。
他们表示,自己所能想像到的软件工程师生命中的某一天,通常会想到在文本编辑器中编写全新的代码、构建新功能、修复 Bug 等。但在 2022 年,绝大多数软件工程师都在运行其他人的代码 —— 建立在开源库之上,或重用公司代码库其他部分或在线教程中的代码。
近 90% 的人认为开源代码必不可少
众所周知,近年来开源不断受到追捧,热度一直很高,但开源代码对现代代码库至关重要的程度却令人惊讶。在此次调查的工程师中,近 90% 的人(29% 的人表示非常重要,54% 的人表示比较重要)认为开源代码对他们的日常工作来说至少是必不可少的。此外,仅不到 1% 的人自信地表示这不是必要的。
超 80% 的开发者每月至少 1 次将开放源代码引入代码库
Frequency with which engineers pull open-source code into codebase
如果在 Node 上构建应用程序,从技术上讲,这就其实就是一直在使用开源代码,但依赖性比这更深。该调查数据显示,超过 80% 的开发人员每月至少一次(通过 StackOverflow 或其他方式)积极地将开放源代码引入他们的工作,近 50% 的开发人员每周至少一次,初级工程师的比例略高于高级工程师。
初级开发者比高级开发者复制更多的代码
此前,就有StackOverflow 模因数据显示,开发人员正在复制大量代码,不仅来自互联网,还包括复制内部代码片段及重用自己编写的代码。而此次调查报告的数据也恰恰应证了以上结论。值得关注的是,初级开发人员比高级开发人员复制更多的代码,这与使用开放源代码的形态是一致的。
开发者更希望少花时间做测试更改
如今,随着 Vercel、Netlify 等工具大量涌现,部署应用程序却反而变得越来越复杂。与过去相比,软件在世界上所占的比例要大得多,这带来了对正常运行时间和可靠性的期望,而这在过去可能并不存在。
通过对软件进行更多的测试,发现集成测试需要几个小时才能运行,且很难构建,需要假数据、模拟和存根。你不得不在不同的操作系统、黑暗和光明模式、浏览器,甚至不同种类的 Mac 芯片中来回切换去探索。
随着这些构建过程变得更加复杂,尤其是有更多的测试,软件工程师将不得不把更多的时间花在等待机器运行上。比如,SQL 查询在大型表上运行需要很长时间,数据库同步很慢,构建一个完整的 repo 可能需要 20 分钟:所有这些都会占用宝贵的时间。
此次调查数据就显示,软件工程师真的更愿意花更少的时间来测试更改,希望能花时间做的最重要的事情,这对个人贡献者和管理者都适用。
日常面临的最大挑战:人为障碍
如果生活只是编写代码,事情就会简单一些。但在该调查中,软件工程师们表示,人为的障碍,如项目方向的颠覆性转变、代码审查延迟,或试图找出谁拥有哪段代码,是他们每天面临的最大挫折。
数据显示,38% 的工程师表示,等待人员(例如等待代码审查、需求)是日常工作中的一个重要问题。特别是,代码从软件工程师的大脑进入生产需要花费将近一整周的时间,这一数据可能与你的公司做得如何有关。
在“ICs 获得单个 pull 请求代码审查的时间量”这一数据中,57% 的开发人员表示,通过代码审查获得 pull 请求需要 4 个小时以上,26% 的开发人员表示需要一天以上的时间。
此外,有超过 30% 的开发人员表示,弄清楚谁确切拥有一段代码以及获取上下文的相关需求可能需要半天以上的时间。可以预见,在大型公司中,延迟确定代码所有权的情况更为常见:员工人数超过 1K 的公司中,21% 的开发人员表示,确定谁拥有一段代码通常需要超过一个工作日的时间,相比之下,员工人数较少的公司,延迟确定代码所有权的情况不到 10%。
超 30% 的开发者希望花更少的时间招聘/面试
随着软件工程师人才的紧缺,很多公司都在积极吸引各类人才,但这项招聘负担却都落在了目前在职的工程师身上:面试、人际关系网或其他方面。
该调查数据显示,超 30% 的开发者表示他们更愿意花更少的时间招聘和面试。
在大公司看到的同样模式在这里也适用:在员工超过 1K 的公司,几乎一半(45%)的开发人员希望在招聘上花费更少的时间,这比员工少于 250 人的公司的开发人员高出 50%。
这种差异可能纯粹是因为公司规模较大的组织可能会有更长、更艰巨的面试过程,但在绝对规模之外,增长率可能会在这方面发挥重要作用。快速发展的公司需要快速雇佣工程师,而且没有那么多的员工来承担日益增加的面试和招聘负担。
68% 的人发现在办公室工作效率更高
受到疫情的影响,全球企业都在调整办公节奏。此次调查数据也显示,许多开发人员发现自己在办公室工作效率更高,至少在一定程度上是这样。
在有全面办公室政策(即不允许远程)的公司工作的软件工程师说,他们觉得亲自工作效率更高(68%)的可能性是在没有全面办公室政策的公司工作的软件工程师(34%)的两倍。
此外,调查还发现,工程师平均每周只有大约 10 小时的“深度工作”时间。这个结果也是由于上面提到的干扰项:面试、等待代码审查、测试和构建,甚至弄清楚谁拥有什么代码。事实上,初级工程师的平均时间要多得多,可能比高级工程师多 20%,因为他们需要处理的管理内容更少。
综述
随着企业对开源软件的日益依赖,在促进软件技术开发的同时,也会出现不少缺点和担忧。特别是在开源规范尚未完全跟上当今软件生态发展节奏的前提下,来讨论开发者们所面临的问题是更具重要意义的。
所以,以上调查报告,可以很好的让我们了解到软件工程师们、开发者们在日常时间管理方面,日常所面临的一些问题,这对构建整个开源生态健康发展也有很好的考察意义。也欢迎广大开发者对该调查结果发出自己的观点,在留言区评论互动。
点击查看完整报告:https://retool.com/reports/st...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。