2022 软件开发者“时间管理”调查报告:近 90% 的人认为开源代码必不可少|68% 的人发现在办公室工作效率更高

简介: 2022 软件开发者“时间管理”调查报告:近 90% 的人认为开源代码必不可少|68% 的人发现在办公室工作效率更高

“程序员、开发者、软件工程师们他们每天到底在干什么?到底花多少时间写代码?”这个问题你是不是也有点好奇呢?近日,Retool 就对 600 名软件工程师(包括 ICs 和管理人员)做了个调查,报告结果令人吃惊。

image.png

运行别人的代码

据参与此项调查报告的工程师们表示,“多半时间我们都在运行别人的代码”。

他们表示,自己所能想像到的软件工程师生命中的某一天,通常会想到在文本编辑器中编写全新的代码、构建新功能、修复 Bug 等。但在 2022 年,绝大多数软件工程师都在运行其他人的代码 —— 建立在开源库之上,或重用公司代码库其他部分或在线教程中的代码。

近 90% 的人认为开源代码必不可少

image.png

众所周知,近年来开源不断受到追捧,热度一直很高,但开源代码对现代代码库至关重要的程度却令人惊讶。在此次调查的工程师中,近 90% 的人(29% 的人表示非常重要,54% 的人表示比较重要)认为开源代码对他们的日常工作来说至少是必不可少的。此外,仅不到 1% 的人自信地表示这不是必要的。

超 80% 的开发者每月至少 1 次将开放源代码引入代码库

Frequency with which engineers pull open-source code into codebase

image.png

image.png

如果在 Node 上构建应用程序,从技术上讲,这就其实就是一直在使用开源代码,但依赖性比这更深。该调查数据显示,超过 80% 的开发人员每月至少一次(通过 StackOverflow 或其他方式)积极地将开放源代码引入他们的工作,近 50% 的开发人员每周至少一次,初级工程师的比例略高于高级工程师。

初级开发者比高级开发者复制更多的代码

image.png

此前,就有StackOverflow 模因数据显示,开发人员正在复制大量代码,不仅来自互联网,还包括复制内部代码片段及重用自己编写的代码。而此次调查报告的数据也恰恰应证了以上结论。值得关注的是,初级开发人员比高级开发人员复制更多的代码,这与使用开放源代码的形态是一致的。

开发者更希望少花时间做测试更改


image.png

如今,随着 Vercel、Netlify 等工具大量涌现,部署应用程序却反而变得越来越复杂。与过去相比,软件在世界上所占的比例要大得多,这带来了对正常运行时间和可靠性的期望,而这在过去可能并不存在。

通过对软件进行更多的测试,发现集成测试需要几个小时才能运行,且很难构建,需要假数据、模拟和存根。你不得不在不同的操作系统、黑暗和光明模式、浏览器,甚至不同种类的 Mac 芯片中来回切换去探索。

随着这些构建过程变得更加复杂,尤其是有更多的测试,软件工程师将不得不把更多的时间花在等待机器运行上。比如,SQL 查询在大型表上运行需要很长时间,数据库同步很慢,构建一个完整的 repo 可能需要 20 分钟:所有这些都会占用宝贵的时间。

此次调查数据就显示,软件工程师真的更愿意花更少的时间来测试更改,希望能花时间做的最重要的事情,这对个人贡献者和管理者都适用。

日常面临的最大挑战:人为障碍

image.png

image.png

如果生活只是编写代码,事情就会简单一些。但在该调查中,软件工程师们表示,人为的障碍,如项目方向的颠覆性转变、代码审查延迟,或试图找出谁拥有哪段代码,是他们每天面临的最大挫折。

数据显示,38% 的工程师表示,等待人员(例如等待代码审查、需求)是日常工作中的一个重要问题。特别是,代码从软件工程师的大脑进入生产需要花费将近一整周的时间,这一数据可能与你的公司做得如何有关。

image.png

image.png

在“ICs 获得单个 pull 请求代码审查的时间量”这一数据中,57% 的开发人员表示,通过代码审查获得 pull 请求需要 4 个小时以上,26% 的开发人员表示需要一天以上的时间。

此外,有超过 30% 的开发人员表示,弄清楚谁确切拥有一段代码以及获取上下文的相关需求可能需要半天以上的时间。可以预见,在大型公司中,延迟确定代码所有权的情况更为常见:员工人数超过 1K 的公司中,21% 的开发人员表示,确定谁拥有一段代码通常需要超过一个工作日的时间,相比之下,员工人数较少的公司,延迟确定代码所有权的情况不到 10%。

超 30% 的开发者希望花更少的时间招聘/面试

随着软件工程师人才的紧缺,很多公司都在积极吸引各类人才,但这项招聘负担却都落在了目前在职的工程师身上:面试、人际关系网或其他方面。

该调查数据显示,超 30% 的开发者表示他们更愿意花更少的时间招聘和面试。

image.png

在大公司看到的同样模式在这里也适用:在员工超过 1K 的公司,几乎一半(45%)的开发人员希望在招聘上花费更少的时间,这比员工少于 250 人的公司的开发人员高出 50%。

