実施方法
共有:
このレポートは一般に公開されており、その内容は情報源が適切に記載されている限りご利用いただけます。
データのクリーニング処理
回答者が主要プログラミング言語に関する質問に答える前にアンケートを終了した場合を除き、不完全な回答を使用しました。また、疑わしい回答を特定して除外するための基準も使用しました。確認に使用した判断基準の一部を以下に示します。
- 短時間で回答されているアンケート。
- 同じ IP アドレスから送信されており、回答が非常に似通っているアンケート。同じ IP アドレスから送信された 2 つのアンケートの回答が 75% 以上同じだった場合は、完了度が高い方を残しました。
- 「18~20 歳」と「16 年以上の業務経験」を同時に回答しているなど、回答が矛盾しているアンケート。
- ほぼすべての多肢選択式の質問に対して選択肢が 1 つしか選ばれていないアンケート。
- 同じメールアドレスから複数のアンケートが送信されている場合は、完了度が高い方を残しました。
回答負担の軽減
今年のアンケートには 527 問の質問が用意されました。できる限り多くの調査トピックに対応することを目標としており、合理化してはいたものの、アンケートが長すぎるのではないかと考えました。
アンケートの長さを短くし回答の負担を軽減するため、一部の質問をランダム化することにしました。
- 8 つのセクションをランダム化し、うち 2 つのセクションのみを各回答者に表示するようにしました。
- 継続的インテグレーション、課題追跡、VCS
- DevOps とホスティング
- 静的解析、オープンソースなど
- 教育
- クロスプラットフォームとマイクロサービス
- コミュニケーションツール
- セキュリティ
- リモート・共同開発
- Java、JavaScript、SQL、Python、および GraphQL などの最も一般的な言語に関するセクションを 50% の対象回答者にランダムに表示しました。
- また、関連性や依存関係のない質問をランダムに非表示にしました。
アンケートの完了に必要な作業を減らす対策を講じたにもかかわらず、回答者は平均して 30~40 分間を費やしていました。当社はこれでも長すぎると感じています。来年にはこの状況を改善する方法をすでに検討中です。
国と地域
アルゼンチン、ブラジル、カナダ、中国、フランス、ドイツ、インド、日本、メキシコ、韓国、スペイン、トルコ、英国、および米国の 14 か国から十分に大量のサンプルを収集しました。
今年はベラルーシ、ロシア、およびウクライナから回答を募るのに有料広告を使用しないようにして、ベラルーシからの回答を東欧、バルカン諸国、およびコーカサス地方に組み入れました。
それ以外の国は以下の 6 つの地域に割り振られました。
- アフリカ、中東、中央アジア
- 東ヨーロッパ、バルカン半島、コーカサス地方
- 北ヨーロッパ、ベネルクス
- その他のヨーロッパ諸国
- 東南アジア、オセアニア、オーストラリア、ニュージーランド
- 中南米
それぞれの地域(カナダと日本を除く)について、広告などの外部ソースから 300 件以上の回答を集めました。
標本抽出バイアスの緩和
このレポートは回答の送信元に合わせて重み付けされたデータを基にしています。JetBrains ユーザーに対する偏りが少ない Twitter、Facebook、Instagram、Quora、および回答者の紹介といった外部ソースから収集した回答を基準とし、重み付け手順に基づいて結果を生成するために各回答者のソースを個別に考慮しました。
3 段階の重み付けを実施し、世界中の開発者人口に関するバイアスの少ない全体像を得ています。
第 1 段階:各地域でのプロ開発者の人口に対する調整
第 1 段階では、各国をターゲットにしながら収集された回答をまとめ、そのデータに各国のプロ開発者の推定人口を適用しました。
まず、20 地域のさまざまなソーシャルネットワークに掲載された広告から得たプロ開発者と勤労学生のアンケートデータと、さまざまな同業者の紹介により得たデータを合わせて取得しました。今年はロシアとウクライナのデータは収集しませんでしたが、この 2 か国をレポートに含め、昨年のデータの近似値を使用して重み付けを行いました。どちらの国もかなりの数の開発者がいるため、レポートから排除すると予期しない結果が生じると判断したためです。
次に、当社が推測した 22 の地域のプロ開発者の人口に合わせてすべての回答に加重しました。この加重により、各国のプロ開発者の数に対応した回答の分布を実現しています。
第 2 段階:在職中の開発者と無職の開発者の比率
第 2 段階では、各国の学生と無職の回答者数の比率を 17% とすることに注力しました。これは当社が唯一利用できる推定人口であったため、前年の実施方法との整合性を維持するためにこの作業を行いました。
この時点で、地域と雇用形態の両方で重み付けされた外部ソースに由来する 14,330 件の回答の分布が得られました。
第 3 段階:雇用形態、プログラミング言語、JetBrains 製品の使用
第 3 段階はかなり高度で、連立方程式を解いて得た計算が含まれます。ここでは重み付けされた 14,330 件の回答を使用しました。また、各地域の開発者については雇用形態のほか、30 以上のプログラミング言語の各シェアだけでなく「現在、JetBrains 製品を使用している」と「JetBrains またはその製品を聞いたことがない」と回答した人のシェアを計算しました。これらのシェアは方程式の定数に使用されました。
次のステップでは他の情報源からの回答グループとして、JetBrains のソーシャルネットワークアカウントや調査パネルといった JetBrains 社内の連絡経路と、特定のプログラミング言語ユーザーをターゲットとしたソーシャルネットワーク広告キャンペーンの 2 つを追加しました。これによって 14,939 件の追加回答を取得し、それらのシェアすべてを同等に維持できるように再び重み付けしました。
30 個以上の一次方程式と一次不等式のシステムを解決
次を表す 30 個以上の一次方程式と一次不等式を使って連立方程式を作成しました。
- 回答者の重み付け係数(標本に含まれる Fiona(フィオナ)はフランスの 180 人のソフトウェア開発者を平均的に表している、といった仮説的な例)。
- 回答者の具体的な価値(Pierre は C++ を使用し、正社員で、JetBrains を聞いたことがない、など)。
- 回答間の必要な比率(27% の開発者は過去 12 か月以内に C++ を使用したことがある、など)
重み付け係数の分散を最小限に抑えてこの連立方程式を解くため(非常に重要な作業です)、双対法(Goldfarb-Idnani 法、1982 年、1983 年)を使用し、合計 29,269 人の回答者に最適な個別の重み付け係数の照合を行いました。
根強いバイアス
JetBrains ユーザーは平均してアンケートに回答する意欲が高かった可能性があるため、こういった対策にもかかわらず、何らかのバイアスが存在する可能性があります。
また、コミュニティのエコシステムも進化しており、当社の重み付けの段階や努力にもかかわらず、若干のデータ変動が生じる可能性があります。たとえば 2021 年には、集計対象の PHP 開発者(具体的には Laravel)の数が大幅に増加しましたが、これは個人のアンケート共有リンクがいくつかの PHP コミュニティに投稿され、当社ブログ記事へのリンクも Laravel の Twitter アカウントでツイートされたためでした。これにより、過度に高い割合の PHP および Laravel 開発者がアンケートに参加することとなりました。このような突発的な変化の影響を打ち消すため、重み付けアルゴリズムを改善していきたいと考えています。
今後も重み付けの実施方法を更新して改善していく予定です。次回の「DevEco 2023」での成果にご期待ください!
適切なツールをお探しください
最後までご覧いただきありがとうございました!
レポートはお役に立ちましたか?
ぜひこのレポートを友人や同僚と共有してください。
ご質問やご提案がございましたら、surveys@jetbrains.comまでお問合わせください。