调查方法
分享:
这是一份公开报告,只要注明数据来源即可使用其内容。
减轻回复负担
今年,调查包括 527 个问题。尽管我们的目标是涵盖尽可能多的研究主题,并且应用了逻辑设计,我们仍然觉得它太长了。
为了缩短调查并减轻回复负担,我们采取措施来随机显示一些问题:
- 我们随机显示 8 个部分,其中每个受访者只看到 2 个:
- 持续集成、问题跟踪和 VCS
- DevOps 和托管
- 静态分析、开源等。
- 教育
- 跨平台和微服务
- 通讯工具
- 安全性
- 远程和协作开发
- 我们随机向 50% 的合格受访者显示有关最热门语言(例如 Java、JavaScript、SQL、Python 和 GraphQL)的部分。
- 我们还随机隐藏了没有逻辑或依赖关系的问题。
尽管我们有意简化调查,但受访者平均仍需大约 30-40 分钟填写调查表。我们认为这还是太长,也已经在考虑如何改善明年的体验。
减小样本偏倚
报告基于根据回复来源加权的数据。我们以不太偏向 JetBrains 用户的外部来源的回复为基础,例如 Twitter、Facebook、Instagram、Quora 上的付费广告和受访者的推荐。我们将每个受访者的来源单独考虑在内,根据加权程序生成结果。
我们进行多达三个阶段的加权,以便能够更公正的了解全球开发者群体。
第一加权阶段:针对每个区域的专业开发者数量进行调整
在第一阶段,我们汇总了在针对不同的国家/地区时收集的回复,然后对这些数据应用了我们对每个国家/地区的专业开发者数量的预估。
首先,我们从 20 个区域的各种社交网络上发布的广告中收集关于专业开发者和在职学生的调查数据,也收集各种同行推荐的数据。我们今年没有收集俄罗斯和乌克兰的数据,但还是将这两个国家纳入了报告,并使用去年数据的近似值进行了加权。我们的理由是,这两个国家都有大量开发者,将他们从报告中移除可能会产生不可预见的后果。
然后,我们按照这 22 个区域的预估专业开发者人数,对这些回复进行加权。这样确保了受访者分布与每个国家/地区的专业开发者人数相对应。
第二加权阶段:在职和失业开发者的比例
在第二阶段,我们将每个国家/地区的学生和失业受访者比例强制为 17%。我们这样做是为了确保与上一年的方法保持一致,因为这是我们唯一可用的数量预估。
至此,我们从外部来源获得了 14,330 份回复,按区域和就业状况加权。
第三加权阶段:就业状况、编程语言、JetBrains 产品使用
第三个阶段相当复杂,包括通过求解方程组进行的计算。我们利用了这些加权后的 14,330 份回复。对于每个区域的开发者,除了他们的就业状况外,我们还计算了 30 多种编程语言各自的份额,以及回答“我目前使用 JetBrains 产品”和“我从未听说过 JetBrains 或其任何产品”的受访者比例。这些数字成为方程中的常量。
下一步是再添加其他来源的两个回复组:JetBrains 内部沟通渠道(例如 JetBrains 社交网络帐户和我们的研究小组)和针对特定编程语言用户的社交网络广告系列。这带来了额外 14,939 份回复,我们对他们进行加权以确保所有这些份额都相同。
求解一个包括 30 多个线性方程和不等式的系统
我们设计了一个包括 30 多个线性方程和不等式的系统,这些方程和不等式描述了以下信息:
- 受访者的加权系数(例如,样本中的 Fiona 代表了法国 180 位软件开发者的平均情况)。
- 受访者回复的特定值(例如,Pierre 使用 C++,他是一名全职开发者,之前从未听说过 JetBrains)。
- 在受访者中的必要比率(例如,27% 的开发者在过去 12 个月中使用过 C++,等等)。
为了使用加权系数的最小方差(非常重要!)求解此方程组,我们使用了 Goldfarb 和 Idnani 的对偶方法(1982,1983),这种方法帮助我们为 29,269 名受访者校核了最优的各个权重系数。
我们将在未来继续更新和改进加权方法。敬请期待《2023 开发者生态系统现状调查》!