这种差异可能纯粹是因为公司规模较大的组织可能会有更长、更艰巨的面试过程,但在绝对规模之外,增长率可能会在这方面发挥重要作用。快速发展的公司需要快速雇佣工程师,而且没有那么多的员工来承担日益增加的面试和招聘负担。

68% 的人发现在办公室工作效率更高

受到疫情的影响,全球企业都在调整办公节奏。此次调查数据也显示,许多开发人员发现自己在办公室工作效率更高,至少在一定程度上是这样。

image.png

在有全面办公室政策(即不允许远程)的公司工作的软件工程师说,他们觉得亲自工作效率更高(68%)的可能性是在没有全面办公室政策的公司工作的软件工程师(34%)的两倍。

此外,调查还发现,工程师平均每周只有大约 10 小时的“深度工作”时间。这个结果也是由于上面提到的干扰项:面试、等待代码审查、测试和构建,甚至弄清楚谁拥有什么代码。事实上,初级工程师的平均时间要多得多,可能比高级工程师多 20%,因为他们需要处理的管理内容更少。

综述

随着企业对开源软件的日益依赖,在促进软件技术开发的同时,也会出现不少缺点和担忧。特别是在开源规范尚未完全跟上当今软件生态发展节奏的前提下,来讨论开发者们所面临的问题是更具重要意义的。

所以,以上调查报告,可以很好的让我们了解到软件工程师们、开发者们在日常时间管理方面,日常所面临的一些问题,这对构建整个开源生态健康发展也有很好的考察意义。也欢迎广大开发者对该调查结果发出自己的观点,在留言区评论互动。

点击查看完整报告:https://retool.com/reports/st...

相关文章
|
7月前
|
存储 人工智能 运维
阿里云联合信通院发布《面向LLM应用的可观测性能力要求》
随着大模型技术的广泛应用,大语言模型(LLM)在对话系统、检索增强生成(RAG)、智能体(Agent)等场景中展现出无限的想象力与创造力。同时,基于 LLM 以及 AI 生态技术栈构建的应用以及业务场景也如雨后春笋般不断涌现。然而,LLM 应用在生产落地过程中面临着模型不确定性大、架构链路复杂、用户体验难以评估等诸多痛点。如何构建 LLM 应用的全链路可观测性体系以及如何评估可观测性能力是否完善,业界缺乏统一且完整细致的标准。
|
人工智能 监控 数据库
LLM 应用可观测性:从 Trace 视角展开的探索与实践之旅
基于大语言模型的应用在性能、成本、效果等方面存在一系列实际痛点,本文通过分析 LLM 应用模式以及关注点差异来阐明可观测技术挑战,近期阿里云可观测推出了面向 LLM 应用的可观测解决方案以及最佳实践,一起来了解下吧。
20486 131
LLM 应用可观测性:从 Trace 视角展开的探索与实践之旅
|
存储 人工智能 NoSQL
表格存储:为 AI 注入“记忆”,构建大规模、高性能、低成本的 Agent Memory 数据底座
本文探讨了AI Agent市场爆发增长背景下的存储需求,重点介绍了Tablestore在Agent Memory存储中的优势。2025年被视为AI Agent市场元年,关键事件推动技术发展。AI Agent的存储分为Memory(短期记忆)和Knowledge(长期知识)。Tablestore通过高性能、低成本持久化存储、灵活的Schemaless设计等特性满足Memory场景需求;在Knowledge场景中,其多元索引支持全文、向量检索等功能,优化成本与稳定性。实际案例包括通义App、某浏览器及阿里云多项服务,展示Tablestore的卓越表现。最后邀请加入钉钉群共同探讨AI技术。
2388 14
|
存储 安全 Linux
离线Linux服务器环境搭建
【9月更文挑战第3天】在离线环境下搭建Linux服务器需按以下步骤进行:首先确定服务器用途及需求,准备安装介质与所需软件包;接着安装Linux系统并配置网络;然后设置系统基础参数,如主机名与时区;安装必要软件并配置服务;最后进行安全设置,包括关闭非必要服务、配置防火墙、强化用户认证及定期备份数据。整个过程需确保软件包的完整性和兼容性。
483 3
|
中间件 数据挖掘 API
ERP系统的系统集成与接口管理:实现高效协同
【7月更文挑战第29天】 ERP系统的系统集成与接口管理:实现高效协同
1288 0
|
存储
【面试题】接雨水
【面试题】接雨水
244 0
文本---富文本编辑器------Vue3使用富文本编辑器,Quill,全局样式和组件和样式的写法
文本---富文本编辑器------Vue3使用富文本编辑器,Quill,全局样式和组件和样式的写法
|
网络协议 Linux Windows
TCP/IP、Http、Socket之间的区别
TCP/IP、Http、Socket之间的区别
1117 3
|
机器学习/深度学习 人工智能 搜索推荐
【LLM】深入浅出学习模型中Embedding(嵌入)
【5月更文挑战第2天】人工智能嵌入深入浅出介绍
785 0
|
Java
如何获取第三方应用授权app_auth_token
一,说明    1.第三方应用文档:[url]https://docs.open.alipay.com/20160728150111277227/intro[/url]     2.作用:代替商户发起相关逻辑请求 二,配置    1.
5865 12